2011-09-13 27 views
5

nltk.corpus.wordnet में समानता फ़ंक्शन दो शब्दों की समानता खोजने के लिए उपयुक्त है?nltk.corpus.wordnet का समानता फ़ंक्शन दो शब्दों की समानता खोजने के लिए उपयुक्त है?

path_similarity()? 
    lch_similarity()? 
    wup_similarity()? 
    res_similarity()? 
    jcn_similarity()? 
    lin_similarity()? 

मैं word clustering और yarowsky algorightm के लिए एक समारोह का उपयोग एक बड़े पाठ में इसी तरह के collocation को खोजने के लिए चाहते हैं।

उत्तर

7

ये उपाय वास्तव में शब्द इंद्रियों (या अवधारणाओं) शब्दों के लिए नहीं हैं। वह भेद महत्वपूर्ण हो सकता है। दूसरे शब्दों में, "ट्रेन" शब्द का मतलब "लोकोमोटिव" या "कुछ करने के लिए सिखाया जा रहा है"। इन उपायों का उपयोग करने के लिए आपको यह जानना होगा कि किस भावना का इरादा था।

आप शब्द क्लस्टरिंग क्या करना चाहते हैं, तो इन उपायों नहीं वास्तव में हो सकता है कि आप क्या चाहते ...

3

मैं कुछ ग्रंथों से मेल करने की कोशिश कर के प्रयोजनों के लिए साथ NLTK/Wordnet अपने आप खेल रहे हैं किया गया है कुछ स्वचालित तरीके से। टेड पेडरसन के उत्तर नोट्स के रूप में, यह बहुत जल्दी स्पष्ट हो जाता है कि nltk.corpus.wordnet में समानता कार्य केवल ठोस आईएस-ए वंशावली के साथ निकटता से संबंधित शर्तों के लिए गैर-शून्य समानताएं उत्पन्न करता है।

क्या मैं कर मेरी ग्रंथों में शब्दावली ले रहा था, और उसके बाद lemma-> synset-> lemmas और lemma-> similar_tos अपने ही शब्द लिंकेज ग्राफ (graph_tool इस के लिए बढ़िया) विकसित करने के लिए उपयोग कर रहा है और फिर minimum number of hops गिनती समाप्त हो गया उनके बीच कुछ प्रकार (समानता) समानता माप प्राप्त करने के लिए 2 शब्दों को जोड़ने की आवश्यकता है (इन्हें प्रिंट करने के लिए काफी मनोरंजक; एक बहुत ही विचित्र शब्द-एसोसिएशन गेम देखना)। यह वास्तव में मेरे उद्देश्यों के लिए पर्याप्त रूप से पर्याप्त काम करता था, बिना पीओएस/खाते को समझने के प्रयास किए।