tf.compat.v1.keras.layers.experimental.preprocessing.TextVectorization
Слой векторизации текста.
Наследуется от: TextVectorization, PreprocessingLayer, Layer, Module
tf.compat.v1.keras.layers.experimental.preprocessing.TextVectorization(
max_tokens=None, standardize=text_vectorization.LOWER_AND_STRIP_PUNCTUATION,
split=text_vectorization.SPLIT_ON_WHITESPACE, ngrams=None,
output_mode=text_vectorization.INT, output_sequence_length=None,
pad_to_max_tokens=True, **kwargs
)
Этот слой предоставляет базовые возможности управления текстом в модели Keras. Он преобразует пакет строк (один образец = одна строка) либо в список индексов токенов (один образец = 1D тензор целочисленных индексов токенов), либо в плотное представление (один образец = 1D тензор вещественных значений, представляющих данные о токенах образца).
Обработка каждого образца включает следующие шаги:
1) стандартизация каждого образца (обычно приведение к нижнему регистру + удаление знаков препинания) 2) разделение каждого образца на подстроки (обычно слова) 3) объединение подстрок в токены (обычно n-граммы) 4) индексация токенов (присвоение уникального целочисленного значения каждому токену) 5) преобразование каждого образца с использованием этого индекса, либо в вектор целых чисел, либо в плотный вектор с плавающей точкой.
| Атрибуты | |
|---|---|
max_tokens | Максимальный размер словаря для этого слоя. Если None, размер словаря не ограничен. |
standardize | Необязательное задание стандартизации, применяемой к входному тексту. Значения могут быть None (без стандартизации), LOWER_AND_STRIP_PUNCTUATION (приведение к нижнему регистру и удаление знаков препинания) или вызываемый объект. |
split | Необязательное задание разбиения входного текста. Значения могут быть None (без разбиения), SPLIT_ON_WHITESPACE (разбиение по пробелам ASCII), или вызываемый объект. |
ngrams | Необязательное задание n-грамм для создания из входного текста, который возможно был разделен. Значения могут быть None, целое число или кортеж целых чисел; передача целого числа создаст n-граммы до этого целого числа, а передача кортежа целых чисел создаст n-граммы для указанных значений в кортеже. Передача None означает, что n-граммы не будут созданы. |
output_mode | Необязательное задание вывода слоя. Значения могут быть INT, BINARY, COUNT или TFIDF, которые управляют выводом следующим образом: INT: Выводит целочисленные индексы, один целочисленный индекс на токен разделенной строки. BINARY: Выводит один целочисленный массив на пакет размера vocab_size или max_tokens, содержащий 1s во всех элементах, где токен, сопоставленный с этим индексом, встречается по крайней мере один раз в элементе пакета. COUNT: Как BINARY, но целочисленный массив содержит количество раз, которое токен в этом индексе появлялся в элементе пакета. TFIDF: Как BINARY, но к токенам применяется алгоритм TF-IDF для нахождения значения в каждом слоте токена. |
output_sequence_length | Необязательная длина выходного тензора. Если задано, выход будет дополнен или усечен до этого значения в режиме INT. |
pad_to_max_tokens | Если True, режимы BINARY, COUNT и TFIDF будут дополнять свой вывод до max_tokens, даже если количество уникальных токенов в словаре меньше max_tokens. |
Методы
adapt
adapt(
data, reset_state=True
)
Подгоняет состояние слоя предобработки к набору данных.
Переопределяет метод adapt по умолчанию, чтобы применить соответствующую предобработку к входам перед передачей в комбинирующий блок.
| Аргументы | |
|---|---|
data | Данные для обучения. Их можно передать в виде объекта tf.data Dataset, массива NumPy, тензора строк или списка текстов. |
reset_state | Необязательный аргумент, указывающий, следует ли очищать состояние слоя в начале вызова adapt. Это должно быть True для данного слоя, который не поддерживает повторные вызовы adapt. |
get_vocabulary
get_vocabulary()
set_vocabulary
set_vocabulary(
vocab, df_data=None, oov_df_value=None
)
Устанавливает данные словаря (и необязательно частоты документов) для этого слоя.
Этот метод напрямую устанавливает данные словаря и частоты документов для данного слоя вместо анализа набора данных через 'adapt'. Он должен использоваться всякий раз, когда информация о словаре (и, необязательно, частотах документов) уже известна. Если данные словаря уже присутствуют в слое, этот метод их заменит.
| Аргументы | |
|---|---|
vocab | Массив строковых токенов. |
df_data | Массив данных частоты документов. Необходим только если режим вывода слоя TFIDF. |
oov_df_value | Частота документов токена OOV. Необходим только если режим вывода TFIDF. |
| Исключения | |
|---|---|
ValueError | Если слишком много входов, входы не соответствуют или отсутствуют входные данные. |
RuntimeError | Если словарь не может быть установлен при вызове этой функции. Это происходит, когда режимы "binary", "count" и "tfidf", если "pad_to_max_tokens" равно False, а сам слой уже был вызван. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/compat/v1/keras/layers/experimental/preprocessing/TextVectorization