tf.strings.ngrams
| Просмотреть исходный код на GitHub |
Создаёт тензор 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, то возможно, что последовательность или последовательность с добавленным дополнением будет меньше, чем ширина n-граммы. В этом случае для этой последовательности не будет сгенерировано ни одной n-граммы. Это можно предотвратить, установив preserve_short_sequences, что заставит операцию всегда генерировать по крайней мере одну n-грамму для каждой непустой последовательности.
| Аргументы | |
|---|---|
data | Tensor или RaggedTensor, содержащий исходные данные для n-грамм. |
ngram_width | Ширина(ы) создаваемых n-грамм. Если это список или кортеж, операция вернёт n-граммы всех указанных арностей в порядке списка. Значения должны быть целочисленными значениями, отличными от тензора, и больше нуля. |
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 заданы с недопустимым значением. |
© 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/r1.15/api_docs/python/tf/strings/ngrams