Класс TextVectorization
Класс TextVectorization преобразует
сырой текст в числовые тензоры, пригодные
для подачи в нейронную сеть. Слой выполняет
стандартизацию текста, разбиение на токены
и преобразование токенов в целочисленные
индексы словаря. Первым параметром
передается размер словаря max_tokens,
вторым - тип выходных последовательностей
output_mode, третьим - функция
стандартизации standardize. По умолчанию
слой работает в режиме int и выдает
последовательности целых чисел.
Синтаксис
tf.keras.layers.TextVectorization(
max_tokens=None,
standardize='lower_and_strip_punctuation',
split='whitespace',
output_mode='int',
output_sequence_length=None
)
Пример
Давайте создадим слой TextVectorization
и обучим его на небольшом корпусе текстов:
import tensorflow as tf
layer = tf.keras.layers.TextVectorization(max_tokens=10)
layer.adapt(['abcde model.keras', 'abcde tensorflow'])
print(layer.get_vocabulary())
Результат выполнения кода:
['', '[UNK]', 'abcde', 'model.keras', 'tensorflow']
Пример
Давайте применим слой к текстовым данным и получим числовые последовательности:
import tensorflow as tf
layer = tf.keras.layers.TextVectorization(max_tokens=10)
layer.adapt(['abcde model.keras', 'abcde tensorflow'])
res = layer(['abcde model.keras'])
print(res)
Результат выполнения кода:
tf.Tensor([[2 3]], shape=(1, 2), dtype=int64)
Пример
Давайте установим фиксированную длину
выходной последовательности с помощью
параметра output_sequence_length:
import tensorflow as tf
layer = tf.keras.layers.TextVectorization(
max_tokens=10,
output_sequence_length=4
)
layer.adapt(['abcde model.keras', 'abcde tensorflow'])
res = layer(['abcde model.keras'])
print(res)
Результат выполнения кода:
tf.Tensor([[2 3 0 0]], shape=(1, 4), dtype=int64)
Пример
Давайте используем режим output_mode='multi_hot'
для получения бинарного представления текста:
import tensorflow as tf
layer = tf.keras.layers.TextVectorization(
max_tokens=10,
output_mode='multi_hot'
)
layer.adapt(['abcde model.keras', 'abcde tensorflow'])
res = layer(['abcde model.keras'])
print(res)
Результат выполнения кода:
tf.Tensor([[0. 0. 1. 1. 0.]], shape=(1, 5), dtype=float32)
Смотрите также
-
класс
TextVectorization,
который преобразует текст в числовые последовательности -
метод
adapt,
который обучает слой на текстовом корпусе -
метод
get_vocabulary,
который возвращает словарь токенов -
метод
set_vocabulary,
который устанавливает словарь вручную