เทนเซอร์โฟลว์:: ปฏิบัติการ:: UnicodeTranscode

#include <string_ops.h>

แปลงรหัสข้อความอินพุตจากการเข้ารหัสต้นทางเป็นการเข้ารหัสปลายทาง

สรุป

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

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

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

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

ข้อโต้แย้ง:

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

แอ็ตทริบิวต์ทางเลือก (ดู Attrs ):

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

โปรดทราบว่าสำหรับ UTF-8 การส่งอักขระแทนที่ที่แสดงเป็น 1 ไบต์ เช่น ' ' จะคงการจัดแนวสตริงไว้ที่ต้นทาง เนื่องจากไบต์ที่ไม่ถูกต้องจะถูกแทนที่ด้วยการแทนที่ 1 ไบต์ สำหรับ UTF-16-BE และ UTF-16-LE อักขระแทนที่ 1 หรือ 2 ไบต์ใดๆ จะรักษาการจัดตำแหน่งของไบต์กับแหล่งที่มา

  • แทนที่อักขระควบคุม C0 (00-1F) ด้วย replacement_char หรือไม่ ค่าเริ่มต้นเป็นเท็จ

ผลตอบแทน:

  • 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)

โครงสร้าง

เทนเซอร์โฟลว์ :: ops :: UnicodeTranscode :: Attrs

ตัวตั้งค่าแอตทริบิวต์เพิ่มเติมสำหรับ UnicodeTranscode

คุณลักษณะสาธารณะ

การดำเนินการ

Operation operation

เอาท์พุท

::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
)

โหนด

::tensorflow::Node * node() const 

ตัวดำเนินการ::tensorflow::อินพุต

 operator::tensorflow::Input() const 

ตัวดำเนินการ::tensorflow::เอาต์พุต

 operator::tensorflow::Output() const 

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

ข้อผิดพลาด

Attrs Errors(
  StringPiece x
)

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

Attrs ReplaceControlCharacters(
  bool x
)

ถ่านทดแทน

Attrs ReplacementChar(
  int64 x
)