拼写检查程序使用语言模型

时间:2014-04-14 08:33:17

标签: machine-learning nlp spell-checking hunspell

我寻找可以使用语言模型的拼写检查器。

我知道有许多好的拼写检查程序,例如Hunspell,但是我认为它与上下文无关,所以它只是基于令牌的拼写检查程序。

例如,

I lick eating banana

所以这里基于令牌的级别根本没有拼写错误,所有单词都是正确的,但句子中没有任何意义。但是" smart"拼写检查员会认识到"舔"实际上是正确的文字,但可能是作者的意思"喜欢"然后句子中有一个含义。

我在特定领域有一堆正确写的句子,我想训练" smart"拼写检查器识别拼写错误并学习语言模型,这样它就会认识到即使是思考"舔"写得不错,但作者的意思是"喜欢"。

我没有看到Hunspell有这样的功能,你能否建议任何其他拼写检查器,可以这样做。

2 个答案:

答案 0 :(得分:1)

见拉斐尔·穆奇的"The Design of a Proofreading Software Service"。他描述了他的方法的数据源(维基百科,博客等)和算法(基本上比较概率)。该系统的来源After the Deadline已经可用,但它不再被主动维护。

答案 1 :(得分:0)

一种方法是通过基于字符的语言模型(而不是基于单词的n-gram模型)。请参阅我对Figuring out where to add punctuation in bad user generated content?的回答。您描述的问题不同,但您可以应用类似的解决方案。而且,正如我在那里所指出的,LingPipe教程是开发概念验证实现的一种非常简单的方法。

一个重要的区别 - 为了捕获更多上下文,您可能需要训练比我建议的标点符号恢复更大的n-gram模型。也许15-30个字符?你必须在那里试验一下。