ชุดของสตริง Unicode สามารถแสดงเป็นสตริงที่เข้ารหัส UTF8 โดยใช้วิธี "เข้ารหัส"
อ่านเพิ่มเติม:TensorFlow คืออะไรและ Keras ทำงานร่วมกับ TensorFlow เพื่อสร้าง Neural Networks ได้อย่างไร
โมเดลที่ประมวลผลภาษาธรรมชาติจัดการกับภาษาต่างๆ ที่มีชุดอักขระต่างกัน Unicode ถือเป็นระบบการเข้ารหัสมาตรฐานที่ใช้แสดงอักขระจากเกือบทุกภาษา อักขระทุกตัวถูกเข้ารหัสด้วยความช่วยเหลือของจุดรหัสจำนวนเต็มที่ไม่ซ้ำกันซึ่งอยู่ระหว่าง 0 ถึง 0x10FFFF สตริง Unicode คือลำดับของค่ารหัสศูนย์หรือมากกว่า
ให้เราเข้าใจวิธีการแสดงสตริง Unicode โดยใช้ Python และจัดการกับสตริงที่ใช้ Unicode ที่เทียบเท่ากัน ขั้นแรก เราแยกสตริง Unicode เป็นโทเค็นตามการตรวจจับสคริปต์โดยใช้ Unicode ที่เทียบเท่ากับ ops สตริงมาตรฐาน
เรากำลังใช้ Google Colaboratory เพื่อเรียกใช้โค้ดด้านล่าง Google Colab หรือ Colaboratory ช่วยเรียกใช้โค้ด Python บนเบราว์เซอร์และไม่ต้องมีการกำหนดค่าใดๆ และเข้าถึง GPU ได้ฟรี (หน่วยประมวลผลกราฟิก) Colaboratory ถูกสร้างขึ้นบน Jupyter Notebook
print("A set of Unicode strings which is represented as a UTF8-encoded string") batch_utf8 = [s.encode('UTF-8') for s in[u'hÃllo', u'What is the weather tomorrow',u'Göödnight', u'😊']] batch_chars_ragged = tf.strings.unicode_decode(batch_utf8, input_encoding='UTF-8') for sentence_chars in batch_chars_ragged.to_list(): print(sentence_chars) print("Dense tensor with padding are printed") batch_chars_padded = batch_chars_ragged.to_tensor(default_value=-1) print(batch_chars_padded.numpy()) print("Converting to sparse matrix") batch_chars_sparse = batch_chars_ragged.to_sparse()
เครดิตโค้ด:https://www.tensorflow.org/tutorials/load_data/unicode
ผลลัพธ์
A set of Unicode strings which is represented as a UTF8-encoded string [104, 195, 108, 108, 111] [87, 104, 97, 116, 32, 105, 115, 32, 116, 104, 101, 32, 119, 101, 97, 116, 104, 101, 114, 32, 116, 111, 109, 111, 114, 114, 111, 119] [71, 246, 246, 100, 110, 105, 103, 104, 116] [128522] Dense tensor with padding are printed [[ 104 195 108 108 111 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1] [87 104 97 116 32 105 115 32 116 104 101 32 119 101 97 116 104 101 114 32 116 111 109 111 114 114 111 119] [71 246 246 100 110 105 103 104 116 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1] [128522 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]] Converting to sparse matrix
คำอธิบาย
- เมื่อถอดรหัสหลายสตริง จำนวนอักขระในแต่ละสตริงอาจไม่เท่ากัน
- ผลลัพธ์จะเป็น tf.RaggedTensor โดยที่ความยาวของมิติในสุดจะแตกต่างกันไป และรูปแบบนี้ขึ้นอยู่กับจำนวนอักขระในทุกสตริง
- tf.RaggedTensor นี้สามารถใช้ได้โดยตรง หรือแปลงเป็น tf.Tensor แบบหนาแน่นด้วยการเติมโดยใช้วิธีการ tf.RaggedTensor.to_tensor หรือ tf.SparseTensor โดยใช้ tf.RaggedTensor.to_sparse