tf.compat.v1.strings.substr
Возвращает подстроки из Tensor строк.
tf.compat.v1.strings.substr(
input, pos, len, name=None, unit='BYTE'
)
Для каждой строки в входном 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']
| Исключения | |
|---|---|
|
| Аргументы | |
|---|---|
input | Массив Tensor типа string. Тензор строк |
pos | Скаляр. Должен быть одного из следующих типов: int32, int64. Скаляр, определяющий позицию первого символа в каждой подстроке |
len | Скаляр. Должен иметь тот же тип, что и 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/api_docs/python/tf/compat/v1/strings/substr