2010-02-10 54 views
9

什么是关于如何建立一个自然语言解析程序是这样的书籍自然语言模型:建设,修复拼写错误

 
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.是否有免费的Web服务拼写检查?从谷歌可能?..

+5

+1为拼写错误“拼写错误”。这是一个笑话,对吧? – APC 2010-02-10 13:00:11

+1

@APC哈哈哈还挺。快速打字,但它展示了这些工具是如何有用的。 – EugeneP 2010-02-10 13:06:06

+0

+1,在Google Wave中使用Spelly!:P – 2010-02-10 13:11:35

回答

7

彼得·诺维格写了一个了不起的spell checker。也许这可以帮助你。

+0

刚刚打算链接:-) +1 – 2010-02-10 12:58:57

+0

酷脚本。看起来好像直接将它扩展为单词bigrams或trigrams,如果你有选择语言的正确文本语料库的话。 – 2010-02-10 13:10:29

+0

的确,这是我在下面的帖子中试图记住的脚本。 +1 – 2010-02-10 14:02:26

2

soundexwiki)是一种选择

+0

正如George Bernard Shaw(其中许多人)总是抱怨的那样,事情拼写方式和发音方式之间经常存在很大的分歧。至少用英语。 SOUNDEX()可能是意大利语的一种有效方法。 – APC 2010-02-10 13:47:36

+0

这是Delphi RTL中的一种,它非常不可预知,但相当酷 - 对于喜欢写fenetiklee err ..发音的人来说很好。 – 2010-02-10 15:32:47

1

Dev Days London,迈克尔·斯帕克斯提出了Python脚本正是编码为。这非常简单!看看您是否可以在Google中找到。也许这里有人会有链接。

+3

根据MetaSO上的DevDays主题,Michael Sparks提供的脚本是已经提到的Peter Norvig脚本:http://meta.stackexchange.com/questions/27859/devdays-london-can-i-get-hold -of-the-presentation-material/28522#28522 – APC 2010-02-10 13:15:24

+0

是的,这是正确的,谢谢 – 2010-02-10 14:01:46

4

你至少有三种选择

  1. 您可以编写一个程序,明白的语言(即一个词是什么意思)。这是今天研究的一个话题。当你可以购买一台速度足够快的计算机来运行这样的程序时(这可能是10年后计算机已经比现在快1000倍),预计会有第一个结果。

  2. 使用一个巨大的文集(文本文件),以培养Hidden Marcov Model

  3. 使用庞大的语料库并生成有关四联码 n-grams的统计信息,即N个词的元组出现的频率。我没有这方面的链接,但这个想法是,有些词总是出现在其他词的上下文中。所以,当你将文本解析为4-gram并在数据库中查找并找不到时,可能会发现当前元组有问题。下一步是找到所有可能的匹配(其他4克,其中有一个小的soundex或类似的距离与当前的),并尝试使用最高频率。

    谷歌有这个数据相当多的语言,你会发现更多的有关这个谷歌实验室。

[编辑]一些google搜索后,我终于找到了链接:在this page,你可以买英语1到谷歌收集到整个互联网上的DVD 6 5克。

谷歌搜索“谷歌拼写统计正克”也将开启了一些有趣的环节。

+0

Google会与我分享这些数据吗? ;) – EugeneP 2010-02-10 13:11:53

+0

我这么认为。我必须再次找到链接。 – 2010-02-10 13:41:56

+0

谢谢你提供了一个完整而有趣的答案。 – EugeneP 2010-02-25 08:23:26

2

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

相关问题