隐马尔可夫模型(hmm) 马尔可夫链通俗理解

2025-01-2320:27:23营销方案0

图示:IT可达鸭、网络资料

随着大规模语料库的建立以及统计学与机器学习方法的研究深入,基于统计的中文分词算法逐渐成为主流分析手段。

主要思想是:将每n(n≥1)个相邻的字(可能存在重叠)视作一个待识别的词汇。若该待识别词汇在多种文本中频繁出现,那么它很有可能就是一个实际存在的词汇。

我们可以通过计算字与字相邻出现的频率来评估组成词的可靠性。统计语料中各个字的组合频率,当这一频率超过特定阈值时,便可认为该字的组合是一个词汇。

隐含马尔可夫模型(HMM)则将分词视为字在句子中的序列标注问题。其基本思路为:每个字在构造特定词语时占据确定的词位。设定每个字最多有四种构词位置,即B(词首)、M(词中)、E(词尾)和S(单独成词)。

举个例子来说明:

在HMM的应用之前,需满足三个基本假设。

假设一:有限历史性假设,采用二元模式,每个字仅与上一下一字有关联;

假设二:观测独立性假设,输出仅依赖于当前状态;

假设三:齐次性假设。

HMM的标注必须符合一系列规则,如BE、BME、BMME、BM...ME(中间M的个数大于等于0)、S等情况。

简单来说,HMM是一个通过观察序列来求解隐含序列的过程。

具体地说,就是最大化P(字序列|标签序列)的概率。

在求解HMM的过程中,需维护三个矩阵:1. 初始概率分布;2. 状态转移矩阵A(标签到标签的概率);3. 观察概率分布B(标签到观察变量的概率)。

根据第一个假设,若最终最优路径经过某一节点o(i),那么从初始节点到o(i-1)的路径也必然是最优路径,因为每个节点o(i)仅影响其前后两个节点的标签概率。可通过Viterbi算法来求解最大化P(字序列|标签序列)的问题。

在HMM模型中,Viterbi算法是最常用的求解方法。它是一种动态规划方法,其核心思想如图所示。为便于演示,我们使用1、2、3代替HMM中的BMES标注,用A、B、C代表字符。

基于假设一,每一列的节点只能与相邻列的节点相连,不能跨列连接,节点间有不同距离。

为找出start到end间的最短路径,我们从Start开始,自左至右逐列分析。

以B列为示例,经过B列各点的路径有多种可能。我们需计算各路径的总距离,找出其中最短路径,并删除其他不可能的路径。此过程需逐个分析B列的B1、B2、B3等点。

对于给定的可观察序列ABC,其标注结果为2、3、2。

HMM起初可能较难理解,但通过一些简单例子进行推理,便能较好地掌握HMM的过程。这里所讲述的内容综合了个人理解及网上示例,难免有不当之处,欢迎指正。

参考:如何通俗地讲解Viterbi算法(来自知乎)

持续关注"IT可达鸭",除了分享有趣的Python源码,还有NLP算法的介绍。感谢大家的阅读,祝大家工作生活愉快!

  • 版权说明:
  • 本文内容由互联网用户自发贡献,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 295052769@qq.com 举报,一经查实,本站将立刻删除。