tf.raw_ops.UnicodeTranscode
Преобразует входной текст из исходной кодировки в целевую.
tf.raw_ops.UnicodeTranscode(
input,
input_encoding,
output_encoding,
errors='replace',
replacement_char=65533,
replace_control_characters=False,
name=None
)
Входные данные — это строковый тензор произвольной формы. Выходные данные — строковый тензор той же формы, содержащий преобразованные строки. Выходные строки всегда являются корректными строками Unicode. Если входные данные содержат позиции с некорректной кодировкой, атрибут errors задаёт способ их обработки. При использовании политики обработки ошибок по умолчанию некорректные данные форматирования в выходных данных заменяются на кодовую точку replacement_char. Если для ошибок выбрана политика ignore, все позиции с некорректной кодировкой во входных данных пропускаются и не включаются в выходные данные. Если задано значение strict, любые некорректные данные форматирования приведут к ошибке InvalidArgument.
Эту операцию можно использовать с output_encoding = input_encoding, чтобы обеспечить корректность форматирования входных данных, даже если они уже имеют нужную кодировку.
Если в начале входных данных находится маркер порядка байтов, необходимый для определения кодировки (например, если кодировка — UTF-16, а BOM указывает на порядок от старшего байта к младшему), этот BOM будет обработан и не попадёт в выходные данные. Если для входной кодировки явно указан порядок байтов (например, UTF-16-BE), BOM интерпретируется как неразрывный пробел и сохраняется в выходных данных (в том числе всегда для UTF-8).
В результате, если во входных данных явно указан порядок байтов, преобразование сохраняет все кодовые точки исходного текста. Если порядок байтов явно не указан, BOM считается не частью самой строки, а метаданными, поэтому он не сохраняется в выходных данных.
Примеры:
tf.strings.unicode_transcode(["Hello", "TensorFlow", "2.x"], "UTF-8", "UTF-16-BE")
<tf.Tensor: shape=(3,), dtype=string, numpy=
array([b'\x00H\x00e\x00l\x00l\x00o',
b'\x00T\x00e\x00n\x00s\x00o\x00r\x00F\x00l\x00o\x00w',
b'\x002\x00.\x00x'], dtype=object)>
tf.strings.unicode_transcode(["A", "B", "C"], "US ASCII", "UTF-8").numpy()
array([b'A', b'B', b'C'], dtype=object)| Аргументы | |
|---|---|
input | Tensor типа string. Текст для обработки. Может иметь любую форму. |
input_encoding | string. Кодировка входных строк. Это одна из кодировок, поддерживаемых алгоритмическими преобразователями ICU ucnv. Примеры: "UTF-16", "US ASCII", "UTF-8". |
output_encoding | string из: "UTF-8", "UTF-16-BE", "UTF-32-BE". Кодировка Unicode для выходных данных. Должна быть одной из "UTF-8", "UTF-16-BE", "UTF-32-BE". В многобайтовых кодировках используется порядок от старшего байта к младшему. |
errors | Необязательный string из: "strict", "replace", "ignore". Значение по умолчанию: "replace". Политика обработки ошибок при обнаружении некорректных данных форматирования во входных данных. Значение 'strict' приведёт к тому, что операция выдаст ошибку InvalidArgument при обнаружении любого некорректного форматирования входных данных. Значение 'replace' (по умолчанию) приведёт к замене любых некорректных данных форматирования во входных данных на кодовую точку replacement_char. Значение 'ignore' приведёт к пропуску любых некорректных данных форматирования во входных данных без создания соответствующего выходного символа. |
replacement_char | Необязательный int. Значение по умолчанию: 65533. Кодовая точка символа замены, используемого вместо любых некорректных данных форматирования во входных данных, если выбрана политика errors='replace'. Можно использовать любую допустимую кодовую точку Unicode. Значение по умолчанию — стандартный символ замены Unicode: 0xFFFD или U+65533.) Обратите внимание: для UTF-8 передача символа замены, представимого одним байтом, например ' ', сохранит выравнивание строки относительно исходных данных, поскольку некорректные байты будут заменены однобайтовым символом. Для UTF-16-BE и UTF-16-LE любой однобайтовый или двухбайтовый символ замены сохранит выравнивание байтов относительно исходных данных. |
replace_control_characters | Необязательный bool. Значение по умолчанию: False. Нужно ли заменять управляющие символы C0 (00–1F) на replacement_char. По умолчанию — false. |
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/raw_ops/UnicodeTranscode