美文网首页
中文分词算法之HMM算法

中文分词算法之HMM算法

作者: galois_xiong | 来源:发表于2017-05-27 13:34 被阅读0次

本系列中文十年回顾中讲了时至今日,中文分词中对效果影响最大的是未登录词的识别。今天要讲的就是基于HMM算法的中文分词,可以用来发掘为登录词。

从中文分词角度理解HMM

中文分词,就是给一个汉语句子作为输入,以“BEMS”组成的序列串作为输出,然后再进行切词,进而得到输入句子的划分。其中,B代表该字是词语中的起始字,M代表是词语中的中间字,E代表是词语中的结束字,S则代表是单字成词。
下面是一个用字符标注方法进行识别的一个例子

  小明硕士毕业于中国科学院计算所
  BEBEBMEBEBMEBES
  BE/BE/BME/BE/BME/BE/S
  小明/硕士/毕业于/中国/科学院/计算/所

上面的例子就是一个给定观察序列,得到状态序列,在HMM中就是一个解码过程。

HMM简介

定义: HMM (隐马尔可夫模型) 是关于时序的概率模型, 描述由一个隐藏的马尔可夫链随机生成不可观察的状态序列,再有状态序列生成一个观测序列的过程。
HMM有以下5个要素:
观测序列-O:小明硕士毕业于中国科学院计算所
状态序列-S:BEBEBMEBEBMEBES
初始状态概率向量-π:句子的第一个字属于{B,E,M,S}这四种状态的概率


初始状态

状态转移概率矩阵-A:如果前一个字位置是B,那么后一个字位置为BEMS的概率各是多少


状态转移矩阵

观测概率矩阵-B:在状态B的条件下,观察值为耀的概率,取对数后是-10.460


观测概率矩阵

备注:示例数值是对概率值取对数之后的结果,为了将概率相乘的计算变成对数相加,其中-3.14e+100作为负无穷,也就是对应的概率值是0

三类问题
当通过五元组中某些已知条件来求未知时,就得到HMM的三类问题:

  • 似然度问题:参数(O,π,A,B)已知的情况下,求(π,A,B)下观测序列O出现的概率
  • 解码问题:参数(O,π,A,B)已知的情况下,求解状态值序列S。(viterbi算法)
  • 学习问题:参数(O)已知的情况下,求解(π,A,B)。(Baum-Welch算法)

中文分词属于解码问题, 就是对给定的观察序列,求解对应的最优状态的问题。
我们希望找到 s_1,s_2,s_3,... 使 P (s_1,s_2,s_3,...|o_1,o_2,o_3....) 达到最大。
意思是,当我们观测到信号 o_1,o_2,o_3,... 时,我们要根据这组信号推测出发送的句子 s_1,s_2,s_3,....,显然,我们应该在所有可能的句子中找最有可能性的一个。
HMM 的两个假设:

  • 有限历史假设:si 只由si-1 决定


  • 独立输出假设:第 i 时刻的接收信号 oi 只由状态 si 决定



    基于上面的两个假设,解码问题可以推导如下:


Viterbi 算法

Viterbi算法:是一种动态规划算法。它用于寻找最有可能产生观测事件序列的维特比路径——隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中。
定义在t时刻, 状态为i的所有单路径中最大的值为:



则在t+1时刻有:



则利用上面的两个公式就可以完成解码了。

Reference:

http://blog.csdn.net/u014365862/article/details/54891582

相关文章

  • 中文分词算法之HMM算法

    本系列中文十年回顾中讲了时至今日,中文分词中对效果影响最大的是未登录词的识别。今天要讲的就是基于HMM算法的中文分...

  • 自然语言处理中的分词算法实现

    最近实现的3种中文分词算法 基于最大匹配(前向匹配、后向匹配、双向匹配) HMM n-gram 基于最大匹配算法(...

  • Eddy的AI小助手-finalseg分词模块(19)

    Finalseg算法是基于HMM模型,采用了Viterbi算法的分词Python工具包,简单易用,分词效果也不错。...

  • 中文分词算法之HMM和Viterbi(维特比)算法理解

    正文之前 这周二开博士沙龙,大老板对我想做的方向,很感兴趣。。我他么有点害怕,听同组师兄的女朋友,也是一个大老板门...

  • 基于Java实现的中文分词系统设计与实现

    目录 1.问题描述 2.相关工作 3.系统框架和算法设计 3.1系统整体框架 3.2基于HMM模型分词算法设计 3...

  • 中文分词2:HMM

    HMM算法用于分词 一、HMM的典型模型五元组 状态集、观测集、初始状态分布、状态转移矩阵、发射矩阵。 1、状态集...

  • Lucene中文分词

    中文分词算法现在一般分为三类:基于字符串匹配,基于理解,基于统计的分词。 基于字符串匹配分词:机械分词算法,这里我...

  • HMM+Viterbi算法分词

    PS:这篇文章中的代码,仅为一个简单的DEMO,并未进行过代码和算法的优化,参数也未进行过调整,仅仅是演示了一个从...

  • 分词总结

    本文主要是自己在阅读jieba源码的理解做一下分词算法的总结,分为工程和算法两部分进行。 算法 现在的中文分词以规...

  • 基于Trie 树实现简单的中文分词

    中文分词简介 中文分词是中文自然语言处理的基础,中文分词的正确率如何直接影响后续的词性标注(也有些词性标注算法不需...

网友评论

      本文标题:中文分词算法之HMM算法

      本文链接:https://www.haomeiwen.com/subject/bhzffxtx.html