如何获取依赖树,如下图所示。我可以获得纯文本形式的依赖关系,也可以借助dependencysee工具获得依赖关系图。但是,以单词为节点,以依存关系为边的依存关系树又如何呢?非常感谢!
发布于 2012-11-24 05:28:36
这些图形是使用GraphViz生成的,这是一个开源图形绘制包,最初来自AT&T Research。您可以在edu.stanford.nlp.trees.semgraph.SemanticGraph
中找到一个方法toDotFormat()
,它可以将SemanticGraph
转换为dot
/GraphViz可以呈现的dot
输入语言格式。目前,还没有提供此功能的命令行工具,但是使用该方法非常简单。
发布于 2017-07-02 13:00:33
下面是你将如何做到这一点(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,很好的阅读,如果你需要更多关于基于依赖的解析的信息,请参考。
发布于 2013-02-17 06:54:30
我现在正在处理类似的事情。这不是一个理想的解决方案,但它可能会有所帮助。正如在上面的回答中提到的,使用toDotFormat()以点语言获得解析树。然后使用众多工具中的一个(我使用的是python-graph)来读取该数据并将其呈现为图片。在此链接http://code.google.com/p/python-graph/wiki/Example上有一个示例
https://stackoverflow.com/questions/13468872
复制相似问题