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 )