斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”

摘要:
SpellingErrorCorrection:自动纠错,如把“hte”自动校正为“the”,或者给出一个最可能的拼写建议,甚至一个拼写建议列表。2)Non-word拼写错误Spellingerrordetection:任何不被词典所包含的word均被当作spellingerror,识别准确率依赖词典的规模和质量。3)Real-word拼写错误Spellingerrordetection:每个word都作为spellingerrorcandidate。Spellingerrorcorrection:从发音和拼写等角度,查找与word最近似的words集合作为拼写建议,常见的方法有Highestnoisychannelprobability和Classifier。另外,键盘上临近的按键更容易引入spellingerrorpair,据此可以对转移矩阵进行加权。

一、课程介绍

斯坦福大学于2012年3月在Coursera启动了在线自然语言处理课程,由NLP领域大牛Dan Jurafsky 和 Chirs Manning教授授课:
https://class.coursera.org/nlp/

以下是本课程的学习笔记,以课程PPT/PDF为主,其他参考资料为辅,融入个人拓展、注解,抛砖引玉,欢迎大家在“我爱公开课”上一起探讨学习。

课件汇总下载地址:斯坦福大学自然语言处理公开课课件汇总

二、拼写纠错(Spelling Correction)

1)任务定义

拼写纠错(Spelling Correction),又称拼写检查(Spelling Checker),往往被用于字处理软件、输入法和搜索引擎中,如下所示:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第1张

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第2张斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第3张

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第4张

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第5张

拼写纠错一般可以拆分成两个子任务:

  • Spelling Error Detection:按照错误类型不同,分为Non-word Errors和Real-word Errors。前者指那些拼写错误后的词本身就不合法,如错误的将“giraffe”写成“graffe”;后者指那些拼写错误后的词仍然是合法的情况,如将“there”错误拼写为“three”(形近),将“peace”错误拼写为“piece”(同音),将“two”错误拼写为“too”(同音)。
  • Spelling Error Correction:自动纠错,如把“hte”自动校正为“the”,或者给出一个最可能的拼写建议,甚至一个拼写建议列表。

2)Non-word拼写错误

  • Spelling error detection:任何不被词典所包含的word均被当作spelling error,识别准确率依赖词典的规模和质量。
  • Spelling error correction:查找词典中与error最近似的word,常见的方法有Shortest weighted edit distance和Highest noisy channel probability。

3)Real-word拼写错误

  • Spelling error detection:每个word都作为spelling error candidate。
  • Spelling error correction:从发音和拼写等角度,查找与word最近似的words集合作为拼写建议,常见的方法有Highest noisy channel probability和Classifier。

4)基于Noisy Channel Model的拼写纠错

Noisy Channel Model即噪声信道模型,或称信源信道模型,这是一个普适性的模型,被用于语音识别、拼写纠错、机器翻译、中文分词、词性标注、音字转换等众多应用领域。其形式很简单,如下图所示:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第6张

噪声信道试图通过带噪声的输出信号恢复输入信号,形式化定义为:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第7张

应用于拼写纠错任务的流程如下:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第8张

noisy word(即splling error)被看作original word通过noisy channel转换得到,现在已知noisy word(用x表示)如何求得最大可能的original word(用w表示),公式如下:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第9张

P(w)为先验概率,P(x|w)为转移概率,二者可以基于训练语料库建立语言模型和转移矩阵(又称error model,channel model)得到。

下面通过一个Non-word spelling error correction的例子加以解释:

给定拼写错误“acress”,首先通过词典匹配容易确定为“Non-word spelling error”;然后通过计算最小编辑距离获取最相似的candidate correction,需要特别说明的是,这里的最小编辑距离涉及四种操作:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第10张

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第11张

据统计,80%的拼写错误编辑距离为1,几乎所有的拼写错误编辑距离小于等于2,基于此,可以减少大量不必要的计算。

通过计算最小编辑距离获取拼写建议候选集(candidate w),此时,我们希望选择概率最大的w作为最终的拼写建议,基于噪声信道模型思想,需要进一步计算P(w)和P(x|w)。

通过对语料库计数、平滑等处理可以很容易建立语言模型,即可得到P(w),如下表所示,计算Unigram Prior Probability(word总数:404,253,213)

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第12张

接下来,可以基于大量<misspelled word x=x1 x2 x3 ... xm, correct word w=w1 w2 w3 ... wn>pair计算del、ins、sub和trans四种转移矩阵,然后求得转移概率P(x|w):

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第13张

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第14张

计算P("acress"|w)如下:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第15张

计算P(w)P(“acress”|w)如下:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第16张

“across”相比其他candidate可能性更大。

上面建立语言模型时采用了unigram,也可以推广到bigram,甚至更高阶,以较好的融入上下文信息。

如句子“a stellar andversatileacresswhosecombination of sass and glamour…”,计算bigram为:

P(actress|versatile)=.000021 P(whose|actress) = .0010

P(across|versatile) =.000021 P(whose|across) = .000006

则联合概率为:

P(“versatile actress whose”) = .000021*.0010 = 210 x10-10

P(“versatile across whose”) = .000021*.000006 = 1 x10-10

“actress”相比“across”可能性更大。

5)Real-word拼写纠错

Kukich(1992)指出有25%~40%的拼写错误都属于Real-word类型,与Non-word类型相比,纠错难度更大,因为句子中的每个word都被当作待纠错对象。通常,解决方法分两步:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第17张

例如,给定句子S=w1,w2,w3,…,wn,为每个wi生成candidate set,如下:

  • Candidate(w1) = {w1, w’1 , w’’1 , w’’’1 ,…}
  • Candidate(w2) = {w2, w’2 , w’’2 , w’’’2 ,…}
  • ... ...
  • Candidate(wn) = {wn, w’n , w’’n , w’’’n ,…}

最后,选择概率最大的序列W为自动纠错后的句子,与中文分词、音字转换等应用相同,可以表示成词网格形式,转化为HMM的解码过程:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第18张

为了简化起见,一般规定一个句子中最多有一个word存在splling error(事实上,所出现的情况也的确如此)。

6)应用

实际的拼写纠错系统一般会遵守如下HCI(Human Computer Interface)准则:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第19张

根据应用场景不同(Domain Sensitivity),需要对语言模型进行特别的处理,如:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第20张

除了字面上的拼写错误,还有可能同音导致,所以,有些系统将“error model”转化为“Phonetic error model”解决拼写纠错问题。

另外,键盘上临近的按键更容易引入spelling error pair,据此可以对转移矩阵进行加权。

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第21张

我们还可以将拼写纠错问题转化为分类问题,通过构建训练语料库,抽取features,训练分类模型,预测新实例等一系列过程解决,如下:

斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第22张

三、参考资料

  1. Lecture Slides:Spelling Correction
  2. http://en.wikipedia.org
  3. Kukich, Karen. 1992.Techniques for automatically correcting words in text.ACM Computing Surveys24(4):377-437.
斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”第23张时间:2012年 5月 27日分类:自然语言处理作者:fandywang(2,110基本)
编辑2012年 5月 27日作者:fandywang

免责声明:文章转载自《斯坦福大学自然语言处理第五课“拼写纠错(Spelling Correction)”》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# Html网页生成图片解决方案1Burp插件开发--应用篇下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

哈尔滨工业大学计算机学院-自然语言处理-课程总结

1. 前言 自然语言处理是关毅老师的研究生课程。 本博客仅对噪声信道模型、n元文法(N-gram语言模型)、维特比算法详细介绍。 其他的重点知识还包括概率上文无关文法(PCFG)、HMM形式化定义、词网格分词等等,比较简单,不做赘述。 2. 噪声信道模型 2.1 噪声信道模型原理 噪声信道模型的示意图如下所示: 该模型的目标是通过有噪声的输出信号试...

几本自然语言处理入门书

来自:“我爱自然语言处理”:http://www.52nlp.cn/ 如果你刚接触自然语言处理并对她感兴趣,最好读几本这方面的书籍,除了能让你知道自然语言处理各个领域是干什么的外,还能培养一下NLP的感觉。以下四本书是我读研期间阅读和接触过的,如果您还有好书推荐,欢迎补充。 1、 《自然语言处理综论》(Speech and Language Proces...

自然语言处理(nlp)比计算机视觉(cv)发展缓慢,而且更难!

https://mp.weixin.qq.com/s/kWw0xce4kdCx62AflY6AzQ 1.抢跑的nlp nlp发展的历史非常早,因为人从计算机发明开始,就有对语言处理的需求。各种字符串算法都贯穿于计算机的发展历史中。伟大的乔姆斯基提出了生成文法,人类拥有的处理语言的最基本框架,自动机(正则表达式),随机上下文无关分析树,字符串匹配算法KMP,...

【美国大学生数学建模比赛】2020C题(总结和参赛论文)百度云请自取

好消息:相关论文word版本已经上传至百度云,请三连后自取哈! 链接: https://pan.baidu.com/s/1k5V7D_PQ_tmb6kAmg-NhVg 密码: kj6u 【MCM】2020C题(总结和论文分享) 前言:QAQ ,数学建模美赛竟然在两个多月的疫情中结束了,美赛的这段时间效率属实高,仿佛是这两个月没有学习一下子迸发出的潜力一...

[转]几个常见的语音交互平台的简介和比较

1.概述 最近做了两个与语音识别相关的项目,两个项目的主要任务虽然都是语音识别,或者更确切的说是关键字识别,但开发的平台不同, 一个是windows下的,另一个是android平台的,于是也就选用了不同的语音识别平台,前者选的是微软的Speech API开发的,后者则选用 的是CMU的pocketsphinx,本文主要将一些常见的语音交互平台进行简单的介绍...

pyltp环境的搭建

1.简介     1.1    LTP     语言技术平台 (Language Technology Platform)中文语言处理系统 ,哈工大社会计算与信息检索研究中心独立研发,(官网)。2011年,LTP正式开源。 LTP提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。从应用角度来看,LTP...