汉语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元模型统计软件,加深对课堂所学知识的理解,主要包括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(wi|wi-n+1wi-n+2…wi-1)=(c(wi-n+1wi-n+2…wi-1wi)+delta)/ (c(wi-n+1wi-n+2…wi-1)+delta*|V|)直接计算条件概率。delta和|V|已知,通过两层循环遍历n-gram频率表,就能得到n-gram的词频c(wi-n+1wi-n+2…wi-1wi)和前n-1个词的词频c(wi-n+1wi-n+2…wi-1) 。 如果wi 在训练语料中没有出现过,那么p(wi|wi-n+1wi-n+2…wi-1)= delta/ (c(wi-n+1wi-n+2…wi-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的元素加上这个频率。 计算平滑概率 根据平滑公式P(w1…wn)=Tr/(T*Nr),只需要计算每个词频的平滑概率。 计算平滑后的条件概率 主要是计算前n-1个词分别与词表中所有词的概率之和 Good-Turing平滑 wordTimes:int [],每个词频的总词数,数组下标是词频,元素是词数。 smoothProbility :HashtableInteger,Double,所有词频的平滑概率,key是词频,value是平滑后的概率。 fenmuProbility :HashtableString,Double,前n-1个词后面跟着所有的词的总概率。 平滑过程 统计Nr 对Nr进行

文档评论(0)

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

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

1亿VIP精品文档

相关文档