2012-12-11 4 views
8

Weiß jemand, wie ich die Synonymen eines Wortes mit JWNL (Java-Wordnet-Bibliothek) nach geschätzter Häufigkeit sortiert nehmen kann? Ich weiß, dass dies irgendwie gemacht werden kann, weil die Anwendung von Wordnet es tun kann. (Ich weiß nicht, ob es wichtig ist, aber ich benutze Wordnet 2.1)Wie kann ich Synonyme in geschätzter Häufigkeitsreihenfolge mithilfe von JWNL (Wordnet-Bibliothek) finden?

Hier ist mein Code, wie ich Synonyme bekomme, könnte mir bitte jemand sagen, was ich hinzufügen sollte ... (ganz andere Möglichkeiten zu tun es werden auch begrüßt!)

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

GOt Idee aus Ihrem Code –

Antwort

10

Da niemand antwortete, nehme ich es muss mehr Menschen das gleiche denken fragen, und nicht wissen die Antwort.

Nun, ich habe herausgefunden, dass es die Funktion Synset.getTagCount (String) gibt, die den Wert der geschätzten Häufigkeit jedes Synsets in Bezug auf das Wort (String) zurückgibt. Also musste ich nur die ArrayList mit den entsprechenden Synonymen sortieren.

Aber es wurde bewiesen, dass die Synsets standardmäßig sortiert zurückgegeben werden, also was ich mit dem Code bekomme, den ich bei der Frage geschrieben habe, ist bereits nach geschätzter Häufigkeit geordnet!

Ich hoffe, dass dies jemand in der Zukunft helfen wird :)