我敢肯定,你们当中有很多人会看过Google Wave演示。我特别想知道拼写检查技术。拼写检查器通过找出单词在上下文中出现的位置以提出这些建议的方式,具有多么大的革命性?

我以前没有看过这种技术,但是在其他地方有这种示例吗?
如果可以的话,是否有代码示例和相关文献资料?

最佳答案

我的2美分。鉴于事实证明translate.google.com是一个统计机器翻译引擎,并且来自A Halevy,P Norvig(Google研究总监)和F Pereira的“数据的不合理有效性”:我假设(假设)这是统计驱动的拼写检查器

运作方式:您会收集大量想要拼写检查的语言。您可以将该语料库作为短语表存储在经过调整的数据结构中(例如,如果必须对suffix arrays子集进行计数,则为n-grams),以跟踪n-gram的计数(这样估计的概率)。

例如,如果您的主体仅由以下组成:

I had bean soup last diner.

从此条目,您将生成以下二元语法(2个单词的集合):
I had, had bean, bean soup, soup last, last diner

和三元组(3个单词的集合):
I had bean, had bean soup, bean soup last, soup last diner

但是它们会受到统计相关性测试的限制,例如:我们可以假设三元组
I had bean

短语表将消失。

现在,拼写检查只是要看这个大的短语表并检查“概率”。 (您需要一个良好的基础架构,以将该词组表存储在高效的数据结构中并存储在RAM中,Google将其存储在translate.google.com中,为什么不这样做呢?它比统计机器翻译更容易。)

例如:您输入
I had been soup

在词组表中有一个
had bean soup

三元语法比您刚键入的概率高得多!实际上,您只需要更改一个单词(这是一个“不太远的”三字母组)就可以使三字母组的概率更高。应该有一个评估函数来权衡距离/概率。甚至可以根据字符来计算该距离:我们正在进行拼写检查,而不是机器翻译。

这只是我的假设意见。 ;)

关于spell-checking - 特定于上下文的拼写引擎,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/964828/

10-11 22:10
查看更多