如何获得依赖树,如下图所示。我可以将依赖关系作为纯文本,并在dependencysee工具的帮助下获得依赖图。但是依赖树如何将单词作为节点和依赖作为边缘。非常感谢!
答案 0 :(得分:8)
这些图是使用最初来自AT& T Research的开源图绘图包GraphViz生成的。您可以在toDotFormat()
中找到一种方法edu.stanford.nlp.trees.semgraph.SemanticGraph
,该方法会将SemanticGraph
转换为dot
输入语言格式,该格式可由dot
/ GraphViz呈现。目前,没有提供此功能的命令行工具,但使用该方法非常简单。
答案 1 :(得分:3)
以下是您将如何做到这一点(在python中)
安装所有必需的依赖项(OS X):
# assuming you have java installed and available in PATH
# and homebrew installed
brew install stanford-parser
brew install graphviz
pip install nltk
pip install graphviz
<强>码强>
import os
from nltk.parse.stanford import StanfordDependencyParser
from graphviz import Source
# make sure nltk can find stanford-parser
# please check your stanford-parser version from brew output (in my case 3.6.0)
os.environ['CLASSPATH'] = r'/usr/local/Cellar/stanford-parser/3.6.0/libexec'
sentence = 'The brown fox is quick and he is jumping over the lazy dog'
sdp = StanfordDependencyParser()
result = list(sdp.raw_parse(sentence))
dep_tree_dot_repr = [parse for parse in result][0].to_dot()
source = Source(dep_tree_dot_repr, filename="dep_tree", format="png")
source.view()
导致:
我在阅读Text Analytics With Python时使用了这个: CH3 ,读好,如果您需要有关基于依赖的解析的更多信息,请参考。
答案 2 :(得分:2)
我正在处理类似的事情。这不是一个理想的解决方案,但它可能会有所帮助。如上面的答案所述,使用toDotFormat()以点语言获取解析树。然后使用众多工具之一(我使用python-graph)读取这些数据并将其渲染为图片。这个链接上有一个例子http://code.google.com/p/python-graph/wiki/Example
答案 3 :(得分:2)
我也非常需要它;现在很高兴看到我们也有一个在线工具。使用此:http://graphs.grevian.org/graph(如此处所述:http://graphs.grevian.org/)
步骤如下:
解析句子:
c = a
a = b
b = b + c
将sent = 'What is the step by step guide to invest in share market in india?'
p = dep_parser.raw_parse(sent)
for e in p:
p = e
break
格式打印为:
.to_dot()
将输出复制粘贴到http://graphs.grevian.org/graph,然后按“生成”按钮。
您应该看到所需的图表。