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

การแบ่งส่วนตามข้อมูลข้อความใน 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

print("Below is the sentence that is processed")
sentence_texts = [u'Hello, there.', u'世界こんにちは']
print("The code point values for characters in the sentence")
sentence_char_codepoint = tf.strings.unicode_decode(sentence_texts, 'UTF-8')
print(sentence_char_codepoint)
print("The unicode script values for characters in the sentence")
sentence_char_script = tf.strings.unicode_script(sentence_char_codepoint)
print(sentence_char_script)

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

ผลลัพธ์

Below is the sentence that is processed
The code point values for characters in the sentence

The unicode script values for characters in the sentence
<tf.RaggedTensor [[25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, 0], [17, 17, 20, 20, 20, 20, 20]]>

คำอธิบาย

  • Segmentation หมายถึงงานในการแบ่งข้อความออกเป็นหน่วยคำเหมือน
  • ใช้เมื่อใช้อักขระเว้นวรรคเพื่อแยกคำ แต่บางภาษา เช่น จีนและญี่ปุ่น ไม่ใช้การเว้นวรรค
  • บางภาษา เช่น เยอรมัน มีคำผสมยาวๆ ที่ต้องแยกออกเพื่อวิเคราะห์ความหมาย
  • สำหรับข้อความบนเว็บ มักใช้ภาษาและสคริปต์ต่างๆ ผสมกัน เช่น "NY株価" (ตลาดหลักทรัพย์นิวยอร์ก)
  • การแบ่งกลุ่มแบบคร่าวๆ สามารถทำได้โดยไม่ต้องใช้โมเดล ML โดยการเปลี่ยนสคริปต์เป็นขอบเขตคำโดยประมาณ
  • วิธีนี้ใช้ได้กับสตริง เช่น "NY株価" ใช้งานได้กับภาษาส่วนใหญ่ที่ใช้ช่องว่าง เนื่องจากอักขระช่องว่างของสคริปต์ต่างๆ จัดอยู่ในประเภท USCRIPT_COMMON ซึ่งเป็นโค้ดสคริปต์พิเศษที่แตกต่างจากข้อความจริง
  • ในโค้ดด้านบนนี้ จะมีการสร้างโค้ดพอยท์สำหรับทุกๆ อักขระในทุกประโยค
  • ถัดไป สคริปต์ Unicode ของทุกอักขระในทุกประโยคจะถูกสร้างขึ้น