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

วิธีใช้ TensorFlow Text แยกสตริงเป็นตัวอักษรด้วย unicode_split() ใน Python


TensorFlow Text สามารถใช้แยกสตริงเป็นตัวอักษรด้วยเมธอด unicode_split โดยการ Encode สตริงที่แยกก่อน แล้ว Assign Function Call ให้ตัวแปร ตัวแปรนี้เก็บผลลัพธ์ของ Function Call

อ่านเพิ่มเติม: TensorFlow คืออะไร และ Keras ทำงานกับ TensorFlow อย่างไรในการสร้าง Neural Networks?

เราจะใช้ Keras Sequential API ซึ่งช่วยสร้าง Sequential Model ที่ใช้ทำงานกับ Stack ของ Layers แบบธรรมดา โดยแต่ละ Layer มี Input Tensor และ Output Tensor อย่างละหนึ่งตัว

Neural Network ที่มีอย่างน้อยหนึ่ง Layer ที่เป็น Convolutional Layer เรียกว่า Convolutional Neural Network เราสามารถใช้ CNN สร้าง Learning Model ได้

TensorFlow Text มีชุดคลาสและ Ops ที่เกี่ยวข้องกับข้อความ ใช้ร่วมกับ TensorFlow 2.0 ได้ TensorFlow Text ใช้สำหรับ Preprocess Sequence Modelling

เราใช้ Google Colaboratory รันโค้ดด้านล่าง Google Colab ช่วยรัน Python Code บน Browser ไม่ต้อง Config และเข้าถึง GPU ฟรี Colab สร้างบน Jupyter Notebook

Tokenization คือวิธีแยกสตริงเป็น Tokens Tokens อาจเป็น คำ, ตัวเลข, หรือ Punctuation

Interface สำคัญคือ Tokenizer และ TokenizerWithOffsets แต่ละอันมีเมธอดเดียวคือ tokenize และ tokenize_with_offsets ตามลำดับ มี Tokenizers หลายตัว แต่ละตัว Implement TokenizerWithOffsets (ซึ่ง Extends Tokenizer Class) รวมถึงตัวเลือกได้ Byte Offsets เข้าสู่สตริงต้นฉบับ ช่วยรู้ว่า Byte ไหนในสตริงต้นฉบับที่ Token ถูกสร้างขึ้น

ตัวอย่าง

print("The encoded characters are split")
tokens = tf.strings.unicode_split([u"仅今年前".encode('UTF-8')], 'UTF-8')
print("The tokenized data is converted to a list")
print(tokens.to_list())

Code credit − https://www.tensorflow.org/tutorials/tensorflow_text/intro

ผลลัพธ์

The encoded characters are split
The tokenized data is converted to a list
[[b'\xe4\xbb\x85', b'\xe4\xbb\x8a', b'\xe5\xb9\xb4', b'\xe5\x89\x8d']]

คำอธิบาย

  • Tokenizer ทุกตัวคืนค่า RaggedTensors ที่มิติในสุดของ Tokens ถูก Map ไปยังสตริงเดี่ยวต้นฉบับ

  • Rank ของ Shape ที่ได้เพิ่มขึ้น 1

  • เมื่อ Tokenize ภาษาที่ไม่ใช้ Whitespace แยกคำ มักจะแยกเป็นตัวอักษร

  • ทำได้ด้วย Unicode Split Op ที่อยู่ใน TensorFlow Core

  • เมื่อ Unicode Split ถูกเรียก Tokenized Data จะถูกเพิ่มเข้า List