基于隐马尔可夫模型及切词系统.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于隐马尔可夫模型及切词系统

基于隐马尔可夫模型的切词系统 1, 概论 本系统使用隐马尔可夫模型和序列标记法实现切词 1.1,模型参数 状态S={B, M, E, S}代表了序列标记法的四个标记 B:词首,M:词中,E:词尾,S:单独的字成词 观察值集合V为所有可能出现的汉字 p(ti | ti-1) 标记转移概率 p(wi | ti) 标记ti生成词wi的概率 p(t) 标记t出现在句首的概率 1.2,模型学习 使用90%的语料信息,采用有指导的学习方法,最大似然估计法 P (ti | ti-1) = c(ti-1, ti) / c(ti-1) P (wi | ti) = c(ti, wi) / c(ti) 2, 语料信息预处理 2.1思路 分析语料库后发现:语料库每一行都是一个汉语语法意义上的句子。但切词不需要参考语法意义上的句子,只要是有标点符号,我们就视标点符号两侧为不同词,因此我们可以以/w为分割符。 例如: 迈向/v 充满/v 希望/n 的/u 新/a 世纪/n ——/w 一九九八年/t 新年/t 讲话/n (/w 附/v 图片/n 1/m 张/q )/w 我们把它当作三个句子,“迈向”,“一九九八”和“附”将作为句首词,而“世纪”,“讲话”和“张”将作为据尾词。两个/w之间定义为一个句子。 还要切掉”[“,”]”,否则后面的建模过程会出现麻烦 例如: [中央/n 人民/n 广播/vn 电台/n]nt 2.2 过程 读取语料库中每个词语,去掉”/”和”/”后的字符,去掉最前面的版面序号,去掉标点符号,为每个词语添加序列标记(/B,/M,/E,/S),然后保存到一个中间文件中,以备后用。 中间文件格式形如: 1/B2/M月/E3/B1/M日/ES 中/B共/M中/M央/E总/B书/M记/ES 国/B家/E主/B席/E江/S泽/B民/E发/B表/E1/B9/M9/M8/M年/E新/B年/E讲/B话/ES 迈/B向/E充/B满/E希/B望/E的/S新/S世/B纪/ES 3, 建模 3.1,数据结构设计 3.1.1计算p(ti | ti-1)的表 B M E S 句首 总和 B M E S ti-1行ti列表是c(ti-1,ti)。总和不包括后来句首,句尾。单独出现表示这个字单独作为一句话出现。 计算c(ti)方法:c(ti)=ti出现在句首的次数+ti出现在其他状态后的次数(及ti所在列的和) 3.1.2计算p(wi | ti)的数据结构 Typedef struct _word {//表示这个词以B,M,E,S为标记出现的次数即为c(ti,wi),p开头的表示p(wi|ti) //因为需要平滑,所以次数表示成double类型 Double B Double M Double E Double S Double pB Double pM Double pE Double pS }Word 4, 切词 将预料信息剩下的10%还原成句子,让程序进行切词。 切词就是求隐马尔可夫环的一个能最好解释观察序列的状态转换序列。 用韦特比算法。 4.1数据结构: typedef struct _wtb { double deta;//表示 δ double bo;表示b int fi;表示ψ }WTB; double m_pi[4];表示πi WTB (*m_db)[4];一个二维数组,里面装的是算法所需要的数据 double a[4][4];表示a 4.2算法 韦特比算法在本程序中的表示 初始化 M_db[0][].fi全部初始化为0 M_db[0][].bo初始化为map中对应的那些项 迭代 m_db[t][j].fi = k; m_db[t][j].deta = max * m_db[t][j].bo; max为m_db[t-1][i].deta * a[i][j]的最大值 k为使m_db[t-1][i].deta * a[i][j]为max的i 终止 求m_db[t][i].deta最大值和使其为最大值的k=i 求最佳路径 迭代表达式k = m_db[t][k].fi;求出所有的k就可得到最佳路径。 4.3 平滑 当出现未登录词Ox时,假设其在不同的状态

文档评论(0)

liwenhua11 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档