ฉันจะวัดความคล้ายคลึงของคำได้อย่างไร


20

วิธีที่ดีที่สุดในการค้นหาความคล้ายคลึงกันทางความหมายของคำคืออะไร Word2Vec ไม่เป็นไร แต่ไม่เหมาะ:

# Using the 840B word Common Crawl GloVe vectors with gensim:

# 'hot' is closer to 'cold' than 'warm'
In [7]: model.similarity('hot', 'cold')
Out[7]: 0.59720456121072973

In [8]: model.similarity('hot', 'warm')
Out[8]: 0.56784095376659627

# Cold is much closer to 'hot' than 'popular'
In [9]: model.similarity('hot', 'popular')
Out[9]: 0.33708479049537632

วิธี Wordnet ของ NLTK นั้นดูเหมือนว่าจะยอมแพ้:

In [25]: print wn.synset('hot.a.01').path_similarity(wn.synset('warm.a.01'))
None

ตัวเลือกอื่น ๆ มีอะไรบ้าง


1
คุณบอกได้ไหมว่าทำไม word2vec จึงไม่เหมาะ Word2vec ถูกออกแบบมาเพื่อจับความหมายของคำที่มีความคล้ายคลึงกันดังนั้นทำไมจึงไม่เหมาะ
SHASHANK GUPTA

3
ใช่นั่นคือเหตุผลที่ฉันให้ตัวอย่างในคำถาม หากต้องการย้ำ: 'ร้อน' และ 'เย็น' เป็นคำตรงข้าม แต่จะคล้ายกันมากขึ้น (ตาม word2vec) มากกว่า 'ร้อน' และ 'อบอุ่น' ซึ่งใกล้เคียงกับคำพ้องมาก 'ร้อน' อาจหมายถึง 'ยอดนิยม' (เช่น "สินค้ายอดนิยม") แต่อีกครั้ง "ร้อน" และ "เย็น" อยู่ใกล้กันมากกว่า "ร้อนแรงและ" ได้รับความนิยม "ดังนั้น word2vec จึงไม่เหมาะเพราะให้คะแนนคำตรงข้าม (ซึ่งตรงข้ามความหมาย) ที่คล้ายกันมากกว่าคำพ้องความหมาย (ซึ่งเทียบเท่าความหมาย)
โทมัสจอห์นสัน

คำตอบ:


11

Word2vec ไม่ได้จับความคล้ายคลึงกันตาม antonyms และคำพ้องความหมาย Word2vec จะให้ความคล้ายคลึงกันมากขึ้นหากทั้งสองคำมีบริบทที่คล้ายกัน เช่นสภาพอากาศในแคลิฟอร์เนียคือ _____ ช่องว่างสามารถเติมได้ทั้งร้อนและเย็นดังนั้นความคล้ายคลึงจะสูงขึ้น แนวคิดนี้เรียกว่าความสัมพันธ์แบบกระบวนทัศน์

หากคุณสนใจที่จะจับความสัมพันธ์เช่น hypernyms, hyponyms, antonyms, antonym คุณจะต้องใช้การวัดความคล้ายคลึงกันของ wordnet ใด ๆ มีมาตรการความคล้ายคลึงกันจำนวนมากขึ้นอยู่กับ wordnet คุณสามารถตรวจสอบลิงค์นี้ได้ที่http://ws4jdemo.appspot.com/


7

ในเครื่องมือวิเคราะห์ข้อความสำหรับ Semantic คล้ายคลึงกันพวกเขาพัฒนาอัลกอริทึมเพื่อค้นหาความคล้ายคลึงกันระหว่าง 2 ประโยค แต่ถ้าคุณอ่านอย่างใกล้ชิดพวกเขาพบความคล้ายคลึงกันของคำในเมทริกซ์และผลรวมเข้าด้วยกันเพื่อค้นหาความคล้ายคลึงกันระหว่างประโยค ดังนั้นอาจเป็นช็อตเพื่อตรวจสอบความคล้ายคลึงกันของคำ

นอกจากนี้ในSimLex-999: การประเมินแบบจำลองความหมายด้วยการประมาณความคล้ายคลึงกัน (ของแท้)พวกเขาอธิบายความแตกต่างระหว่างassociationและsimilarityซึ่งอาจเป็นเหตุผลสำหรับการสังเกตของคุณเช่นกัน ตัวอย่างเช่นกาแฟและถ้วย พวกมันไม่เหมือนกัน แต่พวกมันเชื่อมโยงกัน ดังนั้นเมื่อพิจารณาถึงความคล้ายคลึงกันจะให้ผลลัพธ์ที่แตกต่าง ผู้เขียนแนะนำแบบจำลองต่างๆเพื่อประมาณค่า


ลิงก์เสีย "เครื่องมือวิเคราะห์ข้อความเพื่อความคล้ายคลึงกันทางความหมาย"
xtian

2

Word2vec เป็นจุดเริ่มต้นที่ดีสำหรับสถานการณ์ส่วนใหญ่ มันไม่ความหมายโดยวิธีการจับภาพของการทำนายโดยใช้วิธีการ CBOW มันช่วยให้การแปล (เป็นตัวอย่างซ้ำที่สุดที่ฉันสามารถใส่ที่นี่อีกครั้ง), V (ราชา) - V (ราชินี) ~~ V (ชาย) - V (หญิง) และอื่น ๆ

แล้วปัญหาคืออะไร ปัญหาอยู่ในความรู้สึกคลุมเครือของคำ เมื่อใดก็ตามที่คำนั้นมีความหมายที่แตกต่างกันสองอย่างในบริบทที่ต่างกันสองคำเวกเตอร์จะมีแนวโน้มที่จะห่างจากบริบทใด Python ~ Boa (ทั้งงู) และ Python - Java (ทั้งภาษาโปรแกรม) ..

ทางเลือกใด ๆ

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

Wordnet ถูกสร้างขึ้นเป็นพจนานุกรมเป็นส่วนใหญ่ซึ่ง word2vec ถูกขุดโดยการใช้งาน


0

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.