Функция strings.ngrams
Функция strings.ngrams создает последовательности из n соседних элементов строкового тензора. Первым параметром функция принимает строковый тензор или RaggedTensor. Вторым параметром можно передать ширину n-граммы ngram_width. Третьим параметром задается разделитель separator. Четвертым параметром можно указать pad_width для дополнения последовательности. Пятым параметром передается строка pad_value для заполнения. Шестым параметром задается preserve_short_sequences. Седьмым параметром указывается имя операции name.
Синтаксис
tf.strings.ngrams(data, ngram_width, separator, pad_width, pad_value, preserve_short_sequences, name)
Пример
Давайте создадим биграммы из строкового тензора:
import tensorflow as tf
t = tf.constant(['abcde'])
res = tf.strings.ngrams(t, 2, separator=' ')
print(res)
Результат выполнения кода:
tf.Tensor([b'a b' b'b c' b'c d' b'd e'], shape=(4,), dtype=string)
Пример
Давайте создадим триграммы с разделителем в виде дефиса:
Результат выполнения кода:
tf.Tensor([b'a-b-c' b'b-c-d' b'c-d-e'], shape=(3,), dtype=string)
Пример
Давайте создадим n-граммы с несколькими ширинами одновременно:
import tensorflow as tf
t = tf.constant(['model.keras'])
res = tf.strings.ngrams(t, [2, 3], separator=' ')
print(res)
Результат выполнения кода:
tf.Tensor([b'model.keras' b'model.keras' b'model.keras'], shape=(3,), dtype=string)
Пример
Давайте создадим биграммы с дополнением для коротких последовательностей:
import tensorflow as tf
t = tf.constant(['abcde'])
res = tf.strings.ngrams(t, 2, separator=' ', pad_width=1, pad_value='_')
print(res)
Результат выполнения кода:
tf.Tensor([b'_ a' b'a b' b'b c' b'c d' b'd e' b'e _'], shape=(6,), dtype=string)
Смотрите также
-
функцию
split,
которая разбивает строки по разделителю -
функцию
join,
которая объединяет строки в одну -
функцию
reduce_join,
которая объединяет строки по указанной оси -
функцию
substr,
которая извлекает подстроки из строк