我将使用斯坦福自然语言处理技术来检查文本样本的拼写准确性。这只是一个文本度量标准,而不是过滤器或其他东西,因此如果有一点偏差也没有关系,只要错误是一致的即可。
我的第一个想法是检查该单词是否为词汇表所知道的单词:
然而,这会产生相当多的误报:
有没有更好的方法来做这件事情?
我的第一个想法是检查该单词是否为词汇表所知道的单词:
private static LexicalizedParser lp = new LexicalizedParser("englishPCFG.ser.gz");
@Analyze(weight=25, name="Spelling")
public double spelling() {
int result = 0;
for (List<? extends HasWord> list : sentences) {
for (HasWord w : list) {
if (! lp.getLexicon().isKnown(w.word())) {
System.out.format("misspelled: %s\n", w.word());
result++;
}
}
}
return result / sentences.size();
}
然而,这会产生相当多的误报:
misspelled: Sincerity
misspelled: Sisyphus
misspelled: Sisyphus
misspelled: fidelity
misspelled: negates
misspelled: gods
misspelled: henceforth
misspelled: atom
misspelled: flake
misspelled: Sisyphus
misspelled: Camus
misspelled: foandf
misspelled: foandf
misspelled: babby
misspelled: formd
misspelled: gurl
misspelled: pregnent
misspelled: babby
misspelled: formd
misspelled: gurl
misspelled: pregnent
misspelled: Camus
misspelled: Sincerity
misspelled: Sisyphus
misspelled: Sisyphus
misspelled: fidelity
misspelled: negates
misspelled: gods
misspelled: henceforth
misspelled: atom
misspelled: flake
misspelled: Sisyphus
有没有更好的方法来做这件事情?
lp
是什么?请在问题中添加它的声明和构造函数。 - Ken Bloom