Как определить предмет, предмет и другие слова? - PullRequest
10 голосов
/ 23 августа 2009

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

Ответы [ 5 ]

11 голосов
/ 23 августа 2009

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

9 голосов
/ 23 августа 2009

Вам стоит взглянуть на 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, прилагательное. "

2 голосов
/ 27 августа 2009

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

Вот некоторые примеры вывода с их демонстрационной страницы . Это отрывок из вывода предложения, которое начинается с «Мы описываем надежный точный, независимый от предметной области подход ...»:

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

2 голосов
/ 24 августа 2009

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

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

2 голосов
/ 23 августа 2009

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

...