Spec-Zone.ru › TensorFlow 2.9

tf.strings.substr

Просмотреть исходный код на GitHub

Возвращает подстроки из Tensor строк.

tf.strings.substr(
    input, pos, len, unit='BYTE', name=None
)

Для каждой строки в входном Tensor, создаётся подстрока, начинающаяся с индекса pos и имеющая общую длину len.

Если len определяет подстроку, которая выходит за пределы длины входной строки, или если len отрицательное, то используется как можно больше символов.

Отрицательный pos указывает на расстояние внутри строки назад от конца.

Если pos задаёт индекс, который выходит за пределы диапазона для любой из входных строк, то выбрасывается InvalidArgumentError.

pos и len должны иметь одинаковую форму, в противном случае при создании операции будет выброшено ValueError.

Примечание: Substr поддерживает векторизацию до двух измерений. Подробнее о векторизации здесь

Примеры

Использование скалярного pos и len:

input = [b'Hello', b'World']
position = 1
length = 3

output = [b'ell', b'orl']

Использование pos и len с такой же формой, как у input:

input = [[b'ten', b'eleven', b'twelve'],
         [b'thirteen', b'fourteen', b'fifteen'],
         [b'sixteen', b'seventeen', b'eighteen']]
position = [[1, 2, 3],
            [1, 2, 3],
            [1, 2, 3]]
length =   [[2, 3, 4],
            [4, 3, 2],
            [5, 5, 5]]

output = [[b'en', b'eve', b'lve'],
          [b'hirt', b'urt', b'te'],
          [b'ixtee', b'vente', b'hteen']]

Векторизация pos и len к input:

input = [[b'ten', b'eleven', b'twelve'],
         [b'thirteen', b'fourteen', b'fifteen'],
         [b'sixteen', b'seventeen', b'eighteen'],
         [b'nineteen', b'twenty', b'twentyone']]
position = [1, 2, 3]
length =   [1, 2, 3]

output = [[b'e', b'ev', b'lve'],
          [b'h', b'ur', b'tee'],
          [b'i', b've', b'hte'],
          [b'i', b'en', b'nty']]

Векторизация input к pos и len:

input = b'thirteen'
position = [1, 5, 7]
length =   [3, 2, 1]

output = [b'hir', b'ee', b'n']
Возможные исключения
  • ValueError: Если первый аргумент не может быть преобразован в тензор типа dtype string.
  • InvalidArgumentError: Если индексы выходят за пределы диапазона.
  • ValueError: Если pos и len имеют разные формы.
Аргументы
input Массив Tensor типа string. Тензор строк
pos Массив Tensor. Должен быть одного из следующих типов: int32, int64. Скаляр, определяющий позицию первого символа в каждой подстроке
len Массив Tensor. Должен иметь тот же тип, что и pos. Скаляр, определяющий количество символов для включения в каждую подстроку
unit Необязательный string из: "BYTE", "UTF8_CHAR". По умолчанию "BYTE". Единица измерения для создания подстроки. Один из: "BYTE" (для определения позиции и длины по байтам) или "UTF8_CHAR" (для кодовых точек Юникода, закодированных в UTF-8). По умолчанию "BYTE". Результат неопределён, если unit=UTF8_CHAR и строки input не содержат структурно валидного UTF-8.
name Имя операции (необязательно).
Возвращаемое значение
Массив Tensor типа string.

© 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/versions/r2.9/api_docs/python/tf/strings/substr

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API