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 для обеспечения правильного форматирования ввода даже если он уже находится в нужной кодировке.
Если входной параметр начинается с маркера порядка байтов (BOM), необходимый для определения кодировки (например, если кодировка — UTF-16, а BOM указывает на порядок байтов big-endian), этот 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 | A Tensor типа string. Текст для обработки. Может иметь любую форму. |
input_encoding | A string. Кодировка текста входных строк. Это любая из кодировок, поддерживаемых алгоритмическими преобразователями ICU ucnv. Примеры: "UTF-16", "US ASCII", "UTF-8". |
output_encoding | A string из: "UTF-8", "UTF-16-BE", "UTF-32-BE". Кодировка Unicode для использования в выводе. Должна быть одной из "UTF-8", "UTF-16-BE", "UTF-32-BE". Многобайтовые кодировки будут big-endian. |
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 передача символа замены, выразимого в 1 байте, такого как ' ', сохранит выравнивание строки к источнику, так как недопустимые байты будут заменены символом замены длиной 1 байт. Для UTF-16-BE и UTF-16-LE любой символ замены длиной 1 или 2 байта сохранит выравнивание байтов к источнику. |
replace_control_characters | Необязательный bool. По умолчанию False. Нужно ли заменять управляющие символы C0 (00-1F) на replacement_char. По умолчанию false. |
name | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
A Tensor типа string. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/raw_ops/UnicodeTranscode