看起来你的答案/错误分为正确的名称,真实的单词(我假设在词典中不存在)和真正的拼写错误。对“诚意”的虚假否定也表明资本化可能会将其抛弃,尽管你希望它足够聪明,不值得检查。多元不应该是一个问题,但对“神”的假阴性?它是否正确识别“上帝”?
既然您正在尝试检查拼写,为什么要间接检查它?什么是lp.getLexicon()。isKnown(w.word())在内部做什么?它不依赖于加载的语料库?为什么不加载字典,将案例规范化为大哈希,并进行“包含”检查?由于您处于NLP环境中,因此剥离专有名称也应该相当容易,特别是考虑到您不是在寻找100%的准确性。
使用解析器的词典的isKnown(String)方法作为拼写检查器不是解析器的可行用例。该方法是正确的:“false”表示在解析器训练的大约100万字的文本中没有看到这个单词(使用给定的大小写)。但是100万字只是不足以用数据驱动方式训练综合拼写检查器的文本。人们通常会使用至少两个数量级的文本,并且可能会增加一些聪明才能处理大写。解析器包含一些聪明性来处理训练数据中看不到的单词,但这并未反映在isKnown(String)方法返回的内容中。