读数学之美——统计语言模型(马尔科夫)

本文介绍了马尔科夫模型在翻译软件、搜索引擎和输入法中的应用。通过统计语言资料,计算条件概率来预测下一个词,实现输入法联想。马尔科夫模型遵循‘已知现在,未来独立于过去’的假设,并讨论了其阶次选择、零概率问题以及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为在学校做的东西用到了HSMM(隐式半马尔科夫模型),所以对马尔科夫也算是不少接触,但在看吴军的《数学之美》之后,我才知道马尔科夫在输入法等软件上的应用。


翻译软件、搜索引擎、输入法软件,这些都是我们常常使用到的工具。有没有好奇过百度、谷歌是怎么把英文翻译成中文的?我们在打字的时候,输入前面的字,输入法是如何联想到后面的字的(而且正确率居然还这么高)?


对于翻译软件,也许会觉得:是不是计算机理解了我输进去的英文的含义,然后再翻译成中文的?

一开始科学家们也是这么想的,他们花了大量的时间来让计算机理解人类语言,事实证明,效果并不好。


于是,一个新的想法就出现了。也许计算机根本就不需要理解人类语言,它只要能够给出正确的结果就好了。看起来有点不可思议,好像不太可行吧,不过事实上就是这样。(这让我想到我上大学之后,很多课都没有理解过老师在讲些什么,只要考试前刷一刷历年题,会考试就好了。)

就像不理解上课内容,通过考前刷题来考试一样。计算机也通过对大量的语言资料进行分析,通过统计分析,来估计我们接下来要输些什么,输入法联想就这么出现了。


还是有点抽象对不对?现在我们来想象一下下面的这个场景:

假设我们自己就是一个输入法软件。这个时候用户输入了一个字——“睡”,我们来大胆联想一下他下一个字会输入什么。

我猜这个时候大家的答案都一样,下一个他很可能输入——“觉”。

为什么我们会觉得他下一个字很可能输入的是——“觉”呢?因为我们在日常生活中发现,在“睡”这个字后面跟的一般都是“觉”。

现在的输入法软件就是这么做的:他搜集很多语言资料,发现在“睡”这个字后面,出现的下一个字很可能是“觉”,于是就把“觉”作为联想词呈现出来。


具体是怎么做的呢?

假设计算机现在了很多很多语言资料,它把其中出现的所有“睡”字及其它之后的那一个字找出来,当语料非常多的时候,根据大数定律,我们可以得到:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值