tensorflow::ops::UnicodeTranscode

#include <string_ops.h>

Chuyển đổi văn bản đầu vào từ định dạng mã hóa nguồn sang định dạng mã hóa đích.

Bản tóm tắt

Đầu vào là một tensor chuỗi có bất kỳ hình dạng nào. Đầu ra là một tensor chuỗi có cùng hình dạng chứa các chuỗi đã được chuyển mã. Các chuỗi đầu ra luôn là Unicode hợp lệ. Nếu đầu vào chứa các vị trí mã hóa không hợp lệ, thuộc tính ` errors sẽ thiết lập chính sách xử lý chúng. Nếu sử dụng chính sách xử lý lỗi mặc định, định dạng không hợp lệ sẽ được thay thế trong đầu ra bằng ` replacement_char . Nếu chính sách lỗi là ignore , bất kỳ vị trí mã hóa không hợp lệ nào trong đầu vào sẽ bị bỏ qua và không được bao gồm trong đầu ra. Nếu được đặt thành strict thì bất kỳ định dạng không hợp lệ nào sẽ dẫn đến lỗi `InvalidArgument`.

Thao tác này có thể được sử dụng với output_encoding = input_encoding để đảm bảo định dạng chính xác cho đầu vào ngay cả khi chúng đã ở định dạng mã hóa mong muốn.

Nếu dữ liệu đầu vào được đặt trước bởi một Byte Order Mark (BOM) cần thiết để xác định mã hóa (ví dụ: nếu mã hóa là UTF-16 và BOM chỉ ra big-endian), thì BOM đó sẽ được loại bỏ và không được xuất ra trong dữ liệu đầu ra. Nếu mã hóa đầu vào được đánh dấu bằng một endianness rõ ràng (ví dụ: UTF-16-BE), thì BOM được hiểu là một khoảng trắng không ngắt dòng và được giữ nguyên trong dữ liệu đầu ra (bao gồm cả trường hợp luôn luôn đúng với UTF-8).

Kết quả cuối cùng là nếu đầu vào được đánh dấu là có thứ tự byte rõ ràng, quá trình chuyển mã sẽ trung thực với tất cả các điểm mã trong nguồn. Nếu nó không được đánh dấu với thứ tự byte rõ ràng, BOM không được coi là một phần của chuỗi mà là siêu dữ liệu, và do đó không được bảo toàn trong đầu ra.

Ví dụ:

tf.strings.unicode_transcode(["Hello", "TensorFlow", "2.x"], "UTF-8", "UTF-16-BE") tf.strings.unicode_transcode(["A", "B", "C"], "US ASCII", "UTF-8").numpy() array([b'A', b'B', b'C'], dtype=object)

Luận điểm:

  • phạm vi: Một đối tượng Phạm vi
  • Đầu vào: Văn bản cần được xử lý. Có thể có bất kỳ định dạng nào.
  • input_encoding: Mã hóa văn bản của các chuỗi đầu vào. Đây là bất kỳ mã hóa nào được hỗ trợ bởi các bộ chuyển đổi thuật toán ICU ucnv. Ví dụ: "UTF-16", "US ASCII", "UTF-8" .
  • output_encoding: Mã hóa Unicode được sử dụng trong đầu ra. Phải là một trong các loại "UTF-8", "UTF-16-BE", "UTF-32-BE" . Mã hóa nhiều byte sẽ là big-endian.

Các thuộc tính tùy chọn (xem Attrs ):

  • Lỗi: Chính sách xử lý lỗi khi phát hiện định dạng không hợp lệ trong dữ liệu đầu vào. Giá trị 'strict' sẽ khiến thao tác tạo ra lỗi InvalidArgument đối với bất kỳ định dạng đầu vào không hợp lệ nào. Giá trị 'replace' (mặc định) sẽ khiến thao tác thay thế bất kỳ định dạng không hợp lệ nào trong dữ liệu đầu vào bằng mã ký tự replacement_char . Giá trị 'ignore' sẽ khiến thao tác bỏ qua bất kỳ định dạng không hợp lệ nào trong dữ liệu đầu vào và không tạo ra ký tự đầu ra tương ứng.
  • replacement_char: Mã ký tự thay thế được sử dụng để thay thế bất kỳ định dạng không hợp lệ nào trong đầu vào khi errors='replace' . Có thể sử dụng bất kỳ mã Unicode hợp lệ nào. Giá trị mặc định là ký tự thay thế Unicode mặc định là 0xFFFD hoặc U+65533.)

Lưu ý rằng đối với UTF-8, việc truyền một ký tự thay thế có thể biểu diễn bằng 1 byte, chẳng hạn như ' ', sẽ giữ nguyên sự căn chỉnh chuỗi so với nguồn vì các byte không hợp lệ sẽ được thay thế bằng một byte thay thế. Đối với UTF-16-BE và UTF-16-LE, bất kỳ ký tự thay thế nào có 1 hoặc 2 byte đều sẽ giữ nguyên sự căn chỉnh byte so với nguồn.

  • replace_control_characters: Có thay thế các ký tự điều khiển C0 (00-1F) bằng replacement_char hay không. Mặc định là false.

Trả về:

  • Output : Một tensor chuỗi chứa văn bản Unicode được mã hóa bằng output_encoding .

Hàm khởi tạo và hàm hủy

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)

Thuộc tính công khai

operation
output

Chức năng công cộng

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

Các hàm tĩnh công khai

Errors (StringPiece x)
ReplaceControlCharacters (bool x)
ReplacementChar (int64 x)

Cấu trúc

tensorflow::ops::UnicodeTranscode::Attrs

Các thiết lập thuộc tính tùy chọn cho UnicodeTranscode .

Thuộc tính công khai

hoạt động

Operation operation

đầu ra

::tensorflow::Output output

Chức năng công cộng

Chuyển mã Unicode

 UnicodeTranscode(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  StringPiece input_encoding,
  StringPiece output_encoding
)

Chuyển mã Unicode

 UnicodeTranscode(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  StringPiece input_encoding,
  StringPiece output_encoding,
  const UnicodeTranscode::Attrs & attrs
)

nút

::tensorflow::Node * node() const 

operator::tensorflow::Input

 operator::tensorflow::Input() const 

operator::tensorflow::Output

 operator::tensorflow::Output() const 

Các hàm tĩnh công khai

Lỗi

Attrs Errors(
  StringPiece x
)

Thay thế các ký tự điều khiển

Attrs ReplaceControlCharacters(
  bool x
)

ReplacementChar

Attrs ReplacementChar(
  int64 x
)