`
晨星★~雨泪
  • 浏览: 447441 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

隐含马尔可夫模型在语言处理中的应用

阅读更多

数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用

发表者:吴军,Google 研究员

前言:隐含马尔可夫模型是一个数学模型,到目前为之,它一直被认为是实现快速精确的语音识别系统的最成功的方法。复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述、解决,让我不由由衷地感叹数学模型之妙。


自然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 -- 一个人根据接收到的信息,去猜测发话人要表达的意思。这其实就象通信中,我们根据接收端收到的信号去分析、理解、还原发送端传送过来的信息。以下该图就表示了一个典型的通信系统:



其中 s1,s2,s3...表示信息源发出的信号。o1, o2, o3 ... 是接受器接收到的信号。通信中的解码就是根据接收到的信号 o1, o2, o3 ...还原出发送的信号 s1,s2,s3...。

其实我们平时在说话时,脑子就是一个信息源。我们的喉咙(声带),空气,就是如电线和光缆般的信道。听众耳朵的就是接收端,而听到的声音就是传送过来的信号。根据声学信号来推测说话者的意思,就是语音识别。这样说来,如果接收端是一台计算机而不是人的话,那么计算机要做的就是语音的自动识别。同样,在计算机中,如果我们要根据接收到的英语信息,推测说话者的汉语意思,就是机器翻译; 如果我们要根据带有拼写错误的语句推测说话者想表达的正确意思,那就是自动纠错。

那么怎么根据接收到的信息来推测说话者想表达的意思呢?我们可以利用叫做“
隐含马尔可夫模型”(Hidden Markov Model)来解决这些问题。以语音识别为例,当我们观测到语音信号 o1,o2,o3 时,我们要根据这组信号推测出发送的句子 s1,s2,s3。显然,我们应该在所有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知 o1,o2,o3,...的情况下,求使得条件概率
P (s1,s2,s3,...|o1,o2,o3....) 达到最大值的那个句子 s1,s2,s3,...

当然,上面的概率不容易直接求出,于是我们可以间接地计算它。利用贝叶斯公式并且省掉一个常数项,可以把上述公式等价变换成

P(o1,o2,o3,...|s1,s2,s3....) * P(s1,s2,s3,...)
其中
P(o1,o2,o3,...|s1,s2,s3....) 表示某句话 s1,s2,s3...被读成 o1,o2,o3,...的可能性, 而
P(s1,s2,s3,...) 表示字串 s1,s2,s3,...本身能够成为一个合乎情理的句子的可能性,所以这个公式的意义是用发送信号为 s1,s2,s3...这个数列的可能性乘以 s1,s2,s3...本身可以一个句子的可能性,得出概率。

(读者读到这里也许会问,你现在是不是把问题变得更复杂了,因为公式越写越长了。别着急,我们现在就来简化这个问题。)我们在这里做两个假设:

第一,s1,s2,s3,... 是一个马尔可夫链,也就是说,si 只由 si-1 决定 (详见系列一);
第二, 第 i 时刻的接收信号 oi 只由发送信号 si 决定(又称为独立输出假设, 即 P(o1,o2,o3,...|s1,s2,s3....) = P(o1|s1) * P(o2|s2)*P(o3|s3)...。
那么我们就可以很容易利用算法 Viterbi 找出上面式子的最大值,进而找出要识别的句子 s1,s2,s3,...。

满足上述两个假设的模型就叫隐含马尔可夫模型。我们之所以用“隐含”这个词,是因为状态 s1,s2,s3,...是无法直接观测到的。

隐含马尔可夫模型的应用远不只在语音识别中。在上面的公式中,如果我们把 s1,s2,s3,...当成中文,把 o1,o2,o3,...当成对应的英文,那么我们就能利用这个模型解决机器翻译问题; 如果我们把 o1,o2,o3,...当成扫描文字得到的图像特征,就能利用这个模型解决印刷体和手写体的识别。

P (o1,o2,o3,...|s1,s2,s3....) 根据应用的不同而又不同的名称,在语音识别中它被称为“声学模型” (Acoustic Model), 在机器翻译中是“翻译模型” (Translation Model) 而在拼写校正中是“纠错模型” (Correction Model)。 而P (s1,s2,s3,...) 就是我们在系列一中提到的语言模型。

在利用隐含马尔可夫模型解决语言处理问题前,先要进行模型的训练。 常用的训练方法由伯姆(Baum)在60年代提出的,并以他的名字命名。隐含马尔可夫模型在处理语言问题早期的成功应用是语音识别。七十年代,当时 IBM 的 Fred Jelinek (贾里尼克) 和卡内基·梅隆大学的 Jim and Janet Baker (贝克夫妇,李开复的师兄师姐) 分别独立地提出用隐含马尔可夫模型来识别语音,语音识别的错误率相比人工智能和模式匹配等方法降低了三倍 (从 30% 到 10%)。 八十年代李开复博士坚持采用隐含马尔可夫模型的框架, 成功地开发了世界上第一个大词汇量连续语音识别系统 Sphinx。

我最早接触到隐含马尔可夫模型是几乎二十年前的事。那时在《随机过程》(清华“著名”的一门课)里学到这个模型,但当时实在想不出它有什么实际用途。几年后,我在清华跟随王作英教授学习、研究语音识别时,他给了我几十篇文献。 我印象最深的就是贾里尼克和李开复的文章,它们的核心思想就是隐含马尔可夫模型。复杂的语音识别问题居然能如此简单地被表述、解决,我由衷地感叹数学模型之妙。

固定链接  |

分享到:
评论

相关推荐

    HMM隐马尔可夫模型用于中文分词

    隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,被广泛应用于模式识别、自然语言处理等领域。HMM的核心思想是通过一个可以观察的马尔可夫过程来描述一个隐含的状态序列,其中状态不可直接观察到,但每...

    隐马尔可夫模型c代码

    隐马尔可夫模型(Hidden Markov Model,简称HMM)是概率统计领域的一种重要模型,广泛应用于自然语言处理、语音识别、生物信息学等多个IT领域。本模型的核心思想是,尽管我们无法直接观测到系统的真实状态,但可以...

    隐马尔可夫模型(HMM)

    隐马尔可夫模型(Hidden Markov Model,简称HMM)是一种统计模型,常用于处理序列数据,如语音识别、自然语言处理、生物信息学等领域。在这个模型中,系统处于一系列不可观察的状态,这些状态按照马尔可夫过程随机...

    隐马尔可夫模型教程-Oxford

    在牛津大学的这篇教程中,我们可以通过几个核心概念来深入理解隐马尔可夫模型的原理和应用。 首先,马尔可夫链(Markov chain)是隐马尔可夫模型的基础。在马尔可夫链中,系统的下一个状态仅依赖于当前状态,而不...

    谷歌黑板报-数学之美 数学在信息检索和自然语言处理中的主导作用和奇妙应用 共45页.pdf

    3. **隐含马尔可夫模型(HMM)**:HMM在语音识别和自然语言处理中有着广泛应用,用于建模序列数据,如词性标注和自动文摘。 4. **信息度量**:信息论中的熵、互信息等概念帮助我们量化信息的价值和不确定性,这对于...

    HMMHMMHMMHMM

    标题中的“HMM”通常代表“隐马尔可夫模型”(Hidden Markov Model),这是一种在统计学和机器学习领域广泛应用的概率模型。隐马尔可夫模型主要用于处理序列数据,如自然语言、生物序列或者时间序列信号等。在这个模型...

    Matlab技术在自然语言处理中的应用方法.docx

    Matlab 技术在自然语言处理中的应用方法 Matlab 技术在自然语言处理中具有广泛的应用前景,该技术可以对文本进行预处理、实体识别、语义分析和情感分析等操作。本文将详细介绍 Matlab 技术在自然语言处理中的应用...

    HMM算法,隐马尔可夫算法

    最大熵马尔可夫模型已经被成功地应用于多个自然语言处理任务中,包括词性标注、命名实体识别等。它在处理序列标注任务时表现出色,特别是在处理上下文敏感性较强的标注任务时。 #### 四、总结 HMM和MEMM都是序列...

    PocketSphinx语音识别系统语言模型的训练和声学模型的改进1

    Sphinx系列中,Sphinx-4是一款基于JAVA的大词汇量语音识别系统,它采用了连续的隐含马尔可夫模型(HMM)进行建模,并对模块化、灵活性和算法进行了优化,支持多种搜索策略、语法、语言模型以及听觉模型。其JAVA语言...

    自然语言处理综述-第三版

    15. 隐马尔可夫模型(HMMs):HMM是一种统计模型,用于描述一个含有隐含未知参数的马尔可夫过程,被广泛应用在语音识别和自然语言处理中。 16. 拼写纠错和噪声信道:在文本处理中,拼写纠错是一个常见问题。噪声...

    Python实现隐马尔可夫模型的前向后向算法的示例代码

    隐马尔可夫模型广泛应用于语音识别、自然语言处理、生物信息学等领域。 在本次文章中,重点介绍了如何使用Python编程语言实现隐马尔可夫模型的前向和后向算法。前向算法主要用来计算给定模型参数和观察序列时,观察...

    MATLAB算法隐马尔可夫预测代码含大量案例

    隐马尔可夫模型(HMM)是一种统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。HMM广泛应用于时间序列分析,尤其是在语音识别、自然语言处理、生物信息学等领域有重要应用。它假定系统由两个随机过程组成:一...

    [斯坦福大学]隐马尔科夫模型.pdf

    隐马尔可夫模型(Hidden Markov Model, HMM)是统计模型,用来描述一个含有隐含未知参数的马尔可夫过程...通过这些内容的学习,可以加深对隐马尔可夫模型的理解,掌握其在处理涉及时序信息的各种实际问题中的应用技巧。

    谷歌搜索秘籍

    #### 三、隐含马尔可夫模型在语言处理中的应用 **知识点概述:** 隐含马尔可夫模型(HMM)是一种统计模型,广泛应用于语音识别、中文分词、词性标注等领域。 **核心知识点详解:** 1. **模型结构**: - HMM假设...

    数学之美系列完整版.doc

    **隐含马尔可夫模型**(HMM)在语言处理中有广泛应用,例如在语音识别和词性标注中,它可以捕捉词汇序列的隐藏状态及其转换规律。 **信息度量**是信息论的一部分,关注如何量化信息量。香农的信息熵概念在这里扮演...

    针对新手解析隐马尔科夫模型的基础概念及其应用案例

    这篇文档是以简单的词汇阐述了HMM(隐马尔可夫模型)。它描述了隐马尔科夫模型作为一个基于统计的学习框架能够随机地创造观察到的一系列事物的现象。这种模型特别被用于自然语言处理任务,例如句法分析标记和语音...

    人工智能-语音识别-韵律信息在汉语语音识别中的应用.pdf

    隐含马尔可夫模型是一个具有马尔可夫性质的过程,它的统计特性由它之前的k个时间段决定。隐含马尔可夫模型完全决定于它的初始概率分布、状态转移概率和输出概率分布。 汉语语音学的基本知识 汉语语音学是研究汉语...

Global site tag (gtag.js) - Google Analytics