मैं शब्दों की शब्दार्थ समानता का माप कैसे प्राप्त कर सकता हूं?


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

NLTK के वर्डनेट तरीके सिर्फ देने के लिए दिखाई देते हैं:

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

अन्य विकल्प क्या हैं?


1
क्या आप बता सकते हैं कि word2vec आदर्श क्यों नहीं है? Word2vec को शब्दों की शब्दार्थ समानता को पकड़ने के लिए डिज़ाइन किया गया है, फिर यह आदर्श क्यों नहीं है?
शशांक गुप्ता

3
हां, इसीलिए मैंने प्रश्न में उदाहरण दिए हैं। पुनरावृत्ति करने के लिए: 'हॉट' और 'कोल्ड' समानार्थक शब्द हैं, लेकिन वे 'हॉट' और 'वार्म' की तुलना में अधिक मिलते-जुलते हैं (वर्ड 2 वीवीसी के अनुसार) जो पर्यायवाची शब्द के अधिक निकट हैं। 'हॉट' का मतलब 'लोकप्रिय' भी हो सकता है (उदाहरण के लिए, एक "हॉट आइटम") लेकिन फिर से "हॉट" और "कोल्ड" एक दूसरे के करीब "हॉट और" लोकप्रिय "होते हैं। इसलिए शब्द2vec आदर्श नहीं है क्योंकि यह एंटोनियों को स्कोर करता है। (जो शब्दार्थ विपरीत हैं) समानार्थी शब्द से अधिक समान (जो शब्दार्थ के समतुल्य हैं)।
थॉमस जॉनसन

जवाबों:


11

Word2vec समानार्थक शब्द और समानार्थक शब्द के आधार पर समानता पर कब्जा नहीं करता है। Word2vec दो शब्दों के समान संदर्भ होने पर एक उच्च समानता देगा। उदा कैलिफोर्निया में मौसम _____ था। खाली को गर्म और ठंडे दोनों से भरा जा सकता है इसलिए समानता अधिक होगी। इस अवधारणा को प्रतिमान संबंध कहा जाता है।

यदि आप हाइपरनीम्स, सम्मोहन, पर्यायवाची शब्द, एंटोनियम जैसे संबंधों को पकड़ने के इच्छुक हैं, तो आपको किसी भी शब्द आधारित समानता उपाय का उपयोग करना होगा। वर्डनेट पर आधारित कई समानता उपाय हैं। आप इस लिंक की जाँच कर सकते हैं http://ws4jdemo.appspot.com/


7

में अर्थ समानता के लिए पाठ विश्लेषणात्मक उपकरण , वे आदेश 2 वाक्य के बीच समानता खोजने के लिए एक एल्गोरिथ्म विकसित की है। लेकिन अगर आप बारीकी से पढ़ते हैं, तो वे एक मैट्रिक्स में शब्द की समानता और वाक्यों के बीच समानता का पता लगाने के लिए एक साथ योग करते हैं। तो, यह शब्द समानता की जांच करने के लिए एक शॉट हो सकता है।

इसके अलावा SimLex-999 में: अर्थ मॉडल का मूल्यांकन (वास्तविक) समानता अनुमान के साथ , वे बीच का अंतर बताते हैं associationऔर similarityजो संभवतः आपके अवलोकन का कारण भी है। उदाहरण के लिए, कॉफी और एक कप। वे समान नहीं हैं, लेकिन वे साहचर्य हैं। तो सिर्फ समानता पर विचार करना एक अलग परिणाम देगा। लेखक उन्हें अनुमान लगाने के लिए विभिन्न मॉडलों का सुझाव देते हैं।


टूटी हुई कड़ी, "पाठ समानता के लिए विश्लेषणात्मक उपकरण"।
xtian

2

Word2vec अधिकांश परिदृश्यों के लिए एक अच्छा प्रारंभिक बिंदु है। यह सीबीओवी पद्धति का उपयोग करके भविष्यवाणी के माध्यम से शब्दार्थ पर कब्जा करता है । यह अनुवादों की अनुमति देता है (सबसे दोहराया उदाहरण के रूप में मैं यहां फिर से डाल सकता हूं), वी (राजा) - वी (रानी) ~~ वी (पुरुष) - वी (महिला) और इतने पर।

तो समस्या क्या है? मुद्दा शब्द अर्थ अस्पष्टता में निहित है। जब भी शब्द का दो अलग अर्थों में दो अलग-अलग अर्थ होता है, शब्द वेक्टर वास्तव में किसी भी संदर्भ से दूर होगा। अजगर ~ बोआ (दोनों सांप) और अजगर - जावा (दोनों प्रोग्रामिंग भाषा) ।।

कोई विकल्प?

यदि आप चाहते हैं कि वर्डनेट आदर्श स्थान हो तो "पर्यायवाची" के बहुत विशिष्ट उद्देश्य के लिए । यह उपयोग और घटनाओं के आधार पर निहित संबंध के बजाय दो शब्दों के स्पष्ट संबंध को पकड़ता है।

वर्डनेट को ज्यादातर एक शब्दकोश के रूप में तैयार किया जाता है - जहां शब्द 2vec का उपयोग किया जाता है।


0

एक संदर्भ मुक्त व्याकरण में, मुझे लगता है कि शब्दों की निकटता निर्धारित करना वास्तव में असंभव है। आप जो कर सकते हैं वह लेक्सिकॉन वैक्टर का उपयोग करना है और फिर यदि कोई शब्द दो लेक्सिकॉन के बीच के मानों के करीब है तो मान बंद होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.