我使用Stanford coreNLP来生成依赖关系树,但是由于它使用打印功能来显示树,因此无法存储结果。例如,“我在StackOverFlow中提问”的代码和依赖关系树如下:
nlp = StanfordCoreNLP('.')
parser=nlp.parse("I ask a question in StackOverFlow")
tree=Tree.fromstring(parser.__str__())
tree.pretty_print()
在这里,我使用了Snipping Tool手动为生成的树截图,但是在我的代码中,我将生成超过一千棵树,不可能从所有树中截取截图。任何帮助将不胜感激。
答案 0 :(得分:1)
在基于UNIX的系统上,您可以执行以下操作:
parse.py
nlp = StanfordCoreNLP('.')
for i in range(len(sentences)):
sentence = sentences[i]
parser=nlp.parse(sentence)
tree=Tree.fromstring(parser.__str__())
print(i, sentence)
print('parse tree:')
tree.pretty_print()
print()
做类似python parse.py > parse_trees
的操作,您的输出文件parse_trees
的结构将为:
[index] [sentence]
parse tree:
[parse tree]
[index] [sentence]
parse tree:
[parse tree]
...