构建一个修复拼写错误的自然语言模型

时间:2010-02-10 12:53:56

标签: java parsing nlp linguistics

关于如何构建这样的自然语言解析程序的书籍是什么:

input: I got to TALL you
output: I got to TELL you

input: Big RAT box
output: Big RED box

in: hoo un thum zend three
out: one thousand three

它必须具有允许预测哪些单词拼写错误的语言模型!

关于如何构建这样一个工具的最佳书籍是什么?

P.S。是否有免费的网络服务进行拼写检查?可能来自谷歌?..

5 个答案:

答案 0 :(得分:7)

彼得·诺维格写了一篇很棒的spell checker。也许这可以帮到你。

答案 1 :(得分:4)

您至少有三个选项

  1. 您可以编写一个理解语言的程序(即单词的含义)。这是今天研究的主题。当你可以购买一台足够快的电脑来运行这样一个程序时,可能会出现第一个结果(这可能是计算机变速比现在快1000倍的10年。)

  2. 使用庞大的语料库(文本文档)来训练Hidden Marcov Model

  3. 使用庞大的语料库并生成有关四胞胎 n-gram的统计数据,即出现N个单词的元组的频率。我没有一个方便的链接,但想法是有些词总是出现在其他词的上下文中。因此,当您将文本解析为4克并在数据库中查找并且找不到它时,可能是当前元组出现了问题。下一步是找到所有可能的匹配(其他4克具有较小的soundex或与当前匹配的距离相近)并尝试具有最高频率的匹配。

    Google拥有多种语言的数据,您可能会在Google实验室中找到更多关于此的数据。

  4. [编辑]经过一些谷歌搜索,我终于找到了链接:在this page,您可以购买英语1至5克,谷歌通过6张DVD在整个互联网上收集。

    谷歌搜索“谷歌拼写统计n-gram”也会出现一些有趣的链接。

答案 2 :(得分:2)

soundexwiki)是一个选项

答案 3 :(得分:2)

有很多用于自然语言处理的Java库可以帮助您实现拼写纠正器。但你问了一本书。 Christopher D. Manning和HinrichSchütze的Foundations of Statistical Natural Language Processing看起来是个不错的选择。第一作者是斯坦福大学教授,领导一个小组,负责自然语言处理,开发许多人使用的Java库和NLP资源。

答案 4 :(得分:1)

Dev Days London中,迈克尔斯帕克斯提出了一个完全为此编码的Python脚本。这非常简单!看看你能否在谷歌找到。也许这里有人会有链接。