Как выбрать предмет, предикат, объект и прилагательные в предложении - PullRequest
0 голосов
/ 22 ноября 2018

Я хочу извлечь тему, предикат и объект предложения и выяснить, какие прилагательные относятся к предмету, предикату или объекту с помощью Stanford CoreNLP в коде Java.

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

При определении объекта и предиката я использовал метод, аналогичный описанному выше.Я проверил, если это det, и если это какие-либо другие теги, которые означают, что это предикат или объект.Однако иногда появляются разные теги, и неэффективно разбирать каждый тег, что в некоторой степени означает, что это предикат, указывающий на объект.

Поэтому мой вопрос в том, как мне получить объект, предикат,и объект предложения и каждое прилагательное, но не обязательно проверять каждый тег?

Для вышеупомянутых попыток я использовал Stanford CoreNLP Simple API, но я согласен со стандартным API, если он действительно необходим.

1 Ответ

0 голосов
/ 23 ноября 2018

Вы должны попробовать аннотатор openie, который найдет (субъект, предикат, объект) тройки.

пример команды:

java -Xmx5g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,depparse,coref,natlog,openie -file basic-example.txt -outputFormat text

пример:

The tall man ate the delicious pizza.

пример вывода:

1.0     man     ate     pizza
1.0     man     ate     delicious pizza
1.0     tall man        ate     pizza
1.0     tall man        ate     delicious pizza
...