Как определить идеи и концепции в данном тексте - PullRequest
9 голосов
/ 18 мая 2010

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

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

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

Пожалуйста, никогда не присылайте мне фотографию мистера Джонса.

Кто-нибудь знает, с чего начать? Это вообще возможно?

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

Спасибо!

Ответы [ 3 ]

3 голосов
/ 23 мая 2010

Лучшее, что может вам пригодиться, - это автоматический анализ настроений. Это используется, например, для оценки положительного или отрицательного отзыва клиента. Я не могу дать вам прямые указатели на доступные инструменты, но это то, что вы ищете.

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

1 голос
/ 24 мая 2010

Проблема, которую вы решаете, очень сложная.

Сначала я определил бы сущности в тексте (проблема называется Распознавание именованных сущностей, Google google), а затем попытался бы определить понятия.

Если вы хотите приблизительно определить, о чем идет речь, я предлагаю вам начать с использования WordNet и в соответствии со словами и их местами в иерархии, чтобы определить используемые концепции. Если вы хотите создать систему, которая показывает реальный интеллект, вам следует начать исследовать такие ресурсы, как CYC (OpenCYC), который позволит вам преобразовывать предложения в предложения FOL.

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

удачи

1 голос
/ 18 мая 2010

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

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

С чего начать? Хороший вопрос. Я не знаю ни одного учебного пособия по этой теме (и я полагаю, что вы попробовали вариант Google), но я думаю, что в iTunes U будет курс по этой теме. Если нет, я могу опубликовать ссылку на курс, который я сделал, в котором упоминается тема, и он не был совершенно ужасным: http://www.inf.ed.ac.uk/teaching/courses/inf2a/lecturematerials/index.html#lecture01

...