2012-08-03 8 views
9

मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जिसके लिए मुझे समान कीवर्ड के सेट के साथ वाक्यांश या कीवर्ड से मेल खाना आवश्यक है। मुझे इसके लिए अर्थपूर्ण विश्लेषण करने की जरूरत है।समान एनएलपी उपकरण समान अर्थ या अर्थशास्त्र वाले वाक्यांशों से मेल खाने के लिए उपयोग करते हैं

एक उदाहरण:

प्रासंगिक क्यूटी
सस्ते स्वास्थ्य बीमा
सस्ती स्वास्थ्य बीमा
कम लागत कम
सस्ती स्वास्थ्य कवरेज

आम अर्थ के लिए चिकित्सा बीमा
स्वास्थ्य योजना

कम लागत वाले स्वास्थ्य बीमा

यहां सामान्य अर्थ कॉलम के तहत शब्द प्रासंगिक QT कॉलम के अंतर्गत मेल खाना चाहिए। मैंने ऐसा करने के लिए टूल और तकनीकों का एक गुच्छा देखा। एस-मैच बहुत ही आशाजनक लग रहा था, लेकिन मुझे जावा में नहीं, पाइथन में काम करना है। इसके अलावा लेटेंट सेमेन्टिक विश्लेषण अच्छा दिखता है लेकिन मुझे लगता है कि कीवर्ड मिलान के बजाए एक कीवर्ड के आधार पर दस्तावेज़ वर्गीकरण के लिए यह और अधिक है। मैं एनएलटीके से कुछ हद तक परिचित हूं। क्या कोई इस बात पर कुछ अंतर्दृष्टि प्रदान कर सकता है कि मुझे किस दिशा में आगे बढ़ना चाहिए और इसके लिए मुझे किस टूल का उपयोग करना चाहिए?

+0

अपनी परियोजना के दायरे में क्या है पर अजगर कार्यान्वयन - http://clic.cimec.unitn.it/composes/toolkit/installation.html

  • बीगल (http://www.indiana.edu/~clcl/BEAGLE/Jones_Mewhort_PR.pdf) में अजगर कार्यान्वयन - कम से http://radimrehurek.com/gensim/tutorial.html
  • काटना (http://clic.cimec.unitn.it/composes/toolkit/introduction.html) अजगर कार्यान्वयन? यदि आप कुछ मूल कुंजी-शब्दों या इंद्रियों से निपट रहे हैं, तो शब्द समतुल्य वर्गों को हाथ से निर्दिष्ट करना आसान हो सकता है (उदाहरण के लिए "कम लागत वाले स्वास्थ्य बीमा" वाक्यांशों की एक शब्द-सूची)। – dmh

  • +0

    मुझे लगभग 200000 शब्दों के समूह से कम लागत वाले स्वास्थ्य बीमा जैसे अर्थात् समान शब्दों को निकालना है। मुझे लगता है कि मुझे इन शब्दों पर शुरुआती एल्गोरिदम चलाने के बाद क्लस्टरिंग लागू करना है ताकि केंद्रों (शब्दों) को उत्पन्न किया जा सके जो अपने क्लस्टर में अर्थात् समान शब्दों से मेल खाते हैं। पूरी प्रक्रिया असुरक्षित है। –

    उत्तर

    0

    मैं Wordnet. पर एक नज़र डालकर शुरू करूंगा, यह आपको सैकड़ों हजारों शब्दों के लिए वास्तविक समानार्थी और अन्य शब्द संबंध देगा। चूंकि आपने nltk टैग किया है: यह वर्डनेट के लिए बाइंडिंग प्रदान करता है, और आप इसे डोमेन-विशिष्ट समाधान के आधार के रूप में उपयोग कर सकते हैं।

    फिर भी एनएलटीके में, similar()introduction में एनएलटीके पुस्तक में विधि और nltk.text.ContextIndex पर आधारित चर्चा की जांच करें, जो यह आधारित है। (अभी भी सब कुछ सरल है, लेकिन यह वास्तव में आपको चाहिए)।

    3

    यदि आपके पास एक बड़ा कॉर्पस है, जहां ये शब्द होते हैं, तो आप वेक्टर के रूप में प्रत्येक शब्द का प्रतिनिधित्व करने के लिए मॉडल को प्रशिक्षित कर सकते हैं। उदाहरण के लिए, आप word2vec के "skip-gram और CBOW मॉडल" के माध्यम से गहरी शिक्षा का उपयोग कर सकते हैं, उन्हें gensim software package

    शब्द 2vec मॉडल में, प्रत्येक शब्द को वेक्टर द्वारा दर्शाया जाता है, फिर आप बीच में समानता को माप सकते हैं वें शब्दों का प्रतिनिधित्व करने वाले वैक्टरों के कोसाइन को मापकर दो शब्द। सिमेंटिक समान शब्द उदाहरण के लिए एक उच्च कोज्या समानता होनी चाहिए,:

    model.similarity('cheap','inexpensive') = 0.8 
    

    (मूल्य बना है, सिर्फ उदाहरण के लिए।)

    इसके अलावा, अपने प्रयोगों, शब्दों की एक अपेक्षाकृत छोटी संख्या (संक्षेप से यानी, 3 या 4 शब्दों तक) उदाहरण के लिए अर्थ विज्ञान को बरकरार रखता है,:।

    vector1 = model['cheap']+model['health']+model['insurance'] 
    vector2 = model['low']+model['cost']+model['medical']+model['insurance'] 
    
    similarity(vector1,vector2) = 0.7 
    

    (फिर से, सिर्फ उदाहरण के लिए)

    आप इस अर्थ समानता का उपयोग कर सकते अपने क्लस्टर उत्पन्न करने के लिए शब्दों के बीच उपाय के रूप में मापें।

    1

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

    अन्य एल्गोरिदम कि उपयोगी हो सकता है शामिल हैं:

    संबंधित मुद्दे