8

JWNL (Java Wordnet Library) を使用して単語の同義語を推定頻度順に並べ替える方法を知っている人はいますか? Wordnet のアプリケーションがそれを実行できるので、これが何らかの方法で実行できることはわかっています。(関係あるかわかりませんがWordnet 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]); }
                }
           }
     }
4

1 に答える 1

11

誰も答えなかったので、同じように考えて答えがわからない人がもっといるのではないでしょうか。

さて、Synset.getTagCount(String) 関数があることがわかりました。これは、単語 (String) に関連するすべての synset の推定頻度の値を返します。したがって、私がしなければならなかったのは、これに従って類義語で ArrayList をソートすることだけでした。

しかし、synset はデフォルトでソートされて返されることが証明されたので、質問で書いたコードを使用して取得したものは、推定頻度で既に順序付けられています!

これが将来誰かに役立つことを願っています:)

于 2012-12-11T16:04:04.127 に答える