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

Tensorflow สามารถใช้แปลงคำโทเค็นจากชุดข้อมูล Illiad เป็นจำนวนเต็มโดยใช้ Python ได้อย่างไร


Tensorflow คือเฟรมเวิร์กแมชชีนเลิร์นนิงที่ให้บริการโดย Google เป็นเฟรมเวิร์กโอเพนซอร์สที่ใช้ร่วมกับ Python เพื่อใช้อัลกอริทึม แอปพลิเคชันการเรียนรู้เชิงลึก และอื่นๆ อีกมากมาย ใช้ในการวิจัยและเพื่อการผลิต

แพ็คเกจ 'tensorflow' สามารถติดตั้งบน Windows ได้โดยใช้บรรทัดโค้ดด้านล่าง -

pip install tensorflow

Tensor เป็นโครงสร้างข้อมูลที่ใช้ใน TensorFlow ช่วยเชื่อมต่อขอบในแผนภาพการไหล แผนภาพการไหลนี้เรียกว่า 'กราฟการไหลของข้อมูล' เทนเซอร์เป็นเพียงอาร์เรย์หลายมิติหรือรายการ

พวกเขาสามารถระบุได้โดยใช้สามคุณลักษณะหลัก -

  • อันดับ − มันบอกเกี่ยวกับมิติของเทนเซอร์ สามารถเข้าใจได้ว่าเป็นลำดับของเทนเซอร์หรือจำนวนมิติในเทนเซอร์ที่กำหนดไว้

  • ประเภท − มันบอกเกี่ยวกับประเภทข้อมูลที่เกี่ยวข้องกับองค์ประกอบของเทนเซอร์ อาจเป็นเทนเซอร์แบบหนึ่งมิติ สองมิติ หรือ n มิติก็ได้

  • รูปร่าง − เป็นจำนวนแถวและคอลัมน์รวมกัน

เราจะใช้ชุดข้อมูลของ Illiad ซึ่งมีข้อมูลข้อความของงานแปลสามงานจาก William Cowper, Edward (Earl of Derby) และ Samuel Butler โมเดลนี้ได้รับการฝึกฝนเพื่อระบุตัวแปลเมื่อมีการให้ข้อความบรรทัดเดียว ไฟล์ข้อความที่ใช้ได้รับการประมวลผลล่วงหน้า ซึ่งรวมถึงการนำส่วนหัวและส่วนท้ายของเอกสาร หมายเลขบรรทัด และชื่อบทออก

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

ตัวอย่าง

ต่อไปนี้เป็นข้อมูลโค้ด -

keys = vocab
values = range(2, len(vocab) + 2) # reserve 0 for padding, 1 for OOV
print("Map the tokens to integers")
init = tf.lookup.KeyValueTensorInitializer(
   keys, values, key_dtype=tf.string, value_dtype=tf.int64)
num_oov_buckets = 1
vocab_table = tf.lookup.StaticVocabularyTable(init, num_oov_buckets)
print("A function has been defined to standardize, tokenize and vectorize the dataset using
tokenizer and lookup table")
def preprocess_text(text, label):
   standardized = tf_text.case_fold_utf8(text)
   tokenized = tokenizer.tokenize(standardized)
   vectorized = vocab_table.lookup(tokenized)
   return vectorized, label

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

ผลลัพธ์

Map the tokens to integers
A function has been defined to standardize, tokenize and vectorize the dataset using tokenizer
and lookup table

คำอธิบาย

  • ชุดคำศัพท์ใช้เพื่อสร้าง StaticVocabularyTable

  • โทเค็นถูกจับคู่กับจำนวนเต็มภายในช่วง [2, vocab_size + 2]

  • ตัวเลข 0 ใช้เพื่อระบุช่องว่างภายใน และ 1 ใช้เพื่อระบุโทเค็นที่ไม่อยู่ในคำศัพท์ (OOV)