2012-12-11 31 views
8

क्या कोई जानता है कि मैं अनुमानित आवृत्ति द्वारा आदेशित जेडब्ल्यूएनएल (जावा वर्डनेट लाइब्रेरी) का उपयोग करके एक शब्द के समानार्थी कैसे ले सकता हूं? मुझे पता है कि यह किसी भी तरह से किया जा सकता है, क्योंकि वर्डनेट का एप्लीकेशन इसे कर सकता है। (मुझे नहीं पता कि यह मायने रखता है, लेकिन मैं वर्डनेट 2.1 का उपयोग कर रहा हूं)जेडब्ल्यूएनएल (वर्डनेट लाइब्रेरी) का उपयोग करके अनुमानित आवृत्ति आदेश में समानार्थी कैसे मिल सकता है?

यहां मेरा कोड है कि मैं समानार्थी कैसे प्राप्त करता हूं, क्या कोई मुझे बता सकता है कि मुझे क्या जोड़ना चाहिए ... (करने के पूरी तरह से अलग तरीके यह भी स्वागत कर रहे हैं!)

ArrayList<String> synonyms=new ArrayList<String>(); 
    System.setProperty("wordnet.database.dir", filepath); 
    String wordForm = "make"; 
    Synset[] synsets = database.getSynsets(wordForm,SynsetType.VERB); 
    if (synsets.length > 0) { 
     for (int i = 0; i < synsets.length; i++) { 
    String[] wordForms = synsets[i].getWordForms(); 
    for (int j = 0; j < wordForms.length; j++) { 
      if(!synonyms.contains(wordForms[j])){ 
     synonyms.add(wordForms[j]); } 
       } 
      } 
    } 
+0

अपने कोड से गोटा आइडिया –

उत्तर

10

के बाद से कोई भी उत्तर दिया, मैं वहाँ और अधिक लोगों को एक ही लगता है कि सोच और जवाब जानते हुए भी नहीं होना चाहिए लगता है।

ठीक है, मुझे पता चला कि समारोह Synset.getTagCount (स्ट्रिंग) है, जो शब्द (स्ट्रिंग) से संबंधित प्रत्येक सिंकसेट की अनुमानित आवृत्ति का मूल्य देता है। तो, मुझे बस इतना करना था कि इस के अनुसार समानार्थी शब्दों के साथ ArrayList को सॉर्ट करना था।

लेकिन यह साबित हुआ कि सिंकसेट डिफ़ॉल्ट रूप से क्रमबद्ध किए गए हैं, इसलिए प्रश्न में मैंने जो कोड लिखा है उसका उपयोग करके मुझे पहले से अनुमानित आवृत्ति द्वारा आदेश दिया गया है!

मुझे उम्मीद है कि यह भविष्य में किसी की मदद करेगा :)