2016-04-26 81 views
0

假设我有一个语义图g,然后我通过以下两个字符串获得其表示:如何使用CoreNLP从字符串中创建SemanticGraph对象?

String sg = g.toCompactString(); 
String dp = g.typedDependencies().toString(); 

假设这些字符串,现在是我的唯一的事情(对象g不再可见)。是否可以创建另一个对象g2,它可以以某种方式使用字符串sgdp以获得相同的对象?理想情况下,这将是巨大的,如果CoreNLP提供这样的构造函数,例如:

SemanticGraph g2 = new SemanticGraph(sg); 

SemanticGraph g2 = new SemanticGraph(dp); 

任何想法如何做到这一点的一种有效的方式?

回答

1

你能为你的问题提供更多的上下文吗?

您是否尝试将图形存储在磁盘上并稍后加载,然后重新生成SemanticGraph?你可能会更好地使用ProtobufAnnotationSerializer作为该用例。

这将有助于理解您为什么失去对SemanticGraph的访问权限。

如果你真的想从一个边缘列表到SemanticGraph的String表示去你必须重建字符串中的令牌,建立SemanticGraphEdges,然后你可以使用SemanticGraphFactory.makeFromEdges建立从一个SemanticGraph边缘列表。你想看看

类:

edu.stanford.nlp.ling.IndexedWord 
edu.stanford.nlp.semgraph.SemanticGraphEdge 
edu.stanford.nlp.semgraph.SemanticGraphFactory 
+0

感谢您的回答,虽然没有明确的代码,这个方向是对的地步,所以我接受了答案。干杯! – Belphegor

相关问题