Как получить синонимы, упорядоченные по вероятности их появления из Wordnet - PullRequest
3 голосов
/ 13 июля 2010

Я ищу в Wordnet синонимы для большого списка слов.Как я это сделал, когда какое-то слово имеет более одного синонима, результаты возвращаются в алфавитном порядке.Мне нужно, чтобы они были упорядочены по их вероятности появления , и я выбрал бы только топ 1 синоним.

Я использовал базу данных прологов Wordnet и Syns2Index, чтобы преобразовать их в индекс типа Lucene для запроса синонимов.Есть ли способ упорядочить их по вероятности таким образом, или я должен использовать другой подход?

Скорость не важна, этот поиск синонимов не будет выполняться онлайн.

Ответы [ 2 ]

5 голосов
/ 28 июля 2010

В случае, если кто-то наткнется на этот поток, это был путь (по крайней мере, что мне было нужно):

http://lyle.smu.edu/~tspell/jaws/doc/edu/smu/tspell/wordnet/impl/file/ReferenceSynset.html#getTagCount%28java.lang.String%29

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

0 голосов
/ 13 июля 2010

Я думаю, что вы должны сделать еще один шаг (при условии, что скорость не важна).

Из индекса Lucene вы должны построить еще один словарь, в котором каждое слово сопоставляется с небольшим объектом, который содержит единственный синоним, который имеет более высокую вероятность появления, значение и вероятность появления. Т.е., учитывая этот код:

class Synonym {
public:
    String name;
    double probability;
    String meaning;
}

Map<String, Synonym> m = new HashMap<String, Synonym>();

... вам просто нужно заполнить его из индекса Lucene.

...