2010-05-01 3 views
2

Hii .. Может кто-нибудь помочь мне найти алгоритм в Java-коде, чтобы найти синонимы поискового слова на основе контекста, и я хочу реализовать алгоритм с базой данных WordNet.Алгоритм выбора слов (алгоритм Леска)

Например, «Я запускаю программу Java». Из контекста я хочу найти синонимы для слова «бег», но синонимы должны быть подходящими в соответствии с контекстом.

ответ

9

Позвольте мне проиллюстрировать возможный подход:

  1. Пусть ваше предложение будет A B C
  2. Пусть каждое слово имеет synsets т.е. {A:(a1, a2, a3), B:(b1), C:(c1, c2)}
  3. Теперь формируют возможные наборы synset: (a1, b1, c1), (a1, b1, c2), (a2, b1, c1) ... (a3, b1, c2)
  4. функцию F(a, b, c), которая возвращает определение расстояние (оценка) между (a, b, c).
  5. Вызов F на каждом наборе синхронизации.
  6. Выберите комплект с максимальным счетом.

Для начала, функция Р может просто вернуть продукт обратного числа узлов между двумя узлами:

Максимизация (продукт [г = 0 до Len (предложение); J = 0 to len (предложение)] (1/D (node_i, node_j)))

Позже вы можете увеличить его сложность.

+0

Вы имеете в виду использование Levenshtein distance ??? – user330394

+0

Umm, no. Расстояние = количество узлов между двумя словами. Wordnet похож на связанный граф с каждой синхронизацией в качестве узла. Края - это отношения, такие как Hypernyms, Hyponyms и т. Д. – pravin

+0

Для алгоритма Lesk D = количество слов, которые находятся в нескольких определениях из синсетов –

0

Здесь Perl реализация алгоритма http://senserelate.sourceforge.net/ вы можете использовать его с кодом Java, но для этого требуется некоторая работа по настройке.

1

Привет, мне нужно взглянуть на страницу this, когда я искал реализации алгоритма lesk. Я думаю, что это входит в состав пакета JAWS. i havent использовал его еще, но я думаю, это поможет

2

This - идеальный документ для вашей проблемы. Соответствие алгоритма невелика, но я думаю, этого будет достаточно.

На ссылке this вы можете найти Java API для поиска в WordNet (JAWS).

Смежные вопросы