nlp - Stanford NLP注释排名或者得分

  显示原文与译文双语对照的内容
0 0

我正在使用 Stanford CoreNLP管道,从SentencesAnnotation获得TreeAnnotation和 BasicDependenciesAnnotation 。
我正在寻找一种方法来确定如何确定POS标签和依赖结构的分析器。

我记得早期我正在修补斯坦语的for库,我看到了一些不同排名的树。 我无法从解析器或者管道中找到有关如何获取这里信息的信息。

"DependencyScoring"类似乎正在运行"typeddependency",不是管道作为注释过程的一部分生成的,只是我可以以告诉。

编辑:代码详细信息:

Annotation document = new Annotation("This is my sentence");
pipeline.annotate(document); 
List<CoreMap> sentences = document.get(SentencesAnnotation.class);
...
Tree tree = sentence1.get(TreeAnnotation.class);
SemanticGraph dependencies = sentence1.get(CollapsedCCProcessedDependenciesAnnotation.class);
时间:原作者:4个回答

0 0

如果使用默认的CoreNLP管道( 。例如,带有 parse 注释器,而不是 depparse ),那么看到的依赖性解析来自一个句子分析的确定性转换。 这里最好的"评分"是查看候选的constituency解析,最终产生依赖解析( ( 转换后) ) 。

但是,你需要中断CoreNLP管道来完成这个特定的工作。 如果你有一个 LexicalizedParser 实例,那么你就可以得到 k 最好的解析:

List<CoreLabel> mySentence =.. .
LexicalizedParser parser = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz");
ParserQuery pq = parser.parserQuery();
if (pq.parse(mySentence)) {
//Get best parse and associated score
 Tree parse = pq.getBestPCFGParse();
 double score = pq.getPCFGScore();
//Print parse
 parse.pennPrint();
//----
//Get collection of best parses
 List<ScoredObject<Tree>> bestParses = pq.getBestPCFGParses();
//----
//Convert a constituency parse to dependency representation
 GrammaticalStructure gs = parser.treebankLanguagePack()
. grammaticalStructureFactory().newGrammaticalStructure(parse);
 List<TypedDependency> dependencies = gs.typedDependenciesCCprocessed();
 System.out.println(dependencies);
}

相关的Javadoc:

( NB: 未测试的代码,但这应该有效)

原作者:
...