tf.strings.ngrams
Создать тензор n-грамм на основе data.
tf.strings.ngrams(
data,
ngram_width,
separator=' ',
pad_values=None,
padding_width=None,
preserve_short_sequences=False,
name=None
)
Создает тензор n-грамм на основе data. N-граммы создаются путем объединения окон width смежных строк из внутреннего осевого data с помощью separator.
Входные данные могут быть дополнены как в начале, так и в конце последовательности, при необходимости, с помощью аргумента pad_values. Если задано, pad_values должно содержать либо кортеж строк, либо одну строку; 0-й элемент кортежа будет использоваться для заполнения левой части последовательности, а 1-й элемент кортежа будет использоваться для заполнения правой части последовательности. Аргумент padding_width управляет тем, сколько значений заполнения добавляется к каждой стороне; по умолчанию он равен ngram_width-1.
Если данный оператор настроен так, чтобы не использовать заполнение, или если он настроен на добавление заполнения с padding_width, заданным меньше, чем ngram_width-1, возможно, что последовательность или последовательность с заполнением короче, чем ширина ngram. В этом случае для этой последовательности не будут созданы никакие n-граммы. Этого можно избежать, установив preserve_short_sequences, что заставит оператор всегда генерировать по крайней мере одну n-грамму на непустую последовательность.
Примеры:
tf.strings.ngrams(["A", "B", "C", "D"], 2).numpy() array([b'A B', b'B C', b'C D'], dtype=object) tf.strings.ngrams(["TF", "and", "keras"], 1).numpy() array([b'TF', b'and', b'keras'], dtype=object)
| Аргументы | |
|---|---|
data | Tensor или RaggedTensor, содержащий исходные данные для n-грамм. |
ngram_width | Ширина(ы) n-грамм для создания. Если это список или кортеж, оператор вернет n-граммы всех указанных арностей в порядке списка. Значения должны быть целочисленными не-Tensor значениями, большими 0. |
separator | Разделитель, используемый между элементами n-граммы. Должна быть строковая константа, а не тензор. |
pad_values | Кортеж из (left_pad_value, right_pad_value), одна строка или None. Если None, заполнение не будет добавлено; если строка, эта строка будет использована для заполнения слева и справа. Значения должны быть строками Python. |
padding_width | Если установлено, будет добавлено padding_width значений заполнения к обеим сторонам каждой последовательности. По умолчанию равно ngram_width-1. Должно быть больше
|
preserve_short_sequences | Если true, то гарантируется, что для каждой входной последовательности будет сгенерирована как минимум одна n-грамма. В частности, если входная последовательность короче, чем min(ngram_width) + 2*pad_width, тогда генерируется одна n-грамма, содержащая всю последовательность. Если false, то для этих коротких входных последовательностей n-граммы не генерируются. |
name | Имя оператора. |
| Возвращаемое значение | |
|---|---|
RaggedTensor n-грамм. Если data.shape=[D1...DN, S], тогда output.shape=[D1...DN, NUM_NGRAMS], где NUM_NGRAMS=S-ngram_width+1+2*padding_width. |
| Исключения | |
|---|---|
TypeError | если pad_values имеет неверный тип. |
ValueError | если pad_values, padding_width или ngram_width имеют неверное значение. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/strings/ngrams