Как извлечь NP (существительные фразы) и VP (глагольные фразы) с помощью библиотеки python, называемой pycorenlp

Я использую pycornlp библиотека. Эта библиотека предоставляет оболочку Python для Stanford Corenlp.

Я могу получить parsetree, который приведен ниже.

(ROOT
(S
 (NP (PRP He))
 (VP (VBP drink)
  (NP
    (NP (NN tomato) (NN soup))
    (PP (IN in)
      (NP (DT the) (NN morning)))))))

Теперь я хочу извлечь первые NP и VP.

(NP (PRP He))
(VP (VBP drink)

Есть ли какой-либо API, доступный в pycorenlp?

Есть ли другой доступный API, который я могу использовать, чтобы извлечь все NP или все VP?

1 ответ

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

Ссылка ниже содержит хороший пример, который показывает вам, как подключиться к серверу, но затем показывает небольшую строку кода, иллюстрирующую, как пройти через выходной файл и взять то, что вам нужно. Ссылка: http://stanza.readthedocs.io/en/latest/example.text_classification.html

Пример кода, который просеивается через ваш выходной файл:

for token in annotation['sentences'][0]['tokens']: print token['word'], token['pos']

"аннотация" является выходной переменной. Этот код напечатает список слов и их часть речи. Вы можете легко изменить этот код, чтобы остановить его, как только он обнаружит первый экземпляр NP и VP.

Простой ответ на ваш вопрос заключается в том, что вы можете исправить цикл for, чтобы отсортировать выходные данные, чтобы найти первый экземпляр NP и VP.

Другие вопросы по тегам