2016-04-26 6 views
0

私はセマンティックグラフgを持っていると仮定して、私は、次の2つの文字列を通じた表現を取得: CoreNLPで文字列からSemanticGraphオブジェクトを作成する方法は?

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

は、これらの文字列は、今私が持っている唯一のものであることを仮定し(オブジェクト gはもう表示されません)。同じオブジェクトを取得するために何らかの方法で文字列 sgまたは dpを使用できる別のオブジェクト g2を作成することは可能ですか?

SemanticGraph g2 = new SemanticGraph(sg); 

または

SemanticGraph g2 = new SemanticGraph(dp); 

任意のアイデアはどのように効率的な方法でこれを行うには:CoreNLPは、例えば、このためのコンストラクタを提供する場合は理想的には、それは素晴らしいことですか?

答えて

1

あなたの問題の詳細な状況を提示できますか?

グラフをディスクに保存して後でロードしてから、SemanticGraphを再構築しようとしていますか?おそらくProtobufAnnotationSerializerをそのユースケースに使う方が良いでしょう。

なぜ、セマンティックグラフへのアクセスが失われているのか理解するのに役立ちます。

エッジリストの文字列表現からSemanticGraphに移動する場合は、Stringからトークンを再構築してSemanticGraphEdgesを構築し、SemanticGraphFactory.makeFromEdgesを使用してSemanticGraphを作成する必要があります。エッジのリスト。あなたが見てみたい

クラス:明示的なコードがないものの、答えを

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

おかげで、この方向がポイントにあるので、私は答えを受け入れています。乾杯! – Belphegor

関連する問題