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

จะใช้ Tensorflow และ Python เพื่อรับโค้ดพอยท์ของทุกคำในประโยคได้อย่างไร


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

ตัวระบุสคริปต์ช่วยกำหนดขอบเขตของคำและตำแหน่งที่ควรเพิ่ม ขอบเขตของคำจะถูกเพิ่มที่จุดเริ่มต้นของประโยคและสำหรับอักขระแต่ละตัวที่มีสคริปต์แตกต่างจากอักขระก่อนหน้า สามารถใช้ออฟเซ็ตเริ่มต้นเพื่อสร้าง RaggedTensor RaggedTensor นี้จะมีรายการคำจากแบทช์ทั้งหมด

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

ให้เราเข้าใจวิธีการแสดงสตริง Unicode โดยใช้ Python และจัดการกับสตริงที่ใช้ Unicode ที่เทียบเท่ากัน ขั้นแรก เราแยกสตริง Unicode เป็นโทเค็นตามการตรวจจับสคริปต์โดยใช้ Unicode ที่เทียบเท่ากับ ops สตริงมาตรฐาน

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

print("Check if sentence is the start of the word")
sentence_char_starts_word = tf.concat(
   [tf.fill([sentence_char_script.nrows(), 1], True),
    tf.not_equal(sentence_char_script[:, 1:], sentence_char_script[:, :-1])],
   axis=1)
print("Check if index of character starts from specific index of word in flattened list of characters from all sentences")
word_starts = tf.squeeze(tf.where(sentence_char_starts_word.values), axis=1)
print(word_starts)
print("Get the code point of every character in every word")
word_char_codepoint = tf.RaggedTensor.from_row_starts(
   values=sentence_char_codepoint.values,
   row_starts=word_starts)
print(word_char_codepoint)

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

ผลลัพธ์

Check if sentence is the start of the word
Check if index of character starts from specific index of word in flattened list of characters from all sentences
tf.Tensor([ 0   5   7 12 13 15], shape=(6,), dtype=int64)
Get the code point of every character in every word
<tf.RaggedTensor [[72, 101, 108, 108, 111], [44, 32], [116, 104, 101, 114, 101], [46], [19990, 30028], [12371, 12435, 12395, 12385, 12399]]>

คำอธิบาย

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