我正在尝试从斯坦福大学获得新的NN Dependency Parser。根据他们提供的演示,这就是解析的完成方式:
import edu.stanford.nlp.process.DocumentPreprocessor;
import edu.stanford.nlp.trees.GrammaticalStructure;
import edu.stanford.nlp.parser.nndep.DependencyParser;
...
GrammaticalStructure gs = null;
DocumentPreprocessor tokenizer = new DocumentPreprocessor(new StringReader(sentence));
for (List<HasWord> sent : tokenizer) {
List<TaggedWord> tagged = tagger.tagSentence(sent);
gs = parser.predict(tagged);
// Print typed dependencies
System.out.println(Grammatical structure: " + gs);
}
现在,我要做的是将此对象gs
(类GrammaticalStructure
)作为来自Tree
的{{1}}对象进行投放。
我天真地尝试了简单的演员:
edu.stanford.nlp.trees.Tree
但是,这是不可能的(IDE会出错:无法从Tree t = (Tree) gs;
转换为GrammaticalStructure
)。
我该怎么做?
答案 0 :(得分:0)
您应该能够使用gs.root()
获取树。
根据{{3}},该方法返回一个树(实际上是TreeGraphNode
),表示语法结构。
您可以使用gs.root().pennPrint()
以人性化的方式打印该树。