1

我正在使用pycornlp图书馆。这个库为 stanford corenlp 提供了一个 python 包装器。

我能够得到下面给出的分析树。

(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)

pycorenlp 中是否有可用的 API?

是否有任何其他可用的 API 可用于提取所有 NP 或所有 VP?

4

1 回答 1

0

CoreNLP 的输出通常是 JSON(它是列表和字典的组合),您可以轻松筛选出您需要的内容。

下面的链接有一个很好的示例,它向您展示了如何连接到服务器,但随后显示了一小行代码,说明了如何在输出文件中移动并获取您需要的内容。链接是:http ://stanza.readthedocs.io/en/latest/example.text_classification.html#annotating-using-corenlp

筛选输出文件的示例代码是:

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

'annotation' 是输出变量。此代码将打印单词列表及其词性。一旦找到 NP 和 VP 的第一个实例,您可以轻松地修改此代码以停止。

对您的问题的简单回答是,您可以使用 for 循环对输出数据进行排序,以找到 NP 和 VP 的第一个实例。

于 2017-04-26T12:54:04.923 回答