Как извлечь 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.