Как определить предмет, объект и другие слова?

Я пытаюсь реализовать приложение, которое может определять смысл предложения, деля его на более мелкие куски. Поэтому мне нужно знать, какие слова являются предметом, объектом и т.д., Чтобы моя программа могла знать, как обрабатывать это предложение.

Ответ 1

Это открытая исследовательская проблема. Вы можете получить обзор в Википедии, http://en.wikipedia.org/wiki/Natural_language_processing. Рассмотрим такие фразы, как "Время летит как стрела, плод летает как банан" - однозначно классифицировать слова непросто.

Ответ 2

Вы должны посмотреть на Natural Language Toolkit, который подходит именно для этого.

См. этот раздел руководства: Категоризация и маркировка слов - здесь выдержка:

>>> text = nltk.word_tokenize("And now for something completely different")
>>> nltk.pos_tag(text)
[('And', 'CC'), ('now', 'RB'), ('for', 'IN'), ('something', 'NN'),
('completely', 'RB'), ('different', 'JJ')]

"Здесь мы видим, что и - CC, координирующий союз; теперь и полностью - RB или наречия; для - это IN, предлог, что-то - это NN, существительное, а другое - JJ, прилагательное.

Ответ 3

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

Ответ 4

Конкретная проблема, которую вы упомянули, идентификация объекта и объектов предложения, выполняется синтаксический синтаксический анализ. Вы можете получить представление о том, как работает синтаксический анализ, используя эту демонстрацию программного обеспечения для разбора, разработанного Стэнфордским университетом.

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

Ответ 5

StompChicken дал правильный ответ на этот вопрос, но я хотел бы добавить, что понятия предмета и объекта известны как грамматические отношения, а Бриско и Кэрролл RASP - это синтаксический анализатор, который может выполнить дополнительный шаг вывода списка отношений из синтаксического анализа.

Здесь приведен пример из демонстрационной страницы . Это выдержка из вывода для предложения, которое начинается "Мы описываем надежный точный независимый от домена подход..." :

(| ncsubj | | описываем: 2_VV0 | | Мы: 1_PPIS2 | _)
(| dobj | | описывают: 2_VV0 | | подход: 7_NN1 |)