对于一个项目,我需要一个句子的依赖解析树。使用斯坦福NLP非常有效:
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
// ...
public void parse(String sentence) {
Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, parse");
Annotation document = new Annotation(sentence);
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(SentencesAnnotation.class);
CoreMap firstSentence = sentences.get(0);
SemanticGraph dependencies = firstSentence.get(CollapsedCCProcessedDependenciesAnnotation.class);
// ...
}
但是我现在还需要其他可能的解析树,即 k-best parse trees 。我可以稍后挑出最有意义的树。我环顾四周,但没有在网上找到使用Java API执行此操作的任何代码。
有人做过这样的事吗?
干杯!