维特比算法,现代数字通信中使用最频繁的算法,也是很多自然语言处理中的解码算法。由维特比大牛创建,今天的CDMA 3G通信标准就是由维特比创建的高通公司制定的。厉害的不行。维特比算法是一种特殊的但应用最广的动态规划算法。利用动态规划可以解决任何一个图中的最短路径问题,而维特比算法则是针对一种特殊的图——篱笆网络的有向图的最短路径问题提出的。之所以重要,是因为凡是使用隐马尔可夫模型描述的问题都可以用它来解码。

以拼音转汉字为例:

上图是一个很简单的隐马尔科夫模型,没有状态跳跃,也没有状态自环的问题。这个地方要说明一下,如果x认为是拼音的话,那么y就是对应的x的汉字,但是y并不是确定的。因为同一拼音可以有多种可能性的汉字,因此我们可以认为y输出的是一个关于拼音可能汉字字典的分布。这样我们可以假设xij为状态xi的第j个可能性取值,也就是y的取值。从而我们可以把上图转成如下篱笆图:

也就是每一列代表xi的可能性取值,x1与x2之间的连接,代表两个汉字之间存在的关系。从开始状态到最终状态可以产生很多条路径,每一条路径都代表一个可能的汉字序列。我们需要做的就是找出可能性最大的汉字序列。我们可以使用前面的公式计算出所有路径概率,选取最大的。但显然这些组合数非常多,使得序列状态数呈指数增长模式。因此需要一个最好能跟状态数成正比的算法。而维特比算法就于1967年提出。维特比算法具有如下特点:

学过图最短路径算法的很容易理解该算法。篱笆图有个特点,那就是不管最短路径是哪条,它必须通过篱笆图的每一列,也就是当i确定时,最短路径肯定要通过xij中的某一个j。这就有一个优点,就是我们只需要把每个xi中对应的所有j取值的当前最短路径记录下来,就可以在xi+1状态时很容易计算出xi+1状态所对应的j取值的最短路径计算出来。流程如下:

这种算法还有个优点就是解码过程是实时的。每打入一个拼音,算法就是解析出在该拼音xi下当前所有可能的最短路径。

数学之美:维特比和维特比算法相关推荐

  1. 数学之美 系列八-- 贾里尼克的故事和现代语言处理

    数学之美 系列八-- 贾里尼克的故事和现代语言处理 读者也许注意到了,我们在前面的系列中多次提到了贾里尼克这个名字.事实上,现代语音识别和自然语言处理确实是和它的名字是紧密联系在一起的.我想在这回的系 ...

  2. 数学之美 系列二 -- 谈谈中文分词

    数学之美 系列二 -- 谈谈中文分词 2006年4月10日 上午 08:10:00 发表者: 吴军, Google 研究员 谈谈中文分词 ----- 统计语言模型在中文处理中的一个应用 上回我们谈到利 ...

  3. 《数学之美》-吴军 读书笔记

    从吴军的<数学之美>找到了伽莫夫的<从一到无穷大>,前段时间先整理了<从一到无穷大>的笔记.现在整理下<数学之美>以巩固下. 近段时间AlfaGo 与人 ...

  4. 《数学之美》——吴军#读书笔记

    <数学之美> 吴军 第一章:文字和语言vs数字和信息 主要内容概述:"语言和数学的产生都是为了同一个目的--记录和传播信息".科技是伴随着人类的不断进化而发展进步的.信 ...

  5. 《数学之美》读后感:看数学之美,悟技术之道

    一.关于此书 记得几年前看完了<浪潮之巅>之后,便知道了吴军老师还有另外一本非常出名的著作<数学之美>,但是一直没有列入计划阅读.直到2016年我看完了<硅谷之谜> ...

  6. 吴军《数学之美》第二版阅读整理

    吴军的<数学之美>第一版于2012年出版,并获得国家图书馆第八届文津图书奖.我读的是第二版(再版),作者在第一版的基础上又增加了一些内容. 作者大有来头(IT行业),吴军博士,毕业于清华大 ...

  7. ​ 每周一书《数学之美 第二版》分享!

    内容简介 几年前,"数学之美"系列文章原刊载于谷歌黑板报,获得上百万次点击,得到读者高度评价.读者说,读了"数学之美",才发现大学时学的数学知识,比如马尔可夫链 ...

  8. 【读书笔记】《数学之美》——一个好方法在形式上总是简单的

    数学之美 作者简介 内容简介 摘抄语录 收获感悟 牛顿曾说"(人们)发觉真理在形式上从来是简单的,而不是复杂和含混的."数学的美妙之处在于它对自然界史诗的总结和归纳,也是抽象思考的 ...

  9. 【读书笔记】数学之美

    数学之美 00 计算复杂度 算法之父:高德纳 算法好坏的的度量不再和问题大小有关 算法复杂度 多项式复杂度函数:P问题(Polynomial) 非多项式函数:NP问题(Non-polynomial) ...

  10. 《数学之美》中的模型及启示总结

    目录 初衷 文章编排 章节总结 第1章 文字和语言 vs 数字和信息 第2章 自然语言处理--从规律到统计 第3章 统计语言模型 第4章 谈谈中文分词 第5章 隐含马尔可夫模型 第6章 信息的度量和作 ...

最新文章

  1. 更换主版之后远程管理卡恢复操作
  2. Linux 基础命令——比较两个文件内容的不同
  3. 救命!我的电子邮件发不到 500 英里以外!
  4. java怎么导入图片_iPad Pro插U盘不能导入图片?技术宅教你怎么做
  5. LeetCode 559. N叉树的最大深度
  6. 即时通讯学习笔记004---即时通讯服务器种类认知
  7. 智慧楼宇管理运营端app、运维管理、工单管理、报修管理、维保管理、巡检查询、巡检管理、能源管理、维保查询、智慧社区、巡检统计、工单统计、能源管理、智能楼宇、设备监控、智能社区、系统运营、楼宇运维小程序
  8. Eclipse 常用快捷键 (动画讲解)--转载
  9. CSS文字选中样式和文字闪烁效果
  10. 一周成python大神_2个月把你变成selenium+Python大神,上海悠悠带你飞!
  11. 什么是python语言的解释性?
  12. 将活跃天数转化为等级,输入等级查询活跃天数
  13. tp5 JWT生成token验证接口安全、防止高频请求
  14. 《一封神气的情书》李敖
  15. 回溯算法——好的开始
  16. 微信扫码提示在浏览器中打开的遮罩代码解决方式
  17. 原生PHP如何获取当前页面URL
  18. PhotoshopCS5无法使用扫描仪的故障
  19. STM8L101活跃停机(AWU)编程教学
  20. xctf攻防世界 MISC高手进阶区 Reverse-it

热门文章

  1. 分享一个普通程序员的“沪漂”六年的历程以及感想
  2. Qt LINK : fatal error LNK1104: 无法打开文件“xxx.lib”
  3. Bluetooth协议学习
  4. 怎么调用接口发国际验证码和通知短信?
  5. 栈(Stack)的应用—试探回溯法:八皇后问题、迷宫寻径
  6. 程序中的地址转换(虚拟地址-物理地址)
  7. 无法打开模块文件“C:\Users\fkg\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.vb”系统找不到指定文件
  8. Maven中scope标签详解
  9. android 代码添加账户,Android应用程式在addAccountExplicitly(帐户,密码,null)上崩溃;
  10. 【C语言】sizeof操作符详解