tensorflow::ops::UnicodeTranscode
#include <string_ops.h>
Преобразует входной текст из исходной кодировки в целевую.
Краткое описание
Входные данные — строковый тензор произвольной формы. Выходные данные — строковый тензор той же формы, содержащий преобразованные строки. Строки выходных данных всегда содержат допустимый текст Юникода. Если входные данные содержат позиции с некорректной кодировкой, атрибут 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")
Аргументы:
- scope: Объект Scope
- input: Текст для обработки. Может иметь любую форму.
- input_encoding: Кодировка входных строк. Поддерживаются все кодировки, доступные в алгоритмических преобразователях ICU ucnv. Примеры:
"UTF-16", "US ASCII", "UTF-8". - output_encoding: Кодировка Юникода для выходных данных. Должна быть одной из
"UTF-8", "UTF-16-BE", "UTF-32-BE". Для многобайтовых кодировок используется порядок байтов от старшего к младшему.
Необязательные атрибуты (см. Attrs):
- errors: Политика обработки ошибок при обнаружении некорректного форматирования во входных данных. Значение 'strict' приводит к ошибке InvalidArgument при любом некорректном форматировании входных данных. Значение 'replace' (по умолчанию) приводит к замене любого некорректного форматирования во входных данных кодовой точкой
replacement_char. Значение 'ignore' приводит к пропуску любого некорректного форматирования во входных данных без вывода соответствующего символа. - replacement_char: Кодовая точка символа-замены, которая используется вместо любого некорректного форматирования во входных данных, если выбрано
errors='replace'. Можно использовать любую допустимую кодовую точку Юникода. Значение по умолчанию — стандартный символ-замена Юникода 0xFFFD или U+65533.
Обратите внимание: для UTF-8 передача символа-замены, представимого одним байтом, например ' ', сохраняет выравнивание строки относительно исходной, поскольку некорректные байты заменяются однобайтовым символом. Для UTF-16-BE и UTF-16-LE любой символ-замена размером в 1 или 2 байта сохраняет выравнивание байтов относительно исходных данных.
- replace_control_characters: Заменять ли управляющие символы C0 (00–1F) на
replacement_char. По умолчанию — false.
Возвращает:
-
Output: Строковый тензор, содержащий текст Юникода в кодировкеoutput_encoding.
| Конструкторы и деструкторы | |
|---|---|
UnicodeTranscode(const ::tensorflow::Scope & scope, ::tensorflow::Input input, StringPiece input_encoding, StringPiece output_encoding) | |
UnicodeTranscode(const ::tensorflow::Scope & scope, ::tensorflow::Input input, StringPiece input_encoding, StringPiece output_encoding, const UnicodeTranscode::Attrs & attrs) |
| Публичные атрибуты | |
|---|---|
operation | |
output | |
| Публичные функции | |
|---|---|
node() const | ::tensorflow::Node * |
operator::tensorflow::Input() const | |
operator::tensorflow::Output() const | |
| Публичные статические функции | |
|---|---|
Errors(StringPiece x) | |
ReplaceControlCharacters(bool x) | |
ReplacementChar(int64 x) | |
| Структуры | |
|---|---|
| tensorflow::ops::UnicodeTranscode::Attrs | Настройки необязательных атрибутов для UnicodeTranscode. |
Публичные атрибуты
operation
Operation operation
output
::tensorflow::Output output
Публичные функции
UnicodeTranscode
UnicodeTranscode( const ::tensorflow::Scope & scope, ::tensorflow::Input input, StringPiece input_encoding, StringPiece output_encoding )
UnicodeTranscode
UnicodeTranscode( const ::tensorflow::Scope & scope, ::tensorflow::Input input, StringPiece input_encoding, StringPiece output_encoding, const UnicodeTranscode::Attrs & attrs )
node
::tensorflow::Node * node() const
operator::tensorflow::Input
operator::tensorflow::Input() const
operator::tensorflow::Output
operator::tensorflow::Output() const
Публичные статические функции
Errors
Attrs Errors( StringPiece x )
ReplaceControlCharacters
Attrs ReplaceControlCharacters( bool x )
ReplacementChar
Attrs ReplacementChar( int64 x )
© 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/cc/class/tensorflow/ops/unicode-transcode