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

วิธีใช้ TensorFlow Text แยกสตริง UTF-8 ใน Python


สตริง UTF-8 สามารถแยกได้โดยใช้ TensorFlow Text สามารถทำได้ด้วย UnicodeScriptTokenizer UnicodeScriptTokenizer คือ Tokenizer ที่ถูกสร้างขึ้น หลังจากนั้น เมธอด tokenize ใน UnicodeScriptTokenizer จะถูกเรียกบนสตริง

อ่านเพิ่มเติม: 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 ถูกสร้างขึ้น

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

ตัวอย่าง

print("Unicode script tokenizer is being called")
tokenizer = text.UnicodeScriptTokenizer()
tokens = tokenizer.tokenize(['everything not saved will be lost.', u'Sad☹'.encode('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

ผลลัพธ์

Unicode script tokenizer is being called
The tokenized data is converted to a list
[[b'everything', b'not', b'saved', b'will', b'be', b'lost', b'.'], [b'Sad', b'\xe2\x98\xb9']]

คำอธิบาย

  • Tokenizer แยกสตริง UTF-8 ตาม Unicode Script Boundaries

  • Script Codes ตรงกับค่า ICU UScriptCode ของ International Components for Unicode

  • คล้าย WhitespaceTokenizer แตะต่างตรงที่จะแยก Punctuation (USCRIPT_COMMON) จากภาษา รวมถึงแยกภาษาต่างๆ ออกจากกัน