Tensorflow TextVectorization adapt() — проверка созданного словаря

#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