自然语言处理——隐马尔可夫模型(HMM)及中文分词器

概念基础

从马尔可夫假设到隐马尔可夫模型

   马尔可夫假设是指:每一个时间的发生概率只取决于前一个时间。当将满足该假设的多个事件串联在一起时,构成马尔可夫链

   而在自然语言的情景下,满足假设的连续的多个事件可以具象为单词,即马尔可夫模型具象为二元语法模型。

  由此可得隐马尔可夫模型的两个假设:

    设 yi 为i时刻的一个状态节点。xi 为i时刻状态 yi 所对应的观测节点。

     假设1:当前状态y t 仅仅依赖于前一个状态 yt-1 ,连续多个状态构成隐马尔可夫链y
     假设2:任意时刻的观测xt只依赖于当前状态yt,与其他时刻的状态或者观测无关。
隐马尔可夫模型状态序列与观测序列的依赖关系

图1:隐马尔可夫模型状态序列与观测序列的依赖关系

 隐马尔可夫模型可以总结为先有状态,后有观测。

隐马尔可夫模型的三要素

  隐马尔可夫模型的三要素有:初始状态概率向量 π \pi π状态转移概率矩阵A发射概率矩阵B

    初始状态概率向量:系统启动时进入的第一个状态y1称为初始状态,假设y有N种取值,那么y1就是一个独立的离散型随机变量,由p(y1| π \pi π) 描述。其中: π = ( p i 1 , . . . π N ) T , 0 ⩽ π i ⩽ 1 , ∑ i = 1 N π = 1 \pi= (pi_{1},... \pi_{N})^T, 0\leqslant \pi_{i}\leqslant 1,\sum_{i=1}^N \pi = 1 π=(pi1,...πN)T,0πi1,i=1Nπ=1
是概率分布的参数向量,称为初始状态概率向量

    状态转移概率矩阵:t+1时的状态仅仅取决于t时的状态,且一共有N种状态,则从状态si到sj的概率就构成了一个N×N的矩阵,称为状态转移概率矩阵。其实际意义是在中文分词当中,标签B后面不可能是S,通过赋值 p ( y t + 1 = S ∣ y t = B ) = 0 p(y_{t+1} = S| y_{t} = B) = 0 p(yt+1=Syt=B)=0就可以模拟这种禁止转移的需求。且这些参数不需要程序员手动服务,通过语料库学习可获得。

    发射频率矩阵:假设观测x一共有M种可能的取值,则x的概率发布参数向量维数为M。由于y一共有N种,则这些参数向量构成 N × M N×M N×M的矩阵,则 B = [ p ( x t = o i ∣ y t = s j ) ] N × M B = [p(x_{t} = o_{i} | y_{t} = s_{j})]_{N×M} B=[p(xt=oiyt=sj)]N×M称为发射概率矩阵。概率发射矩阵的实际意义是通过赋予位置构成比较固定的字符相应的概率,防止一些词汇被错误切分。

完整的隐马尔可夫模型描述

图2:完整隐马尔可夫模型描述图

隐马尔可夫模型的训练

  隐马尔可夫模型的训练需要利用极大似然法估计其模型参数,即:转移概率矩阵的估计、初始状态概率向量的估计、发射概率矩阵的估计。

    估计转移概率矩阵:记样本序列在时刻 t t t 处于状态 s i s_{i} si ,时刻 t + 1 t+1 t+1 转移到状态 s j s_{j} sj 。统计频次计入矩阵元素 A i , j A_{i,j} Ai,j ,根据极大似然估计,从 s i s_{i} si s j s_{j} sj 的转移概率 a i , j a_{i,j} ai,j 可估计为矩阵第 i i i 行的归一化: a ^ i , j = A i , j ∑ j = 1 N , i , j = 1 , 2 , . . . , N \widehat{a}_{i,j} = \frac{A_{i,j}}{\sum_{j=1}^N} ,\quad\quad i,j = 1,2, ...,N a

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值