我能够使用斯坦福解析器和下面的java代码解析一个句子并获得解析分数
LexicalizedParser lp = LexicalizedParser.loadModel(
"edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"
);
lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"});
String sent = "My name is Rahul";
Tree parse = (Tree) lp.apply(sent);
double score = parse.score();
有没有办法使用斯坦福解析器给出的解析分数来检查句子的语法性?
谢谢。
最佳答案
与@kutschkem相反,我想说答案不是一个强硬的“不”,而是一个非常谨慎的“也许”。这绝对是一个活跃的研究领域。我见过(未发表的)工作表明长度归一化的解析分数(内部概率)表现出双峰分布,手动注释的“更差”句子通常落入较低的峰值,而“更好”的句子则落入较高的峰值。那是针对一个特定的语料库(推文,如果我没记错的话),我不知道它是否已在其他地方复制。
更一般地说,句法解析信息对于语法分类非常有帮助,但可能不是唯一的分类特征。您可以查看 Joel Tetrault 以及他在 ETS 合作的研究团队的一些工作。都柏林的 Jennifer Foster 也在这方面做了一些工作。他们的论文(及其引用书目)应该可以帮助您入门。
但是(不幸的是)构建一个有用的分类器并不像提取内部解析分数那么容易。
关于java - 使用斯坦福解析器给出的解析分数检查句子的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15779288/