我正在使用Stanford Parser。使用提供的GUI工具,它输出句子中的grafic树 - like this但是在保存输出时,它只是提供括号格式,如(ROOT (NP (NP (DT The) (NN capability))...
。
是否可以使用命令行获得相同的输出(SVG)?
如果没有,可能还有其他一些工具吗?也许首先获取DOT文件并使用Graphviz最终得到SVG!
答案 0 :(得分:0)
你可能想尝试d3.js.以下是树的示例:http://mbostock.github.io/d3/talk/20111018/tree.html。其他示例如下:https://github.com/mbostock/d3/wiki/Gallery。如果要从命令行使用d3进行渲染,请与PhantomJS(http://phantomjs.org/)结合使用。 PhantomJS还允许您以PNG或SVG打印结果。这就是我作为网络家伙的方式。这样做的一个优点是,您将能够在浏览器中运行它,并可能在将来添加一些交互性。取决于你当然的申请......
答案 1 :(得分:0)
最后,我编写了自己的脚本来获取DOT格式,并使用Graphviz进一步使用它来获取SVG输出。
public static void main(String[] args)
{
Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
Annotation document = new Annotation(args[0]);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(CoreAnnotations.SentencesAnnotation.class);
for (CoreMap sentence : sentences) {
SemanticGraph dependencies = sentence.get(SemanticGraphCoreAnnotations.CollapsedCCProcessedDependenciesAnnotation.class);
System.out.println(dependencies.toDotFormat());
}
}