วิธีสร้างการฝังจากรายการประโยคภาษาอังกฤษ

Withi Srang Kar Fang Cak Raykar Prayokh Phas A Xangkvs



คุณเคยคิดไหมว่าเมื่อเราสื่อสารกับเครื่องของเรา (คอมพิวเตอร์) และให้คำแนะนำในการทำงานบางอย่างแก่เรา เช่น การค้นหาเฉพาะหรือแปลจากภาษาหนึ่งเป็นอีกภาษาหนึ่ง คอมพิวเตอร์จะเข้าใจและประมวลผลสิ่งนี้ได้อย่างไร ทั้งหมดนี้ทำผ่านฟิลด์ย่อยปัญญาประดิษฐ์ของการประมวลผลภาษาธรรมชาติ คอมพิวเตอร์เข้าใจค่าตัวเลขและเทคนิค 'การฝังคำ' ของ NLP จะแปลงคำและข้อความที่เราป้อนให้กับคอมพิวเตอร์เป็นเวกเตอร์ตัวเลขนั้นเพื่อให้คอมพิวเตอร์สามารถจดจำได้ กระบวนการอื่น ๆ ของ NLP เกิดขึ้นนอกเหนือจากการโต้ตอบระหว่างมนุษย์กับคอมพิวเตอร์ผ่านแบบจำลองภาษา แต่เราจะกล่าวถึงรายละเอียดการฝังคำในคู่มือนี้

ไวยากรณ์:

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

อัลกอริทึม “word2vec” เป็นโมเดลโครงข่ายประสาทเทียมซึ่งได้รับการฝึกฝนในลักษณะที่จะเรียนรู้การฝังคำโดยการคาดเดาบริบทของคำที่ปรากฏก่อน โมเดลนี้ใช้ข้อความเป็นอินพุต จากนั้น สำหรับแต่ละคำในข้อความ การสร้างการแสดงเวกเตอร์สำหรับคำนั้น แบบจำลองนี้มีพื้นฐานมาจากแนวคิดที่ว่าคำที่ดูเหมือนจะมีบริบทเดียวกันมีความหมายเหมือนกัน ไวยากรณ์สำหรับ “word2vec” เป็นดังนี้:







$ Word2Vec (ประโยค min_count)

อัลกอริทึมนี้มีพารามิเตอร์สองตัวคือ 'sentences' และ 'minimum_count' ประโยคคือตัวแปรที่เก็บรายการประโยคหรือข้อความในรูปของประโยค และตัว maximum_count พูดถึงค่านับ 1 ซึ่งหมายความว่าคำใดในข้อความที่ปรากฏน้อยกว่าหนึ่งจะต้องถูกละเว้น .



ตัวอย่างที่ 1:

ในตัวอย่างนี้ เราสร้างการฝังคำสำหรับคำที่มีอยู่ในรายการประโยคภาษาอังกฤษ ในการสร้างคำว่า 'embedding' เราจำเป็นต้องใช้โมเดล 'word2vec' โมเดลนี้เป็นแพ็คเกจของไลบรารี 'gensim' ของ Python เราจำเป็นต้องติดตั้ง Gensim ในที่เก็บไลบรารี Python เพื่อทำงานกับ “word2vec”



ในการนำตัวอย่างนี้ไปใช้ เราจะทำงานกับคอมไพเลอร์ Python ออนไลน์ของ “google colab” ในการติดตั้ง gensim ให้ใช้คำสั่ง “pip install gensim” สิ่งนี้จะเริ่มดาวน์โหลดไลบรารีนี้พร้อมแพ็คเกจที่เกี่ยวข้องทั้งหมด เมื่อติดตั้งแล้ว ให้นำเข้าแพ็คเกจ “word2vector” จาก gensim





ในการฝึกโมเดล “word2vec” นี้ เราจำเป็นต้องสร้างชุดข้อมูลการฝึก ด้วยเหตุนี้ เราจึงสร้างรายการประโยคที่มีประโยคภาษาอังกฤษสี่ถึงห้าประโยค เราบันทึกรายการนี้ในตัวแปร “training_data”

ขั้นตอนต่อไปของเราหลังจากสร้างชุดข้อมูลการฝึกคือฝึกโมเดล “word2vec” กับข้อมูลนี้ ดังนั้นเราจึงเรียกรุ่น เราให้ข้อมูลการฝึกอบรมในพารามิเตอร์อินพุตของโมเดลนี้ ซึ่งเราบันทึกไว้ในตัวแปร 'อินพุต' จากนั้น เราระบุพารามิเตอร์ที่สองซึ่งเป็น “minimum_count” เรากำหนดค่าของมันเท่ากับ '1' เอาต์พุตจากโมเดลการฝึกนี้จะถูกบันทึกในตัวแปร “trained_model”



เมื่อเราฝึกโมเดลเสร็จแล้ว เราก็สามารถเข้าถึงโมเดลได้โดยง่ายด้วยคำนำหน้า 'wv' ซึ่งเป็นคำว่า vector model เราอาจเข้าถึงคำศัพท์ของโทเค็นของเราและสามารถพิมพ์ได้ด้วยวิธีการดังนี้

vocabof_tokens = รายการ (model.wv.vocab)

แบบจำลองนี้แสดงถึงแบบจำลองที่ได้รับการฝึกฝนในกรณีของเรา ตอนนี้ เราเข้าถึงการแสดงเวกเตอร์ของคำหนึ่งคำในรายการประโยคซึ่งในกรณีของเราคือ 'แอปเปิ้ล' เราทำได้โดยการเรียกโมเดลที่ผ่านการฝึกอบรม เราส่งคำที่เราต้องการพิมพ์แทนเวกเตอร์เป็น 'แบบจำลอง' wv ['apple']” ไปยังอาร์กิวเมนต์อินพุต จากนั้นเราพิมพ์ผลลัพธ์ด้วยฟังก์ชัน 'พิมพ์'

จาก ในฐานะประเทศชาติ โมเดล นำเข้า เวิร์ดทูเวค

การฝึกอบรม_ข้อมูล = [ [ 'แอปเปิล' , 'เป็น' , 'เดอะ' , 'หวาน' , 'แอปเปิล' , 'สำหรับ' , 'เวิร์ดทูเวค' ] ,
[ 'นี้' , 'เป็น' , 'เดอะ' , 'ที่สอง' , 'แอปเปิล' ] ,
[ 'ที่นี่' , 'อื่น' , 'แอปเปิล' ] ,
[ 'หนึ่ง' , 'หวาน' , 'แอปเปิล' ] ,
[ 'และ' , 'มากกว่า' , 'หวาน' , 'แอปเปิล' ] ]

แบบอย่าง = เวิร์ดทูเวค ( การฝึกอบรม_ข้อมูล , min_count = 1 )
พิมพ์ ( แบบอย่าง )
vocabof_tokens = รายการ ( แบบอย่าง. . index_to_key )
พิมพ์ ( vocabof_tokens )
พิมพ์ ( แบบอย่าง. [ 'แอปเปิล' ] )

จากเอาต์พุตและโค้ดที่กล่าวถึงก่อนหน้านี้ คำที่ฝังสำหรับคำว่า “apple” จะแสดงขึ้น ในตัวอย่าง ขั้นแรก เราสร้างชุดข้อมูลการฝึกอบรม จากนั้นเราฝึกแบบจำลองและสรุปแบบจำลอง จากนั้น เราใช้แบบจำลองเพื่อเข้าถึงคำศัพท์โทเค็นของคำศัพท์ต่างๆ หลังจากนั้น เราแสดงคำที่ฝังสำหรับคำว่า “apple”

ตัวอย่างที่ 2:

ใช้ไลบรารี gensim มาสร้างรายการประโยคอื่นกัน ฝึกโมเดลของเราสำหรับแต่ละคำในประโยคเพื่อสร้างการฝังคำโดยใช้โมเดล “word2vec” อย่างแรก จากแพ็คเกจไลบรารี gensim โมเดล “word2vec” จะถูกนำเข้า จากนั้นเราก็สร้างชุดข้อมูลขึ้นมาอีกชุดหนึ่งซึ่งจะเป็นรายการที่มี 2 ประโยคอยู่ในนั้น แต่ละประโยคในรายการมีสี่คำ

ตอนนี้ เราบันทึกรายการนี้ในตัวแปร 'ข้อมูล' จากนั้น เราเรียกโมเดล “word2vec()” และป้อนข้อมูลไปยังอาร์กิวเมนต์ของโมเดลนี้ด้วยค่า maximum_count ซึ่งเท่ากับ “1” นี่คือวิธีที่เราฝึกโมเดลของเรา ตอนนี้สามารถและสามารถเรียนรู้การฝังคำของคำที่มีอยู่ในประโยคที่มีอยู่ในรายการโดยการคาดเดาบริบทที่มีอยู่ ในการทดสอบผลลัพธ์ของโมเดล เราเพียงแค่ส่งคำว่า “dog” ในข้อมูลของเราไปยังโมเดล จากนั้นพิมพ์ผลลัพธ์โดยใช้ฟังก์ชัน “print()”

จาก ในฐานะประเทศชาติ โมเดล นำเข้า เวิร์ดทูเวค
ข้อมูล = [ [ 'กระต่าย' , 'มี' , 'ฟัน' ] , [ 'สุนัข' , 'มี' , 'หู' ] ]
แบบอย่าง = เวิร์ดทูเวค ( ข้อมูล , min_count = 1 )
พิมพ์ ( แบบอย่าง. [ 'สุนัข' ] )

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

บทสรุป

คู่มือนี้สาธิตวิธีการสร้างการฝังคำสำหรับคำที่มีอยู่ในรายการประโยคภาษาอังกฤษ เราได้เรียนรู้เกี่ยวกับไลบรารี “gensim” ของ Python ที่มีโมเดล “word2vec” เพื่อสร้างการฝังคำ นอกจากนี้ เราได้เรียนรู้เกี่ยวกับพารามิเตอร์อินพุต วิธีฝึกโมเดล “word2vec” บนข้อมูลการฝึก และวิธีนำเสนอคำในการแสดงเวกเตอร์