Существует ли алгоритм, помогающий обнаружить "основную тему" ​​английского предложения?

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

Вариант использования выглядит следующим образом:

  • Пользователь вводит предложение в качестве запроса (имеет ли куриный вкус как индейка?)
  • Наша система идентифицирует понятия предложения (курица, индейка)
  • И он выполняет поиск содержимого нашего контента.

В области, в которой нам не хватает, определяется, что действительно является основной "темой" предложения. В предложении "Имеет ли куриный вкус, как индейка", главная тема "курицы", потому что пользователь спрашивает о вкусе курицы. Хотя "индейка" является вспомогательной темой, имеющей меньшее значение.

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

Ответ 1

Я на самом деле сделал исследовательский проект по этому поводу и выиграл два соревнования и соревнуюсь с гражданами.

В метод два шага:

  • Разбор предложения с Контекстно-свободной грамматикой
  • В результирующих деревьях синтаксического анализа найдите все существительные, которые подчиняются только существительным-фразеподобным компонентам

Например, "Я съел пирог" имеет 2 существительные: "I" и "pie". Глядя на дерево разбора, "пирог" находится внутри фразы глагола, поэтому он не может быть предметом. "Я", однако, находится только внутри NP-подобных составляющих. будучи единственным кандидатом на предмет, это предмет. Найдите раннюю копию этой программы на http://www.candlemind.com. Обратите внимание, что словарь ограничен основными сингулярными словами, и нет никаких глагольных спряжений, поэтому он имеет "человека", но не "мужчины", "ел", а не "ел". Кроме того, CFG, который я использовал, был ограничен вручную. Я скоро обновлю эту программу.

Во всяком случае, для этой программы существуют ограничения. Мой наставник указал, что в его течениях он не может распознать предложения с предметами, которые являются "настоящими" NP (какая грамматика фактически называет NP). Например, "что луна плоская, это уже не дискуссия". Субъект на самом деле "что луна плоская". Тем не менее, программа признает "луну" в качестве предмета. Я скоро это исправлю.

В любом случае, это достаточно хорошо для большинства предложений...

Здесь также можно найти мою исследовательскую работу. Перейдите на страницу 11, чтобы прочитать методы.

Надеюсь, что это поможет.

Ответ 2

Большинство ваших основных методов анализа НЛП смогут извлечь основные аспекты предложения - то есть, что цыпленок и индейка являются NP, и они связаны и прилагательным "как" и т.д. Подводя их к теме, или "концепция" сложнее

Техника, такая как латентный семантический анализ и многие ее производные, превращает эту информацию в вектор (некоторые из них имеют методы сохранения в некоторой части иерархии/отношений между частями речи), а затем сравнивают их с существующими, обычно предварительно классифицированными по понятию, векторы. Чтобы начать, см. http://en.wikipedia.org/wiki/Latent_semantic_analysis.

Изменить Здесь пример приложения LSA, с которым вы можете поиграть, чтобы узнать, хотите ли вы продолжить его. http://lsi.research.telcordia.com/lsi/demos.html

Ответ 3

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

Одним из способов получения аппроксимации ans является

1.) Сначала отметьте предложение, используя openNLP, stanford Parser или любой. 2.) Затем удалите все слова остановки из предложения. 3.) Возьмите существительные (правильные, сингулярные и множественные).

Другой способ -

1.) выложите предложение в фразы любым парсером. 2.) Возьмите все существительные. 3.) Извлеките существительные фразы, которые не имеют существительных в качестве ребенка. 4.) Держите только прилагательные и существительные, удалите все слова из оставшихся именных фраз.

Это может дать ок. угадывание.

Ответ 4

"Ключевая концепция" не является четко определенным термином в лингвистике, но это может быть отправной точкой: parse предложение, найдите объект в дереве синтаксического анализа или структуре зависимостей, которые вы получаете. (Это не всегда работает, например, тема "идет ли дождь?" - это "это", а ключевая концепция - это, скорее всего, "дождь". Также ключевая концепция в "Есть спагетти и лазаньи то же самое?" )

Эта проблема (NLP + search) более правильно обрабатывается такими методами, как LSA, но это довольно продвинутая тема.

Ответ 5

На самом базовом уровне вопрос на английском языке обычно имеет форму <verb> <subject> ... ? или <pronoun> <verb> <subject> ... ?. Это отнюдь не хороший алгоритм, особенно учитывая, что субъект может охватывать несколько слов, но в зависимости от того, насколько сложным является решение, которое вам нужно, это может быть полезной отправной точкой.

Если вам нужна точность, проигнорируйте этот ответ.

Ответ 6

Если вы готовы выложить деньги, http://www.connexor.com/ должен быть способен сделать этот тип семантического анализа для широкого различные языки, включая английский. Я никогда не использовал свой продукт напрямую и поэтому не могу прокомментировать, насколько хорошо он работает.

Ответ 8

Составные или сложные предложения могут иметь более одной ключевой концепции предложения.

Вы можете использовать stanfordNLP или MaltParser, которые могут предоставить структуру зависимостей предложения. Он также предоставляет части речевых меток, включая тему, глагол, объект и т.д.

Я думаю, что большую часть времени объект будет ключевой концепцией предложения.

Ответ 10

Простое решение - пометить ваше предложение тегером с частичным выпуском (например, из NLTK библиотека для Python), затем найти совпадения с некоторые предопределенные шаблоны части-речи, в которых он ясно указывает, где главный субъект предложения

Ответ 11

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

http://www.abisource.com/projects/link-grammar/

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

Ответ 12

Под "основной темой" вы имеете в виду то, что называется предметом предложения.

Субъект может быть идентифицирован путем понимания предложения посредством обработки естественного языка.

Ответ на этот вопрос такой же, как и для Как определить предмет, объект и другие слова? - это нерешенная проблема.