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

จะใช้ข้อความ Tensorflow เพื่อแยกสตริงตามอักขระโดยใช้ unicode_split () ใน Python ได้อย่างไร


ข้อความ Tensorflow สามารถใช้เพื่อแยกสตริงตามอักขระโดยใช้วิธี 'unicode_split' โดยการเข้ารหัสสตริงที่แยกก่อนแล้วจึงกำหนดฟังก์ชันเรียกใช้ให้กับตัวแปร ตัวแปรนี้เก็บผลลัพธ์ของการเรียกใช้ฟังก์ชัน

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

เราจะใช้ Keras Sequential API ซึ่งมีประโยชน์ในการสร้างแบบจำลองตามลำดับที่ใช้ในการทำงานกับสแต็กเลเยอร์ธรรมดา โดยที่ทุกเลเยอร์มีอินพุตเทนเซอร์หนึ่งตัวและเอาต์พุตเทนเซอร์หนึ่งรายการ

โครงข่ายประสาทเทียมที่มีอย่างน้อยหนึ่งชั้นเรียกว่าชั้น Convolutional เราสามารถใช้ Convolutional Neural Network เพื่อสร้างแบบจำลองการเรียนรู้

TensorFlow Text มีคอลเลกชั่นของคลาสที่เกี่ยวข้องกับข้อความและ ops ที่สามารถใช้ได้กับ TensorFlow 2.0 สามารถใช้ข้อความ TensorFlow เพื่อประมวลผลการสร้างแบบจำลองลำดับล่วงหน้าได้

เรากำลังใช้ Google Colaboratory เพื่อเรียกใช้โค้ดด้านล่าง Google Colab หรือ Colaboratory ช่วยเรียกใช้โค้ด Python บนเบราว์เซอร์และไม่ต้องมีการกำหนดค่าใดๆ และเข้าถึง GPU ได้ฟรี (หน่วยประมวลผลกราฟิก) Colaboratory สร้างขึ้นบน Jupyter Notebook

Tokenization เป็นวิธีการแยกสตริงออกเป็นโทเค็น โทเค็นเหล่านี้อาจเป็นคำ ตัวเลข หรือเครื่องหมายวรรคตอน

อินเทอร์เฟซที่สำคัญ ได้แก่ Tokenizer และ TokenizerWithOffsets ซึ่งแต่ละวิธีมี tokenize วิธีเดียวและ tokenize_with_offsets ตามลำดับ มี tokenizers หลายตัว ซึ่งแต่ละอันใช้ TokenizerWithOffsets (ซึ่งขยายคลาส Tokenizer) ซึ่งรวมถึงตัวเลือกในการรับการชดเชยไบต์ลงในสตริงดั้งเดิม ซึ่งจะช่วยให้ทราบไบต์ในสตริงเดิมที่สร้างโทเค็น

ตัวอย่าง

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())

เครดิตโค้ด −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']]

คำอธิบาย

  • โทเค็นไลเซอร์ทั้งหมดส่งคืน RaggedTensors ด้วยมิติภายในสุดของโทเค็นที่แมปกับสตริงแต่ละรายการดั้งเดิม

  • อันดับของรูปร่างที่ได้จะเพิ่มขึ้นหนึ่งส่วน

  • เมื่อสร้างโทเค็นของภาษาโดยไม่ใช้ช่องว่างเพื่อแบ่งกลุ่มคำ เป็นเรื่องปกติที่จะแยกตามอักขระ

  • ซึ่งสามารถทำได้โดยใช้ unicode_split op ที่พบใน Tensorflow core

  • เมื่อเรียกใช้ unicode_split แล้ว ข้อมูลโทเค็นจะถูกเพิ่มลงในรายการ