在斯坦福解析器中将树转换为语义图

Convert a Tree to SemanticGraph in Stanford parser

我想在 Stanford Parser 中将树转换为语义图,如下所示:

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);

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 );