Parsing 在Stanford解析器中将树转换为SemanticGraph

Parsing 在Stanford解析器中将树转换为SemanticGraph,parsing,stanford-nlp,Parsing,Stanford Nlp,我想在Stanford解析器中将树转换为SemanticGraph,如下所示: LexicalizedParser lp = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"); LexicalizedParserQuery lpq=lp.lexicalizedParserQuery(); String sentence="This is a sentence."; List

我想在Stanford解析器中将树转换为SemanticGraph,如下所示:

LexicalizedParser lp  = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz");
LexicalizedParserQuery lpq=lp.lexicalizedParserQuery();

String sentence="This is a sentence.";

List<CoreLabel> tokenizedSentence = tokenizerFactory.getTokenizer(new StringReader(sentence)).tokenize();
lpq.parse(tokenizedSentence);
Tree depTree = lpq.getBestParse();
SemanticGraph semanticGraph = ParserAnnotatorUtils.generateUncollapsedDependencies(depTree);
LexicalizedParser lp=LexicalizedParser.loadModel(“edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz”);
LexicalizedParserQuery lpq=lp.LexicalizedParserQuery();
字符串句子=“这是一个句子。”;
List tokenizedstation=tokenizerFactory.getTokenizer(新的StringReader(句子)).tokenize();
解析(标记化句子);
Tree-depTree=lpq.getBestParse();
SemanticGraph SemanticGraph=ParserAnnotatorUtils.generateUncollapsedDependencies(depTree);

ParserAnnotatorUtils.generateUncollapsedDependencies(depTree)
适用于2.0.4版。但它在3.5.2版上不起作用。

您可以尝试以下方法:

Tree tree = ...
GrammaticalStructureFactory gsf = new UniversalEnglishGrammaticalStructureFactory();
SemanticGraph dependencyGraph = SemanticGraphFactory.generateCollapsedDependencies( gsf.newGrammaticalStructure(tree), GrammaticalStructure.Extras.NONE );