Поиск связанных слов (в частности, физических объектов) для конкретного слова - PullRequest
18 голосов
/ 04 марта 2009

Я пытаюсь найти слова (в частности, физические объекты), связанные с одним словом. Например:

Теннис : теннисная ракетка, теннисный мяч, теннисная обувь

Снукер : бильярдный кий, бильярдный шар, мел

Шахматы : шахматная доска, шахматная фигура

Книжный шкаф : книга

Я пытался использовать WordNet, в частности, семантические отношения meronym; Однако этот метод не является последовательным, как показывают результаты ниже:

Теннис : подача, залп, ошибка ноги, заданное значение, возврат, преимущество

Снукер : ничего

Шахматы : шахматный ход, шахматная доска (чьи собственные соотношения meronym показывают «квадрат» и «диагональ»)

Книжный шкаф : полка

В конечном итоге потребуется взвешивание терминов, но сейчас это не является проблемой.

У кого-нибудь есть предложения, как это сделать?


Просто обновление: закончилось с использованием смеси ответов Джеффа и СтомпЧикен.

Качество информации, полученной из Википедии, превосходно, особенно в связи с тем, что (неудивительно) так много релевантной информации (по сравнению с некоторыми корпорациями, где такие термины, как «блог» и «iPod» не существуют).

Диапазон результатов из Википедии - лучшая часть. Программное обеспечение может соответствовать таким терминам, как (списки сокращены для краткости):

  • гольф: [мяч, утюг, тройник, сумка, клюшка]
  • фотография: [фотоаппарат, пленка, фотография, искусство, изображение]
  • рыбалка: [рыба, сетка, крючок, ловушка, приманка, приманка, удочка]

Самая большая проблема - классифицировать определенные слова как физические артефакты; WordNet по умолчанию не является надежным ресурсом, так как многие термины (такие как «ipod» и даже «trampolining») не существуют в нем.

Ответы [ 2 ]

15 голосов
/ 04 марта 2009

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

  1. Алгоритмы семантического сходства . Эти алгоритмы обычно выполняют обход дерева по отношениям в Wordnet, чтобы получить реальную оценку того, насколько связаны два термина. Они будут ограничены тем, насколько хорошо WordNet моделирует интересующие вас концепции. WordNet :: Сходство (написано на Perl) довольно хорошо.
  2. Попробуйте использовать OpenCyc в качестве базы знаний . OpenCyc - это версия Cyc с открытым исходным кодом, очень обширная база знаний «реальных» фактов. У него должен быть гораздо более богатый набор семантических реалий, чем у WordNet. Тем не менее, я никогда не использовал OpenCyc, поэтому не могу сказать, насколько он завершен или насколько прост в использовании.
  3. n-граммовый частотный анализ . Как упомянуто Джеффом Мозером. Управляемый данными подход, который может «обнаруживать» отношения из больших объемов данных, но часто может давать шумные результаты.
  4. Скрытый семантический анализ . Управляемый данными подход, подобный частотному анализу n-граммы, который находит наборы семантически связанных слов.

[...]

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

Я думаю, что было бы неплохо сочетание n-грамм и LSA (или что-то в этом роде). Частоты N-граммы найдут концепции, тесно связанные с вашей целевой концепцией (например, теннисный мяч), а LSA найдет связанные концепции, упомянутые в том же предложении / документе (например, net, serve). Кроме того, если вас интересуют только существительные, фильтрация выходных данных, чтобы они содержали только существительные или словосочетания (с помощью тега части речи 1036 *), может улучшить результаты.

6 голосов
/ 04 марта 2009

В первом случае вы, вероятно, ищете n-грамм , где n = 2. Вы можете получить их из таких мест, как Google, или создать свой собственный из всей Википедии .

Для получения дополнительной информации, проверьте этот связанный вопрос переполнения стека .

...