Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะแสดงสตริง Unicode เป็นสตริงที่เข้ารหัส UTF-8 โดยใช้ Tensorflow และ Python ได้อย่างไร


ชุดของสตริง 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