2016-04-26 1 views
0

Предположим, у меня есть семантический граф g, а затем я получаю его представление с помощью следующих двух строк:Как создать объект SemanticGraph из строки с CoreNLP?

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

Предположим, что эти строки теперь единственное, что у меня есть (объект g не видно больше). Возможно ли создать другой объект g2, который может использовать строки sg или dp в некотором роде, чтобы получить тот же самый объект? В идеале было бы здорово, если бы CoreNLP предоставил конструктор для этого, например:

SemanticGraph g2 = new SemanticGraph(sg); 

или

SemanticGraph g2 = new SemanticGraph(dp); 

Любые идеи, как сделать это в эффективный способ?

ответ

1

Можете ли вы предоставить больше контекста для своей проблемы?

Вы пытаетесь сохранить график на диске и загрузить его позже, а затем перестроить SemanticGraph? Вероятно, вам лучше использовать ProtobufAnnotationSerializer для этого случая использования.

Это поможет понять, почему вы теряете доступ к SemanticGraph.

Если вы действительно хотите перейти от строкового представления списка ребер к семантическому графику, вам придется перестроить маркеры из строки, построить SemanticGraphEdges, а затем вы можете использовать SemanticGraphFactory.makeFromEdges для создания SemanticGraph из список ребер.

Классы, которые вы хотите посмотреть на:

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

Спасибо за ответ, хотя нет никакого явного кода, это направление до точки, поэтому я принимаю ответ. Ура! – Belphegor

 Смежные вопросы

  • Нет связанных вопросов^_^