ก่อนอื่นเราขอแนะนำให้คุณอ้างอิงคำถามที่คล้ายกันในเครือข่ายเช่น/datascience/25053/best-practical-algorithm-for-sentence-similarityและhttps: // stackoverflow co.th / คำถาม / 62328 / is-มี-ใช้อัลกอริทึมที่-บอก-the-ความหมายคล้ายคลึงกันของสองวลี
เพื่อกำหนดความคล้ายคลึงกันของประโยคเราต้องพิจารณาว่าเรามีข้อมูลประเภทใด ตัวอย่างเช่นถ้าคุณมีชุดข้อมูลที่มีป้ายกำกับนั่นคือประโยคที่คล้ายกันและประโยคที่ไม่เหมือนกันดังนั้นวิธีการส่งต่อโดยตรงอาจใช้วิธีอัลกอริทึมที่มีการตรวจสอบเพื่อจำแนกประโยค
วิธีการที่สามารถกำหนดความคล้ายคลึงกันของโครงสร้างประโยคคือการหาค่าเฉลี่ยของเวกเตอร์คำที่สร้างโดยอัลกอริธึมการฝังคำเช่น word2vec อัลกอริทึมเหล่านี้สร้างเวกเตอร์สำหรับแต่ละคำและความคล้ายคลึงกันในหมู่พวกเขาแสดงถึงความคล้ายคลึงกันทางความหมายในหมู่คำ (Daniel L 2017)
การใช้คำว่าเวคเตอร์เราสามารถใช้เมทริกต่อไปนี้เพื่อกำหนดความคล้ายคลึงกันของคำ
- ระยะทางโคไซน์ระหว่างคำว่า embeddings ของคำ
- ระยะทางแบบยุคลิดระหว่างคำว่า embeddings ของคำ
ความคล้ายคลึงโคไซน์เป็นการวัดความคล้ายคลึงกันระหว่างเวกเตอร์ที่ไม่เป็นศูนย์สองตัวของพื้นที่ผลิตภัณฑ์ภายในที่วัดค่าโคไซน์ของมุมระหว่างพวกมัน มุมโคไซน์คือการวัดการทับซ้อนระหว่างประโยคในแง่ของเนื้อหา
ระยะทางแบบยุคลิดระหว่างเวกเตอร์คำสองคำนั้นเป็นวิธีที่มีประสิทธิภาพสำหรับการวัดความคล้ายคลึงกันทางภาษาศาสตร์หรือความหมายของคำที่เกี่ยวข้อง (Frank D 2015)
อีกทางหนึ่งคุณสามารถคำนวณ eigenvector ของประโยคเพื่อกำหนดความคล้ายคลึงกันของประโยค
Eigenvectors เป็นชุดพิเศษของเวกเตอร์ที่เกี่ยวข้องกับระบบเชิงเส้นของสมการ (เช่นสมการเมทริกซ์) ที่นี่เมทริกซ์ความเหมือนประโยคถูกสร้างขึ้นสำหรับแต่ละคลัสเตอร์และ eigenvector สำหรับเมทริกซ์ถูกคำนวณ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับวิธีการจัดลำดับประโยคของ Eigenvector ในบทความนี้https://pdfs.semanticscholar.org/ca73/bbc99be157074d8aad17ca8535e2cd956815.pdf
สำหรับซอร์สโค้ด Siraj Rawal มีโน้ตบุ๊ก Python เพื่อสร้างชุดของ vector vectors คำว่าเวกเตอร์สามารถใช้เพื่อค้นหาความคล้ายคลึงกันระหว่างคำ ซอร์สโค้ดมีให้ที่นี่https://github.com/llSourcell/word_vectors_game_of_thrones-LIVE
อีกตัวเลือกหนึ่งคือบทช่วยสอนจาก Oreily ที่ใช้ไลบรารี Gensin Python เพื่อกำหนดความคล้ายคลึงกันระหว่างเอกสาร บทช่วยสอนนี้ใช้ NLTK เพื่อทำโทเค็นจากนั้นสร้างโมเดล tf-idf (ความถี่เอกสารคำผกผันความถี่ผกผัน) โมเดลจากคลังข้อมูล จากนั้น tf-idf จะถูกใช้เพื่อกำหนดความคล้ายคลึงกันของเอกสาร บทเรียนมีให้ที่นี่https://www.oreilly.com/learning/how-do-i-compare-document-similarity-using-python