基于HMM的文本分词

前情题要

  • 马尔可夫过程:在已知它所处的状态条件下,它未来的演变不依赖于它以往的演变,这种已知"现在"的条件下,”将来“与”过去“独立的特性称为马尔可夫性,具有这种性质的随机过程叫做马尔可过程。
  • HMM(Hidden Markov Model), 隐马尔可夫模型,是动态贝叶斯网(暂态模型,能够学习变量间的概率依存关系及其随时间变化的规律),有向图模型,统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。
    在这里插入图片描述
    HMM中指的马尔可夫链是指隐含状态链,因为隐含状态之间存在转换概率。可见状态之间没有转换概率,但是隐含状态和可见状态之间有一个概率叫做输出概率。
  • HMM模型算法主要解决的三类问题
    在这里插入图片描述
    第一类:知道隐含状态数量,以及其转换概率,根据可见状态链,求隐含状态链。在语音识别领域,叫解码问题。第一种解法,求最大似然(利用已知的样本结果信息,反推最具有可能导致这些样本结果出现的模型参数)状态路径;第二种解法,求每次出现可见状态分别是不同隐含状态的概率。
    第二类:知道隐含状态数量,以及其转换概率,根据可见状态链,求输出概率。
    第三类:知道隐含状态数量,根据可见状态链,求转换概率。
  • 任何一个HMM可通过五元组来描述
    观测序列;隐状态;初始概率(隐状态);转移概率(隐状态);发射概率(隐状态表现为显状态的概率)

训练

  • 数据集,已经分好词
    在这里插入图片描述

  • 定义四种状态序列:
    B词语的开头,M中间词, E单词的结尾, S单个字
    在这里插入图片描述

  • 定义A为状态转移矩阵 4*4
    定义B为观测概率矩阵
    定义C为初始状态概率

  • 遍历训练数据,已经进行了切分,每一个词语用空格隔开
    当词语长度为1的时候,就认为状态为S(单个字)
    当词语长度为2的时候,认为前一个词为B为开头,后一个词为E为结尾
    当词语长度为2的时候,认为前一个词为B为开头,中间部分的词都为E为中间词,后一个词为 E为结尾

  • 根据训练数据集,统计初始状态频数,状态转化到另一个状态的频数,隐含状态到显式状态的频数,计算频率,使用log函数防止较小的数值相乘造成下溢。得到C, A, B 矩阵。

  • 采用维特比算法,找到最大概率出现的隐含状态序列。delta列表代表的是到当前时刻t,结束状态为i的观测结果最有可能的概率;psi代表的是到当前时刻t,结束状态为i, 在t-1的最有可能的状态。根据前面得到的C, A, B矩阵,得到delta, psi。最后取delta最后一个时刻的概率最大的那个状态,然后回溯psi,得到前面时刻的最优状态。

  • 在这里插入图片描述
    项目链接 链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值