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

StackOverflow https://stackoverflow.com/questions/610399

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

Это было полезно?

Решение

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

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

[...]

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top