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

สตริง Unicode สามารถแสดงและจัดการใน Tensorflow ได้อย่างไร


สตริง Unicode ถูกเข้ารหัส utf-8 โดยค่าเริ่มต้น สตริง Unicode สามารถแสดงเป็นค่าสเกลาร์ที่เข้ารหัส UTF-8 โดยใช้วิธี 'ค่าคงที่' ในโมดูล Tensorflow สตริง Unicode สามารถแสดงเป็นสเกลาร์ที่เข้ารหัส UTF-16 โดยใช้วิธี "เข้ารหัส" ที่มีอยู่ในโมดูล Tensorflow

อ่านเพิ่มเติม: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

import tensorflow as tf
print("A constant is defined")
tf.constant(u"Thanks 😊")
print("The shape of the tensor is")
tf.constant([u"You are", u"welcome!"]).shape
print("Unicode string represented as UTF-8 encoded scalar")
text_utf8 = tf.constant(u"语言处理")
print(text_utf8)
print("Unicode string represented as UTF-16 encoded scalar")
text_utf16be = tf.constant(u"语言处理".encode("UTF-16-BE"))
print(text_utf16be)
print("Unicode string represented as a vector of Unicode code points")
text_chars = tf.constant([ord(char) for char in u"语言处理"])
print(text_chars)

เครดิตโค้ด:https://www.tensorflow.org/tutorials/load_data/unicode

ผลลัพธ์

A constant is defined
The shape of the tensor is
Unicode string represented as UTF-8 encoded scalar
tf.Tensor(b'\xe8\xaf\xad\xe8\xa8\x80\xe5\xa4\x84\xe7\x90\x86', shape=(), dtype=string)
Unicode string represented as UTF-16 encoded scalar
tf.Tensor(b'\x8b\xed\x8a\x00Y\x04t\x06', shape=(), dtype=string)
Unicode string represented as a vector of Unicode code points
tf.Tensor([35821 35328 22788 29702], shape=(4,), dtype=int32)

คำอธิบาย

  • TensorFlow tf.string เป็น dtype พื้นฐาน
  • อนุญาตให้ผู้ใช้สร้างเทนเซอร์ของสตริงไบต์ได้
  • สตริง Unicode ถูกเข้ารหัส utf-8 โดยค่าเริ่มต้น
  • เทนเซอร์ tf.string สามารถเก็บสตริงไบต์ที่มีความยาวต่างกันได้ เนื่องจากสตริงไบต์ถือเป็นหน่วยอะตอม
  • ความยาวสตริงไม่รวมอยู่ในมิติเทนเซอร์
  • เมื่อใช้ Python เพื่อสร้างสตริง การจัดการ Unicode จะเปลี่ยนไประหว่าง v2 และ v3 ในเวอร์ชัน 2 สตริง Unicode จะแสดงด้วย "u" นำหน้า
  • ใน v3 สตริงจะถูกเข้ารหัสแบบยูนิโค้ดโดยค่าเริ่มต้น
  • มีสองวิธีมาตรฐานในการแสดงสตริง Unicode ใน TensorFlow:
  • สเกลาร์สตริง:ลำดับของจุดโค้ดจะถูกเข้ารหัสด้วยการเข้ารหัสอักขระที่รู้จัก
  • int32 vector:วิธีการที่ทุกตำแหน่งมีจุดโค้ดเดียว