前情题要

  • 马尔可夫过程:在已知它所处的状态条件下,它未来的演变不依赖于它以往的演变,这种已知"现在"的条件下,”将来“与”过去“独立的特性称为马尔可夫性,具有这种性质的随机过程叫做马尔可过程。
  • 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,得到前面时刻的最优状态。


  • 项目链接 链接

基于HMM的文本分词相关推荐

  1. 基于HMM的中文分词

    隐马尔可夫模型(HMM)在中文分词中的应用 隐马尔可夫模型的详细解释 隐马尔可夫模型的一些范例介绍 隐马尔可夫模型中有两个序列,一个是状态序列,另一个是观测序列,其中状态序列是隐藏的.用具体的例子来解 ...

  2. bilstm+crf中文分词_基于LSTM的中文分词模型

    中文分词任务是一个预测序列的经典问题,已知的方法有基于HMM[1]的分词方法.基于CRF[2]的方法和基于LSTM的分词方法. 本文介绍Xinchi Chen等人[3]提出的基于LSTM的分词方法.根 ...

  3. 自制基于HMM的python中文分词器

    不像英文那样单词之间有空格作为天然的分界线, 中文词语之间没有明显界限.必须采用一些方法将中文语句划分为单词序列才能进一步处理, 这一划分步骤即是所谓的中文分词. 主流中文分词方法包括基于规则的分词, ...

  4. 使用HMM隐式马尔科夫链实现基于拼音的文本纠错

    HMM实现基于拼音的文本纠错 文章将从以下4个小节进行描述: 1.问题描述 2.思路 3.源码 4.应用 1.问题描述 对于歌曲的语音搜索实现方案之一如下. 使用百度语音进行用户语音识别,返回的字符串 ...

  5. 转:从头开始编写基于隐含马尔可夫模型HMM的中文分词器

    http://blog.csdn.net/guixunlong/article/details/8925990 从头开始编写基于隐含马尔可夫模型HMM的中文分词器之一 - 资源篇 首先感谢52nlp的 ...

  6. 实战三十七:基于HMM模型实现中文分词

    任务描述:在理解中文文本的语义时需要进行分词处理,分词算法包括字符串匹配算法,基于统计的机器学习算法两大类.本案例在前文将说明常用分词库及其简单应用,之后会通过中文分词的例子介绍和实现一个基于统计的中 ...

  7. 基于隐马科夫模型,HMM用于中文分词

    HMM用于中文分词 一.在分词.分句前用规则处理句子 #在分词前用规则处理句子 def preprocess(oriSentence):     #删除后缀     oriSentence = del ...

  8. HMM隐马尔可夫模型进行中文文本分词

    文章目录 一.HMM简述 1.引入 2.隐马尔科夫模型 (1)定义(Definition of a hidden Markov model) (2)应用 3.前向算法(了解) 4. 维特比算法 5.前 ...

  9. 基于Lucene的中文文本分词

    王继明,杨国林 (内蒙古工业大学信息工程学院,呼和浩特010051) 摘要:中文文本分词技术是文本挖掘领域的一个重要分支,在中国仍然处于发展阶段.Apache Jakarta的开源工程Lucene是一 ...

最新文章

  1. linux ssh登录源地址限制,H3C交换机配置SSH源地址登录限制和SNMP源地址限制的方法...
  2. 开源项目kcws代码分析--基于深度学习的分词技术
  3. 071_设置日期方法
  4. 【经验分享】计算机专业如何自己增加项目经验?
  5. 好看的论文千篇一律,有趣的Github项目万里挑一!
  6. 百度Google搜索框中,你不知道的变化
  7. android jni malloc和free的使用
  8. Radware支招:面对新时代应用SLA,企业该如何应对
  9. zigbee协议栈的系统相关函数的使用 仿照协议栈写事件
  10. (转)一台服务器安装两个tomcat6 服务的解决方案
  11. MySQL 报错 1093
  12. python实现接口自动化的视频_python实现头条项目接口自动化测试实战
  13. 1088 三人行 (20分)
  14. 【PL/SQL】测试函数时,日期参数的输入格式
  15. 深入理解Unity刚体(Rigidbody)、碰撞器(Collider)、触发器(Trigger)
  16. [转]ASP.NET在线用户列表精确版—解决用户意外退出在线列表无法及时更新问
  17. 读书笔记:时间与精力管理:拖延症与六种效应
  18. 使用jstack排查java应用占用内存过高问题
  19. day02 Nacos集群配置、Feign远程调用和统一网关Gateway
  20. 我的专业和梦想计算机,2019,我们有很厉害的梦想与计划

热门文章

  1. Linux——内存的申请与释放
  2. N个数里面找出最大的k个数
  3. 纯css实现太极阴阳鱼动画
  4. 专业英语翻译(一)The Computer for the 21st Century(词组+生词+段落翻译+全文翻译)(随缘吧)
  5. 电子表格分两级:Excel和WPS是一级,未来5年,75%的人将用二级
  6. 高级办公自动化试题及答案(一)
  7. Google谷歌在世界各地的市场占有率
  8. 微信搜一搜迈出新的一步,好戏来了
  9. 小红书kol投放怎么找达人?这几个方面一定要看
  10. 关于查全率,查准率的定义