es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿En qué se diferencia la codificación de texto del tensorflow.keras.preprocessing.text.Tokenizer del antiguo tfds.deprecated.text.TokenTextEncoder?

tfds.deprecated.text.TokenTextEncoder

En el método de codificación descontinuado con tfds.deprecated.text.TokenTextEncoder,
primero creamos un conjunto de vocabulario de tokens.

tokenizer = tfds.deprecated.text.Tokenizer()
vocabulary_set = set()

<h1>imdb<em>train --> dataset de imdb de tensorflow</em>datasets</h1>

por ejemplo, etiqueta en imdb<em>train:
    some</em>tokens = tokenizer.tokenize(example.numpy())

Luego lo cargamos en el codificador
python
encoder = tfds.deprecated.text.TokenTextEncoder(vocabulary_set,
lowercase=True,
tokenizer=tokenizer)

Después, al realizar la codificación, noto que el codificador produce un único número entero. Por ejemplo, al depurar encontré que la palabra “the” se codificó con 112.
python
token_id = encoder.encode(word)[0]

> token_id = 112

Pero luego, en el caso de

tensorflow.keras.preprocessing.text.Tokenizer

python
tokenizer = tensorflow.keras.preprocessing.text.Tokenizer()
tokenizer.fit_on_texts(words)
token_id = tokenizer.texts_to_sequences(word) #word = the

> token_id = [800,2085,936]

Produces una secuencia de 3 enteros. Entonces, ¿debo usar los 3 números o sería válido si solo tomo 1 número de esa secuencia? Estoy intentando usar este entero codificado para crear una matriz de embedding utilizando Glove Embedding. El antiguo método descontinuado produce solo un entero, por lo que es más fácil de mapear. Con la secuencia de enteros, no estoy seguro de cómo proceder.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El método de codificación obsoleto con tfds.deprecated.text.TokenTextEncoder devuelve un solo número entero para cada palabra codificada. Por otro lado, tensorflow.keras.preprocessing.text.Tokenizer produce una secuencia de enteros al codificar una palabra. Para usar estos enteros en la creación de una matriz de incrustación utilizando la incrustación Glove, se deben utilizar todos los enteros de la secuencia de tensorflow.keras.preprocessing.text.Tokenizer, mientras que para tfds.deprecated.text.TokenTextEncoder, solo se debe usar el único número entero producido por cada palabra con fines de mapeo.

Comments are closed.