#python #tensorflow #machine-learning #character-encoding #embedding
Вопрос:
Текстовый TextVectorization
слой используется для кодирования слов, и типичный рабочий процесс вызывает adapt()
метод
Затем вы вызовете adapt, чтобы согласовать состояние слоя предварительной обработки с набором данных. Это приведет к тому, что модель построит индекс строк до целых чисел.
(https://www.tensorflow.org/tutorials/keras/text_classification)
или
При желании пользователь может вызвать метод adapt() этого слоя для набора данных. Когда этот слой будет адаптирован, он проанализирует набор данных, определит частоту отдельных строковых значений и создаст из них «словарь».
(https://www.tensorflow.org/api_docs/python/tf/keras/layers/TextVectorization#adapt)
Каков именно результат adapt()
операции и как конкретно проверить содержание созданного словаря?
Небольшой фрагмент моего кода
seq_length = 100
vocab_size=50000
vectorize_layer = TextVectorization(
max_tokens=vocab_size,
output_mode='int',
output_sequence_length=seq_length)
# build the vocabulary
vectorize_layer.adapt(text_ds)
Ответ №1:
layer.get_vocabulary()
делает ли это:
>>>data = tf.constant([["a", "c", "d"], ["d", "z", "b"]])
>>>layer = tf.keras.layers.StringLookup()
>>>layer.adapt(data)
>>>layer.get_vocabulary()
['[UNK]', 'd', 'z', 'c', 'b', 'a']
https://www.tensorflow.org/api_docs/python/tf/keras/layers/StringLookup