Существует ли алгоритм, помогающий определить «основную тему» ​​английского предложения? - PullRequest
31 голосов
/ 05 апреля 2011

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

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

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

Область, в которой нам не хватает, - это определение того, о чем на самом деле является основная «тема» предложения. В предложении «Есть ли курица на вкус индейка» есть основная тема «курица», потому что пользователь спрашивает о вкусе курицы. В то время как «индейка» является вспомогательной темой меньшей важности.

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

Ответы [ 12 ]

21 голосов
/ 03 мая 2011

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

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

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

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

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

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

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

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

9 голосов
/ 05 апреля 2011

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

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

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

3 голосов
/ 12 октября 2012

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

Один из способов получить приблизительный ответ -

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

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

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

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

1 голос
/ 05 мая 2017

Вам стоит взглянуть на Google Cloud Natural Language API.Это их служба НЛП.

https://cloud.google.com/natural-language/

1 голос
/ 04 октября 2012

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

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

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

1 голос
/ 06 декабря 2011

В журнале MIT по вычислительной лингвистике этого месяца есть статья о парсинге имен существительных:

1 голос
/ 05 апреля 2011

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

1 голос
/ 05 апреля 2011

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

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

1 голос
/ 05 апреля 2011

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

Проблема такого рода (поиск NLP +) более правильно решается с помощью таких методов, как LSA , но это довольно сложная тема.

0 голосов
/ 05 апреля 2011

Один из вариантов - рассмотреть что-то подобное в качестве первого шага:

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

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

...