HMM在工程中的应用

整体框架

nlp的中文分词

  • 了解分词原理
  • 结合分词原理及知识点,对应理解马尔可夫原理
  • 马尔科夫假设中提到维特比算法
  • 常用的分词的库 就是一个插件——jieba分词

知乎上看到的分词过程图:
请添加图片描述
了解了分词的大概过程:断句、标注、根据词典加载概率。

隐马尔可夫大概思想

举例理解隐马尔可夫思想

生活中有三种骰子:6个面、3个面和8个面,对应每个骰子会出现6种、3种、8种情况,如果只看最终的投掷结果(给定一个序列值),其实包含了:

  1. 隐含的状态,就是选择哪个骰子
  2. 可见的状态,骰子投出的数值
    请添加图片描述

假设每个状态间转移的概率(选择骰子的概率)是固定的。就可以得到状态转移矩阵
那么观测值序列出现概率的计算公式:
请添加图片描述
请添加图片描述

抽象思想(HMM模型五元组)

  • 3种不同骰子:状态值集合(StatusSet)
  • 可能出现的结果值:观察值集合(ObservedSet)
  • 选择不同骰子的概率:转移概率矩阵(TransProbMatrix )
  • 选定骰子后投出某个值的概率:发射概率矩阵(EmitProbMatrix )如:拿到D6这个骰子,投出6的概率是1/6。
  • 最初状态:初始状态概率分布(InitStatus )

所以,计算概率的方法就是:
初始状态概率分布、发射概率矩阵、转移概率矩阵的乘积。
当某个状态序列的概率值最大,则该状态序列即为,出现该观测值的情况下,最可能出现的状态序列。

使用场景

HMM模型最常用来解决参数(ObservedSet,TransProbMatrix,EmitRobMatrix,InitStatus)已知的情况下,求解状态值集合的问题,其中使用到viterbi算法
(除中文分词,语音识别、新词发现、词性标注等场景都会用到)

五元组参数在中文分词中具体含义

五元的关系是通过Viterbi算法串接起来,ObservedSet观测值集合是Viterbi的输入,而StatusSet状态值集合是Viterbi输出,输入和输出之间Viterbi算法需要借助三个模型参数,分别是InitStatus初始状态概率分布,TransProbMatrix转移概率矩阵,EmitProbMatrix发射概率矩阵。
HMM模型的中文分词中,输入的是一个句子(也就是观察值序列),输出是这个句子中每个字的状态值。

状态值集合

{B:begin, M:middle, E:end, S:single}。四个状态代表该词语中的位置。B起始字,M中间字,E结束字,S单字成词。

观察值集合

输入的所有汉字以及标点符号所组成的集合。

eg:
小明硕士毕业于中国科学院计算所
输出的状态序列为:
BEBEBMEBEBMEBES
根据这个状态序列我们进行切词/断句:
BE/BE/BME/BE/BME/BE/S
结果如下:
小明/硕士/毕业于/中国/科学院/计算/所

注意:
B后面只可能接M/E,不可能接B/S。而M后面也只可能接M/E,不可能接B/S。

初始状态分布

也就是句子的第一个字属于{B,E,M,S}这四种状态的概率,实际上E和M的概率都是0,开头的第一个字只可能是词语的首字(B),或者是单字成词(S)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值