9

关于如何构建这样的自然语言解析程序的书籍有哪些:

输入:我要高大你
输出:我要告诉你

输入:大老鼠盒
输出:大红盒子

在: hoo un thum zend 三
出:一千三

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

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

ps 是否有免费的网络服务来进行拼写检查?也许来自谷歌?...

4

5 回答 5

7

Peter Norvig 写了一个了不起的拼写检查器。也许这可以帮助你。

于 2010-02-10T12:58:12.933 回答
4

你至少有三个选择

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

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

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

    谷歌有相当多语言的数据,你可能会在谷歌实验室找到更多关于这方面的信息。

[编辑] 经过一番谷歌搜索,我终于找到了链接:在这个页面上,你可以购买谷歌在整个互联网上收集的 6 张 DVD 上的 1 到 5 克英语。

谷歌搜索“google spelling statistics n-grams”也会找到一些有趣的链接。

于 2010-02-10T13:07:03.400 回答
2

soundex ( wiki ) 是一种选择

于 2010-02-10T12:57:39.317 回答
2

有很多用于自然语言处理的 Java 库可以帮助您实现拼写校正器。但你问的是一本书。Christopher D. Manning 和 Hinrich Schütze的《统计自然语言处理基础》看起来是个不错的选择。第一作者是斯坦福大学教授,领导一个团队进行自然语言处理和开发许多人使用的 Java 库和 NLP 资源。

于 2010-02-10T13:23:27.033 回答
1

Dev Days London中,Michael Sparks 展示了一个专门为此编码的 Python 脚本。非常简单!看看你能不能在谷歌上找到。也许这里有人会有链接。

于 2010-02-10T12:59:38.983 回答