tensorflow::ops::UnicodeTranscode

#include <string_ops.h>

แปลงรหัสข้อความจากรหัสต้นทางไปยังรหัสปลายทาง

สรุป

อินพุตคือเทนเซอร์สตริงที่มีรูปร่างใดก็ได้ เอาต์พุตคือเทนเซอร์สตริงที่มีรูปร่างเดียวกันซึ่งประกอบด้วยสตริงที่แปลงแล้ว สตริง เอาต์พุต เป็นยูนิโค้ดที่ถูกต้องเสมอ หากอินพุตมีตำแหน่งการเข้ารหัสที่ไม่ถูกต้อง คุณสมบัติ errors จะกำหนดนโยบายในการจัดการกับตำแหน่งเหล่านั้น หากใช้นโยบายการจัดการข้อผิดพลาดเริ่มต้น การจัดรูปแบบที่ไม่ถูกต้องจะถูกแทนที่ด้วย replacement_char ในเอาต์พุต หากนโยบาย errors คือ ignore ตำแหน่งการเข้ารหัสที่ไม่ถูกต้องในอินพุตจะถูกข้ามและไม่รวมอยู่ในเอาต์พุต หากตั้งค่าเป็น strict การจัดรูปแบบที่ไม่ถูกต้องใด ๆ จะส่งผลให้เกิดข้อผิดพลาด InvalidArgument

สามารถใช้การดำเนินการนี้ร่วมกับ output_encoding = input_encoding เพื่อบังคับใช้รูปแบบที่ถูกต้องสำหรับข้อมูลนำเข้า แม้ว่าข้อมูลเหล่านั้นจะอยู่ในรูปแบบการเข้ารหัสที่ต้องการอยู่แล้วก็ตาม

หากข้อมูลนำเข้ามีคำนำหน้าเป็น Byte Order Mark (BOM) ที่จำเป็นสำหรับการกำหนดการเข้ารหัส (เช่น หากการเข้ารหัสเป็น UTF-16 และ BOM ระบุว่าเป็น big-endian) BOM นั้นจะถูกนำไปใช้และจะไม่ถูกส่งออกไปในข้อมูลส่งออก แต่หากการเข้ารหัสของข้อมูลนำเข้ามีการระบุ endianness อย่างชัดเจน (เช่น UTF-16-BE) BOM นั้นจะถูกตีความว่าเป็น non-breaking-space และจะถูกเก็บรักษาไว้ในข้อมูลส่งออก (รวมถึง always สำหรับ UTF-8 ด้วย)

ผลลัพธ์สุดท้ายคือ หากอินพุตมีการระบุลำดับไบต์อย่างชัดเจน การแปลงรหัสจะรักษาความถูกต้องของทุกโค้ดพอยต์ในซอร์สโค้ด แต่หากไม่ได้ระบุลำดับไบต์อย่างชัดเจน BOM จะไม่ถือว่าเป็นส่วนหนึ่งของสตริง แต่เป็นเมตาเดตา ดังนั้นจึงไม่ถูกเก็บรักษาไว้ในเอาต์พุต

ข้อโต้แย้ง:

  • ขอบเขต: วัตถุ ขอบเขต
  • อินพุต: ข้อความที่จะประมวลผล สามารถมีรูปแบบใดก็ได้
  • input_encoding: การเข้ารหัสข้อความของสตริงอินพุต นี่คือการเข้ารหัสใดๆ ที่รองรับโดยตัวแปลงอัลกอริธึม ICU ucnv ตัวอย่างเช่น "UTF-16", "US ASCII", "UTF-8"
  • output_encoding: การเข้ารหัส Unicode ที่จะใช้ในผลลัพธ์ ต้องเป็นหนึ่งใน "UTF-8", "UTF-16-BE", "UTF-32-BE" การเข้ารหัสแบบหลายไบต์จะใช้แบบ big-endian

คุณลักษณะเสริม (ดูที่ Attrs ):

  • ข้อผิดพลาด: นโยบายการจัดการข้อผิดพลาดเมื่อพบรูปแบบที่ไม่ถูกต้องในข้อมูลป้อนเข้า ค่า 'strict' จะทำให้การดำเนินการแสดงข้อผิดพลาด InvalidArgument สำหรับรูปแบบข้อมูลป้อนเข้าที่ไม่ถูกต้องใดๆ ค่า 'replace' (ค่าเริ่มต้น) จะทำให้การดำเนินการแทนที่รูปแบบที่ไม่ถูกต้องในข้อมูลป้อนเข้าด้วยรหัสอักขระ replacement_char ค่า 'ignore' จะทำให้การดำเนินการข้ามรูปแบบที่ไม่ถูกต้องในข้อมูลป้อนเข้าและไม่สร้างอักขระเอาต์พุตที่สอดคล้องกัน
  • replacement_char: รหัสอักขระที่จะใช้แทนที่รูปแบบที่ไม่ถูกต้องในข้อมูลป้อนเข้าเมื่อ errors='replace' สามารถใช้รหัสอักขระยูนิโค้ดที่ถูกต้อง ใดก็ได้ ค่าเริ่มต้นคือ 0xFFFD หรือ U+65533 (อักขระทดแทนยูนิโค้ดเริ่มต้น)

โปรดทราบว่าสำหรับ UTF-8 การส่งอักขระทดแทนที่สามารถแสดงได้ใน 1 ไบต์ เช่น ' ' จะรักษาการจัดเรียงสตริงให้ตรงกับต้นฉบับ เนื่องจากไบต์ที่ไม่ถูกต้องจะถูกแทนที่ด้วยอักขระทดแทนขนาด 1 ไบต์ สำหรับ 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

เอาต์พุต

::tensorflow::Output output

หน้าที่สาธารณะ

การแปลงรหัสยูนิโค้ด

 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
)

โหนด

::tensorflow::Node * node() const 

ตัวดำเนินการ::เทนเซอร์โฟลว์::อินพุต

 operator::tensorflow::Input() const 

ตัวดำเนินการ::เทนเซอร์โฟลว์::เอาต์พุต

 operator::tensorflow::Output() const 

ฟังก์ชันคงที่สาธารณะ

ข้อผิดพลาด

Attrs Errors(
  StringPiece x
)

แทนที่อักขระควบคุม

Attrs ReplaceControlCharacters(
  bool x
)

ตัวแทนชาร์

Attrs ReplacementChar(
  int64 x
)