汉语n元模型统计软件.pptVIP

  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文档。上传文档
查看更多
汉语 n 元模型统计软件 姓名:周晖 学号:指导老师:常宝宝 提纲 ? 实验目的 ? 实验环境 ? 代码简介 ? 实验结果 ? 实验心得 实验目的 ? 通过编程制作汉语 n 元模型统计软件,加深 对课堂所学知识的理解,主要包括 n 元模型 和各种平滑技术。 ? 同时也锻炼了编码能力,尤其是对字符的 处理、统计。 实验环境 ? 语言: Java ? 开发工具: NetBeans IDE 6.7 (通过 -Xmx256m 把 NetBeans 的虚拟空间增 加到 256m ) 代码简介 ? 整个代码分为两个包: ngrammodelstat 和 tool ? ngrammodelstat 是主体,包括了语料处理 和概率平滑,根据功能分类,每个平滑方 法都是一个类。 ? tool 是工具包,包括线性回归等类。 ngrammodelstat 包的类图 处理语料 ? 输入和输出 输入:原始语料,每行是报纸的一段。 输出:删除标记后的语料,每行是一句话。 ? 实现: 依次读入原始语料的每一行,首先利用正 则表达式删除标记信息,然后找“。?! …… ”这四种表示句子结束的标点符号出现 的地方,找到了就作为一句话写入文本。 生成 n 元串的频率 ? N-gram 频率的结构 HashtableString,HashtableString,Integer 类型,外层 Hashtable 的 key 是前 n-1 的词, 每个词之间用“ - ”隔开,里层 Hashtable 的 key 是在第 n 个词, value 是 n-gram 的词频。 ? 实现 依次读入处理后的语料的每一行,在前面 加 n-1 个 BOS ,后面加 1 个 EOS 。然后把 这句话中所有的 n-gram 放入上面的结构中 平滑 —— Smooth 类 ? 这是一个父类,具体的平滑方法类都继承了该 类。属性 wordNum 记录测试语料中的总词数。 ? 假设二元模型中一个句子是 BOSw1w2...wn EOS ,它的概率 =p(w1|BOS)p(w2|w1)... p(EOS|wn) 。然而平滑公式给出的都是联合 概率,因此要通过下式来计算 P(wi|wj)=p(wjwi )/(∑p( wjwx)) , wx 取遍整个 词表。 加 Delta 平滑 ? 属性 ? 用 HashtableString,Double 类型的 probility 来存放训练语料中出现了的 n-gram 平滑概 率。 ? 用 HashtableString,Double 类型的 zeroProbility 来存放训练语料中前 n-1 个词 后面没有出现的词的平滑概率, key 是前 n-1 个词, value 是 n-1 个词与它后面没有出现的 词构成的 n-gram 的平滑概率。 平滑过程 ? 加 Delta 平滑也可以根据 p(w i |w i-n+1 w i-n+2 …w i- 1 )=(c(w i-n+1 w i-n+2 …w i-1 w i )+delta)/ (c(w i-n+1 w i- n+2 …w i-1 )+delta*|V|) 直接计算条件概率。 delta 和 |V| 已知,通过两层循环遍历 n-gram 频率表, 就能得到 n-gram 的词频 c(w i-n+1 w i-n+2 …w i-1 w i ) 和 前 n-1 个词的词频 c(w i-n+1 w i-n+2 …w i-1 ) 。 ? 如果 w i 在训练语料中没有出现过,那么 p(w i |w i-n+1 w i-n+2 …w i-1 )= delta/ (c(w i-n+1 w i- n+2 …w i-1 )+delta*|V|) 。 留存平滑 ? totalInTrain : int[] ,训练语料中出现频次 为 r 的词的个数,相当于 Nr 。 ? totalInHeld : int[] ,留存语料中对应训练语 料中出现 r 词的那些词的频率之和 , 相当于 Tr 。 ? smoothProbility : HashtableInteger,Double ,所有词频的平 滑概率, key 是词频, value 是平滑后的概率。 ? fenmuProbility : HashtableString,Double , 前 n-1 个词后面跟着所有的词的总概率。 平滑过程 ? 得到 Nr , Tr 。 遍历训练语料的 n-gram 频率,对每个 n-gram 的频率 r , totalInTrain 数组中下标为 r 的元素加 1 ,然后从留存语料的 n-gram 频率中得到该 n- gram 的频率, totalInHeld 数组中下标为 r 的元 素加上这个频率。 ? 计算平滑概率

文档评论(0)

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

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

1亿VIP精品文档

相关文档