Как я могу найти синонимы в предполагаемом порядке частоты с помощью JWNL (библиотеки Wordnet)?

Кто-нибудь знает, как я могу взять синонимы слова с помощью 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]); }
                }
           }
     }

person missrg    schedule 11.12.2012    source источник
comment
GOt Идея из вашего кода   -  person Java Nerd    schedule 31.03.2014


Ответы (1)


Поскольку никто не ответил, я полагаю, что должно быть больше людей, которые задаются одним и тем же вопросом и не знают ответа.

Что ж, я понял, что есть функция Synset.getTagCount (String), которая возвращает значение предполагаемой частоты каждого набора synset, относящегося к слову (String). Итак, все, что мне нужно было сделать, это отсортировать ArrayList с синонимами в соответствии с этим.

Но было доказано, что синсеты по умолчанию возвращаются отсортированными, поэтому то, что я получаю, используя код, который я написал в вопросе, уже упорядочен по предполагаемой частоте!

Надеюсь, это кому-нибудь поможет в будущем :)

person missrg    schedule 11.12.2012