tf.strings.unicode_split_with_offsets
Разбивает каждую строку на последовательность кодовых точек с начальными смещениями.
tf.strings.unicode_split_with_offsets(
input,
input_encoding,
errors='replace',
replacement_char=65533,
name=None
)
Эта операция похожа на tf.strings.decode(...), но также возвращает начальное смещение каждого символа в соответствующей строке. Эти сведения можно использовать для сопоставления символов с исходной последовательностью байтов.
Возвращает кортеж (chars, start_offsets), где:
-
chars[i1...iN, j]— подстрокаinput[i1...iN], кодирующаяj-й символ при декодировании с помощьюinput_encoding. -
start_offsets[i1...iN, j]— начальное смещение в байтах дляj-го символа вinput[i1...iN]при декодировании с помощьюinput_encoding.
| Аргументы | |
|---|---|
input | Потенциально нерегулярный тензор string с числом измерений N и формой [D1...DN]. N должно быть известно статически. |
input_encoding | Строковое имя кодировки Unicode, которая должна использоваться для декодирования каждой строки. |
errors | Задает реакцию на случай, если входную строку невозможно преобразовать с помощью указанной кодировки. Одно из значений:
|
replacement_char | Заменяющая кодовая точка, используемая вместо недопустимых подстрок в input при значении errors='replace'. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Кортеж тензоров с числом измерений N+1 и формой (codepoints, start_offsets).
Возвращаемые тензоры являются |
Пример:
input = [s.encode('utf8') for s in (u'G\xf6\xf6dnight', u'\U0001f60a')]
result = tf.strings.unicode_split_with_offsets(input, 'UTF-8')
result[0].to_list() # character substrings
[[b'G', b'\xc3\xb6', b'\xc3\xb6', b'd', b'n', b'i', b'g', b'h', b't'],
[b'\xf0\x9f\x98\x8a']]
result[1].to_list() # offsets
[[0, 1, 3, 5, 6, 7, 8, 9, 10], [0]]
© 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/unicode_split_with_offsets