Метод adapt класса TextVectorization
Метод adapt класса TextVectorization подготавливает слой
векторизации текста к работе с конкретным набором данных.
В процессе адаптации слой анализирует переданные строки,
строит словарь токенов и при необходимости вычисляет статистику
для нормализации. Первым параметром метод принимает данные
в виде тензора строк, списка строк или датасета. Вторым
необязательным параметром можно передать количество шагов
для итерации по датасету.
После вызова adapt слой готов к преобразованию текста
в числовые последовательности. Без предварительной адаптации
слой не сможет корректно векторизовать данные, так как его
словарь остаётся пустым.
Синтаксис
TextVectorization.adapt(data, [steps])
Пример
Давайте создадим слой векторизации и адаптируем его на списке строк:
import tensorflow as tf
layer = tf.keras.layers.TextVectorization()
layer.adapt(['abcde', 'model.keras', 'abcde model.keras'])
print(layer.get_vocabulary())
Результат выполнения кода:
['', '[UNK]', 'abcde', 'model.keras']
Пример
Давайте адаптируем слой и сразу векторизуем новую строку:
import tensorflow as tf
layer = tf.keras.layers.TextVectorization()
layer.adapt(['abcde', 'model.keras'])
res = layer(['abcde model.keras'])
print(res)
Результат выполнения кода:
tf.Tensor(
[[2 3]], shape=(1, 2), dtype=int64)
Пример
Давайте создадим слой с ограничением размера словаря и адаптируем его на данных:
import tensorflow as tf
layer = tf.keras.layers.TextVectorization(max_tokens=3)
layer.adapt(['abcde', 'model.keras', 'abcde model.keras'])
print(layer.get_vocabulary())
Результат выполнения кода:
['', '[UNK]', 'abcde']
Смотрите также
-
класс
TextVectorization,
который векторизует текст в числовые последовательности -
метод
get_vocabulary,
который возвращает словарь слоя векторизации -
метод
set_vocabulary,
который устанавливает словарь слоя векторизации -
метод
adapt,
который адаптирует слой векторизации к данным