基于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,得到前面时刻的最优状态。
项目链接 链接
基于HMM的文本分词相关推荐
- 基于HMM的中文分词
隐马尔可夫模型(HMM)在中文分词中的应用 隐马尔可夫模型的详细解释 隐马尔可夫模型的一些范例介绍 隐马尔可夫模型中有两个序列,一个是状态序列,另一个是观测序列,其中状态序列是隐藏的.用具体的例子来解 ...
- bilstm+crf中文分词_基于LSTM的中文分词模型
中文分词任务是一个预测序列的经典问题,已知的方法有基于HMM[1]的分词方法.基于CRF[2]的方法和基于LSTM的分词方法. 本文介绍Xinchi Chen等人[3]提出的基于LSTM的分词方法.根 ...
- 自制基于HMM的python中文分词器
不像英文那样单词之间有空格作为天然的分界线, 中文词语之间没有明显界限.必须采用一些方法将中文语句划分为单词序列才能进一步处理, 这一划分步骤即是所谓的中文分词. 主流中文分词方法包括基于规则的分词, ...
- 使用HMM隐式马尔科夫链实现基于拼音的文本纠错
HMM实现基于拼音的文本纠错 文章将从以下4个小节进行描述: 1.问题描述 2.思路 3.源码 4.应用 1.问题描述 对于歌曲的语音搜索实现方案之一如下. 使用百度语音进行用户语音识别,返回的字符串 ...
- 转:从头开始编写基于隐含马尔可夫模型HMM的中文分词器
http://blog.csdn.net/guixunlong/article/details/8925990 从头开始编写基于隐含马尔可夫模型HMM的中文分词器之一 - 资源篇 首先感谢52nlp的 ...
- 实战三十七:基于HMM模型实现中文分词
任务描述:在理解中文文本的语义时需要进行分词处理,分词算法包括字符串匹配算法,基于统计的机器学习算法两大类.本案例在前文将说明常用分词库及其简单应用,之后会通过中文分词的例子介绍和实现一个基于统计的中 ...
- 基于隐马科夫模型,HMM用于中文分词
HMM用于中文分词 一.在分词.分句前用规则处理句子 #在分词前用规则处理句子 def preprocess(oriSentence): #删除后缀 oriSentence = del ...
- HMM隐马尔可夫模型进行中文文本分词
文章目录 一.HMM简述 1.引入 2.隐马尔科夫模型 (1)定义(Definition of a hidden Markov model) (2)应用 3.前向算法(了解) 4. 维特比算法 5.前 ...
- 基于Lucene的中文文本分词
王继明,杨国林 (内蒙古工业大学信息工程学院,呼和浩特010051) 摘要:中文文本分词技术是文本挖掘领域的一个重要分支,在中国仍然处于发展阶段.Apache Jakarta的开源工程Lucene是一 ...
最新文章
- linux ssh登录源地址限制,H3C交换机配置SSH源地址登录限制和SNMP源地址限制的方法...
- 开源项目kcws代码分析--基于深度学习的分词技术
- 071_设置日期方法
- 【经验分享】计算机专业如何自己增加项目经验?
- 好看的论文千篇一律,有趣的Github项目万里挑一!
- 百度Google搜索框中,你不知道的变化
- android jni malloc和free的使用
- Radware支招:面对新时代应用SLA,企业该如何应对
- zigbee协议栈的系统相关函数的使用 仿照协议栈写事件
- (转)一台服务器安装两个tomcat6 服务的解决方案
- MySQL 报错 1093
- python实现接口自动化的视频_python实现头条项目接口自动化测试实战
- 1088 三人行 (20分)
- 【PL/SQL】测试函数时,日期参数的输入格式
- 深入理解Unity刚体(Rigidbody)、碰撞器(Collider)、触发器(Trigger)
- [转]ASP.NET在线用户列表精确版—解决用户意外退出在线列表无法及时更新问
- 读书笔记:时间与精力管理:拖延症与六种效应
- 使用jstack排查java应用占用内存过高问题
- day02 Nacos集群配置、Feign远程调用和统一网关Gateway
- 我的专业和梦想计算机,2019,我们有很厉害的梦想与计划