nom*_*ein 2 stanford-nlp corenlp-server
我在corenlp服务器上使用pycorenlp。我可以以字符串格式获取解析树。但是我可以像NLTK库这样的树来获取它吗?
from pycorenlp import StanfordCoreNLP
import pprint
import nltk
nlp = StanfordCoreNLP('http://localhost:9000')
text = ('Purgrug Vobter and Juklog Qligjar vruled into the Battlefield. Vobter was about to Hellfire. Juklog Qligjar started kiblaring.')
output = nlp.annotate(text, properties={
'annotators': 'tokenize,ssplit,pos,depparse,parse',
'outputFormat': 'json'
})
print [s['parse'] for s in output['sentences']]
Run Code Online (Sandbox Code Playgroud)
输出:
[u'(ROOT\r\n (S\r\n (NP (NNP Purgrug) (NNP Vobter)\r\n (CC and)\r\n (NNP Juklog) (NNP Qligjar))\r\n (VP (VBD vruled)\r\n (PP (IN into)\r\n (NP (DT the) (NN Battlefield))))\r\n (. .)))', u'(ROOT\r\n (S\r\n (NP (NNP Vobter))\r\n (VP (VBD was)\r\n (ADJP (IN about)\r\n (PP (TO to)\r\n (NP (NNP Hellfire)))))\r\n (. .)))', u'(ROOT\r\n (S\r\n (NP (NNP Juklog) (NNP Qligjar))\r\n (VP (VBD started)\r\n (S\r\n (VP (VBG kiblaring))))\r\n (. .)))']
Run Code Online (Sandbox Code Playgroud)
从nltk导入树:
from nltk.tree import *
Run Code Online (Sandbox Code Playgroud)
接下来,
a = [u'(ROOT\r\n (S\r\n (NP (NNP Purgrug) (NNP Vobter)\r\n (CC and)\r\n (NNP Juklog) (NNP Qligjar))\r\n (VP (VBD vruled)\r\n (PP (IN into)\r\n (NP (DT the) (NN Battlefield))))\r\n (. .)))', u'(ROOT\r\n (S\r\n (NP (NNP Vobter))\r\n (VP (VBD was)\r\n (ADJP (IN about)\r\n (PP (TO to)\r\n (NP (NNP Hellfire)))))\r\n (. .)))', u'(ROOT\r\n (S\r\n (NP (NNP Juklog) (NNP Qligjar))\r\n (VP (VBD started)\r\n (S\r\n (VP (VBG kiblaring))))\r\n (. .)))']
Tree.fromstring(a[0]).pretty_print()
Run Code Online (Sandbox Code Playgroud)
就这样。