2015-05-18 5 views
2

Мне нужно извлечь отношения слов в предложение. Меня больше всего интересует определение предмета, предиката и объекта. Например, для follwoing предложения в:программное обеспечение для извлечения функций слова, таких как субъект, предикат, объект и т. Д.

She gave him a pen 

Я хотел бы иметь:

She_subject gave_predicate him a pen_object. 

Стенфордского NLP может сделать это? Я пробовал их аннотатор relation, но он не работал так, как я ожидал? Может быть, есть другое программное обеспечение, которое может произвести этот результат?

ответ

5

Согласно 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.

+0

Нет, я не ищу часть речевых меток. У меня уже есть маркировка POS со Стэнфордским НЛП. Но POS тегирует глаголы, существительные, прилагательные и т. Д., Но не различает, например, субъекты и объекты. –

+0

@Maximus Это научит меня писать ответы, прежде чем я проснусь. Ред. – tsleyson

+0

Спасибо, я пробовал ссылку, но я не могу найти предикат или тему. Можете ли вы вставить код в свой вопрос и указать, где он показывает мне предикат? –

2

Парсер Stanford может это сделать :) Вам нужно посмотреть на анализатор зависимостей. Посмотрите на нижней части этой страницы: http://nlp.stanford.edu/software/lex-parser.shtml:

subject: nsubj(snapped, rain), 
or direct object: dobj(shut, hub)) 
... 

Или посмотреть на этой странице (Stanford зависимостями): http://nlp.stanford.edu/software/stanford-dependencies.shtml

И понять аннотации взглянуть на это: http://nlp.stanford.edu/software/dependencies_manual.pdf

Смежные вопросы