dòng chảy căng:: ôi:: Chuyển mã Unicode

#include <string_ops.h>

Chuyển mã văn bản đầu vào từ mã hóa nguồn sang mã hóa đích.

Bản tóm tắt

Đầu vào là một tensor chuỗi có hình dạng bất kỳ. Đầ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ã. 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ẽ đặt chính sách về cách xử lý chúng. Nếu chính sách xử lý lỗi mặc định được sử dụng, đị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 thì mọi vị trí mã hóa không hợp lệ trong đầu vào sẽ bị bỏ qua và không được đưa vào đầu ra. Nếu nó được đặt thành strict thì mọi định dạng không hợp lệ sẽ dẫn đến lỗi InvalidArgument.

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

Nếu đầu vào có tiền tố là Dấu thứ tự byte cần thiết để xác định mã hóa (ví dụ: nếu mã hóa là UTF-16 và BOM biểu thị big-endian), thì BOM đó sẽ được sử dụng và không được phát ra đầu ra. Nếu mã hóa đầu vào được đánh dấu bằng độ cuối rõ ràng (ví dụ: UTF-16-BE), thì BOM được hiểu là dấu cách không ngắt và được giữ nguyên ở đầu ra (bao gồm luôn dành cho UTF-8).

Kết quả cuối cùng là nếu đầu vào được đánh dấu là độ cuối rõ ràng thì việc 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 bằng độ cuối rõ ràng thì 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 giữ nguyên trong đầu ra.

Ví dụ:

tf.strings.unicode_transcode(["Xin chào", "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=đối tượng)

Lập luận:

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

Thuộc tính tùy chọn (xem Attrs ):

  • lỗi: Chính sách xử lý lỗi khi tìm thấy định dạng không hợp lệ trong đầu vào. Giá trị 'nghiêm ngặt' sẽ khiến thao tác tạo ra lỗi InvalidArgument trên bất kỳ định dạng đầu vào không hợp lệ nào. Giá trị 'thay thế' (mặc định) sẽ khiến thao tác thay thế mọi định dạng không hợp lệ trong đầu vào bằng điểm mã replacement_char . Giá trị 'bỏ qua' sẽ khiến thao tác bỏ qua mọi định dạng không hợp lệ trong đầu vào và không tạo ra ký tự đầu ra tương ứng.
  • thay thế_char: Điểm mã ký tự thay thế được sử dụng thay cho bất kỳ định dạng không hợp lệ nào trong đầu vào khi errors='replace' . Bất kỳ điểm mã unicode hợp lệ nào cũng có thể được sử dụng. 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 chuyển ký tự thay thế có thể biểu thị bằng 1 byte, chẳng hạn như '', sẽ duy trì sự liên kết chuỗi với nguồn vì các byte không hợp lệ sẽ được thay thế bằng thay thế 1 byte. Đối với UTF-16-BE và UTF-16-LE, bất kỳ ký tự thay thế 1 hoặc 2 byte nào sẽ duy trì căn chỉnh byte với nguồn.

  • thay thế_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à sai.

Trả về:

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

Hàm 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

Trình 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 

toán tử::tenorflow::Đầu vào

 operator::tensorflow::Input() const 

toán tử::tenorflow::Đầu ra

 operator::tensorflow::Output() const 

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

Lỗi

Attrs Errors(
  StringPiece x
)

Thay thếĐiều khiểnKý tự

Attrs ReplaceControlCharacters(
  bool x
)

Char thay thế

Attrs ReplacementChar(
  int64 x
)