เทนเซอร์โฟลว์:: ปฏิบัติการ:: 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 )