Google I / O hoạt động trở lại từ ngày 18 đến 20 tháng 5! Đặt chỗ và xây dựng lịch trình của bạn Đăng ký ngay

dòng chảy :: hoạt động :: UnicodeTranscode

#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.

Tóm lược

Đầu vào là một 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 được ignore , 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ì bất kỳ định dạng không hợp lệ nào sẽ dẫn đến lỗi Không hợp lệ.

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 các đầu vào ngay cả khi chúng đã ở mã hóa mong muốn.

Nếu đầu vào được bắt đầu bằng 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 chỉ ra big-endian), thì BOM đó sẽ được sử dụng và không được phát vào đầu ra. Nếu mã hóa đầu vào được đánh dấu bằng nội dung rõ ràng (ví dụ: UTF-16-BE), thì BOM được hiểu là một khoảng trắng không ngắt và được giữ nguyên trong đầu ra (bao gồm luôn cho UTF-8).

Kết quả cuối cùng là nếu đầu vào được đánh dấu là kết quả rõ ràng thì quá trình chuyển mã sẽ trung thành với tất cả các điểm mã trong nguồn. Nếu nó không được đánh dấu bằng sự kết thúc rõ ràng, BOM không được coi là một phần của chính chuỗi mà là siêu dữ liệu và do đó không được lưu giữ 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"). mảng numpy () ([b'A ', b'B', b ' C '], dtype = object)

Tranh luận:

  • phạm vi: Một đối tượng Phạm vi
  • input: Văn bản được 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 các 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 ICU ucnv. Ví dụ: "UTF-16", "US ASCII", "UTF-8" .
  • output_encoding: Mã hóa unicode để sử dụng trong đầu ra. Phải là một trong "UTF-8", "UTF-16-BE", "UTF-32-BE" . Các bảng mã nhiều byte sẽ là big-endian.

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

  • lỗi: Chính sách xử lý lỗi khi có định dạng không hợp lệ được tìm thấy trong đầu vào. Giá trị 'nghiêm ngặt' sẽ khiến thao tác tạo ra lỗi Đối số không hợp lệ 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ẽ thực hiện thao tác thay thế mọi định dạng không hợp lệ trong đầu vào bằng mã replacement_char thế_char. Giá trị 'bỏ qua' sẽ khiến thao tác bỏ qua bất kỳ định dạng không hợp lệ nào trong đầu vào và không tạo ra ký tự đầu ra tương ứng.
  • Replace_char: Mã điể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' . Có thể sử dụng bất kỳ mã điể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 chuyển một ký tự thay thế có thể diễn đạt được trong 1 byte, chẳng hạn như '', sẽ bảo toàn 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 1 byte thay thế. Đố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ì sự liên kết byte với nguồn.

  • replace_control_characters: Cho dù để thay thế các ký tự điều khiển C0 (00-1F) với replacement_char . Mặc định là sai.

Lợi nhuận:

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

Người xây dựng và Người phá 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 cộng

operation
output

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

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

Các chức năng tĩnh công khai

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

Cấu trúc

tensorflow :: ops :: UnicodeTranscode :: Attrs

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

Thuộc tính công cộng

hoạt động

Operation operation

đầu ra

::tensorflow::Output output

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

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
)

nút

::tensorflow::Node * node() const 

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

 operator::tensorflow::Input() const 

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

 operator::tensorflow::Output() const 

Các chức năng tĩnh công khai

Lỗi

Attrs Errors(
  StringPiece x
)

ReplaceControlCharacters

Attrs ReplaceControlCharacters(
  bool x
)

ReplacementChar

Attrs ReplacementChar(
  int64 x
)