斯坦福解析器输出到SVG

时间:2013-04-13 11:52:57

标签: svg stanford-nlp

我正在使用Stanford Parser。使用提供的GUI工具,它输出句子中的grafic树 - like this但是在保存输出时,它只是提供括号格式,如(ROOT (NP (NP (DT The) (NN capability))...。 是否可以使用命令行获得相同的输出(SVG)? 如果没有,可能还有其他一些工具吗?也许首先获取DOT文件并使用Graphviz最终得到SVG!

2 个答案:

答案 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());
            }
        }