Согласно http://nlp.stanford.edu/software/lex-parser.shtml, у Стэнфордского НЛП есть синтаксический анализатор, который может идентифицировать предмет и предикат предложения. Вы можете попробовать его онлайн http://nlp.stanford.edu:8080/parser/index.jsp. Вы можете использовать типизированные зависимости для идентификации объекта, предиката и объекта.
Из примера страницы, предложение Моя собака также любит есть колбасу даст вам этот парсер:
(ROOT
(S
(NP (PRP$ My) (NN dog))
(ADVP (RB also))
(VP (VBZ likes)
(S
(VP (VBG eating)
(NP (NN sausage)))))
(. .)))
Анализатор может также генерировать зависимости:
poss(dog-2, My-1)
nsubj(likes-4, dog-2)
advmod(likes-4, also-3)
root(ROOT-0, likes-4)
xcomp(likes-4, eating-5)
dobj(eating-5, sausage-6)
зависимость nsubj
показывает главный предикат и субъект — в этом случае понравилось и собака. Числа задают положение слова в предложении (по какой-то причине он проиндексирован). Зависимость dobj
показывает отношение предиката и объекта. Зависимость xcomp
дает внутреннюю информацию о предикате.
Это также работает, когда предикат не глагол: Моя собака большая и отвечает дает:
poss(dog-2, My-1)
nsubj(large-4, dog-2)
cop(large-4, is-3)
root(ROOT-0, large-4)
cc(large-4, and-5)
conj(large-4, in-6)
pobj(in-6, charge-7)
Это говорит нам о том, что large
является основной предикат (nsubj(large-4, dog-2)
), но был copula (cop(large-4, is-3)
), а также соединение и предлог с объектом.
Я не знаком с API, поэтому я не могу дать точный код. Возможно, кто-то, кто знает API, может это сделать. Парсер зарегистрирован в the Stanford NLP doc site. Вы также можете найти ответ Tools for text simplification (Java). Дополнительную информацию о формате зависимости можно найти в The Stanford Dependency Manual.
Нет, я не ищу часть речевых меток. У меня уже есть маркировка POS со Стэнфордским НЛП. Но POS тегирует глаголы, существительные, прилагательные и т. Д., Но не различает, например, субъекты и объекты. –
@Maximus Это научит меня писать ответы, прежде чем я проснусь. Ред. – tsleyson
Спасибо, я пробовал ссылку, но я не могу найти предикат или тему. Можете ли вы вставить код в свой вопрос и указать, где он показывает мне предикат? –