Подтвердить что ты не робот

Поиск связанных слов (в частности, физических объектов) с определенным словом

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

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

Снукер: снукерный кий, снукерный шар, мел

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

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

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

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

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

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

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

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

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


Просто обновление: закончено, используя смесь обоих ответов Джеффа и StompChicken.

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

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

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

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

4b9b3361

Ответ 1

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

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

[...]

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

Ответ 2

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

За дополнительной информацией обратитесь к этому связанному вопросу.