Google怎么利用贝叶斯方法,实现"拼写检查"?

2019 年 5 月 9 日 七月在线实验室


Google怎么利用贝叶斯方法,实现"拼写检查"?

当你不小心输入一个不存在的单词时,搜索引擎会提示你是不是要输入某一个正确的单词,比如当你在Google中输入“Julw”时,系统会猜测你的意图:是不是要搜索“July”

这叫做拼写检查。
根据谷歌一员工写的文章显示,Google的拼写检查基于贝叶斯方法。请说说的你的理解,具体Google是怎么利用贝叶斯方法,实现"拼写检查"的功能。


析:

用户输入一个单词时,可能拼写正确,也可能拼写错误。如果把拼写正确的情况记做c(代表correct),拼写错误的情况记做w(代表wrong),那么"拼写检查"要做的事情就是:在发生w的情况下,试图推断出c。


换言之:已知w,然后在若干个备选方案中,找出可能性最大的那个c,也就是求的最大值。


而根据贝叶斯定理,有:

由于对于所有备选的c来说,对应的都是同一个w,所以它们的P(w)是相同的,因此我们只要最大化即可。


其中P(c)表示某个正确的词的出现"概率",它可以用"频率"代替。


如果我们有一个足够大的文本库,那么这个文本库中每个单词的出现频率,就相当于它的发生概率。

某个词的出现频率越高,P(c)就越大。比如在你输入一个错误的词“Julw”时,系统更倾向于去猜测你可能想输入的词是“July”,而不是“Jult”,因为“July”更常见。


P(w|c)表示在试图拼写c的情况下,出现拼写错误w的概率。为了简化问题,假定两个单词在字形上越接近,就有越可能拼错,P(w|c)就越大。


举例来说,相差一个字母的拼法,就比相差两个字母的拼法,发生概率更高。你想拼写单词July,那么错误拼成Julw(相差一个字母)的可能性,就比拼成Jullw高(相差两个字母)。

值得一提的是,一般把这种问题称为“编辑距离”,参见博客中的这篇文章。


所以,我们比较所有拼写相近的词在文本库中的出现频率,再从中挑出出现频率最高的一个,即是用户最想输入的那个词。具体的计算过程及此方法的缺陷请参见这里。

END

相关课程推荐

火热报名中

原价:18000元

前180人特惠价:15599 

且两人及两人以上组团还能各减500元


报名加送18VIP

[包2018全年在线课程全年GPU]


咨询/报名/组团可添加微信客服

julyedukefu_02


扫码有惊喜,还能为自己砍价哦


他用机器学习减肥20斤!程序员必看,你想不到的机器学习妙用

5招解决拖延症,告别深夜加班,效率提升10倍!


后台回复:“100”   免费领【机器学习面试100题

后台回复:“干货” 免费领【全体系人工智能学习资料

后台回复:“领资料” 免费领【NLP工程师必备干货资料


“阅读原文”你来决定未来的内容
你在看吗?
登录查看更多
6

相关内容

贝叶斯方法是贝叶斯学习的基础,它提供了一种计算假设概率的方法,这种方法是基于假设的先验概率、给定假设下观察到不同数据的概率以及观察到的数据本身而得出的。其方法为,将关于未知参数的先验信息与样本信息综合,再根据贝叶斯公式,得出后验信息,然后根据后验信息去推断未知参数的方法。
最新《自动微分手册》77页pdf
专知会员服务
100+阅读 · 2020年6月6日
【斯坦福】凸优化圣经- Convex Optimization (附730pdf下载)
专知会员服务
220+阅读 · 2020年6月5日
自回归模型:PixelCNN
专知会员服务
26+阅读 · 2020年3月21日
机器学习速查手册,135页pdf
专知会员服务
338+阅读 · 2020年3月15日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【机器学习课程】Google机器学习速成课程
专知会员服务
164+阅读 · 2019年12月2日
面试题:Word2Vec中为什么使用负采样?
七月在线实验室
46+阅读 · 2019年5月16日
面试题:预训练方法 BERT和OpenAI GPT有什么区别?
七月在线实验室
15+阅读 · 2019年5月15日
树形结构为什么不需要归一化?
七月在线实验室
8+阅读 · 2019年4月30日
BAT机器学习面试题1000题(376~380题)
七月在线实验室
9+阅读 · 2018年8月27日
深度学习面试100题(第81-85题)
七月在线实验室
16+阅读 · 2018年8月6日
深度学习面试100题(第76-80题)
七月在线实验室
6+阅读 · 2018年8月3日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
【深度】从朴素贝叶斯到维特比算法:详解隐马尔科夫模型
算法与数学之美
7+阅读 · 2017年11月25日
如何编写一个拼写纠错器?
Python开发者
4+阅读 · 2017年11月6日
Financial Time Series Representation Learning
Arxiv
10+阅读 · 2020年3月27日
Arxiv
15+阅读 · 2020年2月6日
Arxiv
45+阅读 · 2019年12月20日
Arxiv
35+阅读 · 2019年11月7日
Arxiv
7+阅读 · 2018年9月27日
VIP会员
相关VIP内容
最新《自动微分手册》77页pdf
专知会员服务
100+阅读 · 2020年6月6日
【斯坦福】凸优化圣经- Convex Optimization (附730pdf下载)
专知会员服务
220+阅读 · 2020年6月5日
自回归模型:PixelCNN
专知会员服务
26+阅读 · 2020年3月21日
机器学习速查手册,135页pdf
专知会员服务
338+阅读 · 2020年3月15日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【机器学习课程】Google机器学习速成课程
专知会员服务
164+阅读 · 2019年12月2日
相关资讯
面试题:Word2Vec中为什么使用负采样?
七月在线实验室
46+阅读 · 2019年5月16日
面试题:预训练方法 BERT和OpenAI GPT有什么区别?
七月在线实验室
15+阅读 · 2019年5月15日
树形结构为什么不需要归一化?
七月在线实验室
8+阅读 · 2019年4月30日
BAT机器学习面试题1000题(376~380题)
七月在线实验室
9+阅读 · 2018年8月27日
深度学习面试100题(第81-85题)
七月在线实验室
16+阅读 · 2018年8月6日
深度学习面试100题(第76-80题)
七月在线实验室
6+阅读 · 2018年8月3日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
【深度】从朴素贝叶斯到维特比算法:详解隐马尔科夫模型
算法与数学之美
7+阅读 · 2017年11月25日
如何编写一个拼写纠错器?
Python开发者
4+阅读 · 2017年11月6日
相关论文
Top
微信扫码咨询专知VIP会员