- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中文自动分词程序文档
田硕 张顺昌 (软件所)
汉语自动分词算法按照不同分类标准,可以分为基于规则、基于统计的分词方法和基于词典切分、无词典切分两种。本程序采用词典切分、基于规则的方法实现汉语自动分词。由于很难取得大规模的标注语料,所以我们没有采取基于统计的方法来做分词,而是采取基于词典的自动分词,依照词典newdict.txt(计算所自然语言处理平台下载)采用正向最大匹配算法对输入文件自动分隔处理,得到输出结果。而且效果还是不错的。
本文第一部分主要介绍程序实现中的词典处理、正向最大匹配算法和自动分词的过程,第二部分程序的测评结果及分析,最后大体介绍作业分工及使用方法。
程序实现
该程序按照特定的中文词典,来进行自动分词。其中使用的分词词典来源于计算所自然语言处理平台的共享词典,运用正向最大匹配算法,得到分词处理之后的输出结果。
1.1词典处理
对于字典的组织,经过简单的统计分析,我们发现汉语中双字的词占多数,所以该程序采用基于双字hash的分词词典机制[1],其结构分为三级,前两级为索引。这样可以快速的定位待分词,可以明显的提高分词的效率。
1) 首字Hash 索引
首字Hash 索引的每个单元包括三项内容:
①关键字(2 bytes) :词的第一个汉字A ;
②是否为词(1 bit) :标示单个首字A 是否为词;
③次字Hash 索引指针(4 bytes) :指向以汉字A 起始的所有词语的第二个汉字的索引。
2) 次字Hash 索引(仅对能跟第一个字构成‘词或词的前缀’的字建立,与第一个字无关的
汉字并无相应结点)
次字Hash 索引的每个单元也包括三项内容:
①关键字(2 bytes) :词的第二个汉字B ;
②是否为词(1 bit) :标示双字串AB 是否为词;
③剩余字串组指针(4 bytes) :指向以双字串AB 起始的所有词语的剩余字串有序数组。
3) 剩余字串组
剩余字串组是以双字串AB 起始的所有词语剩余字串的有序数组,每个单元包括两项内容:
①剩余字串(不定长2n bytes) :除去词的前两个字(A、B) 后的剩余部分;
②是否为词(n - 1 bit) :标示从第一个汉字A 至对应位置的子串是否也构成一个词。
利用动态分配的内存空间存储。装载词典时动态申请内存空间,整个程序中都不会释放,直到程序退出。这样可以提高分词的效率。
详细结构见下图:
1.2正向最大匹配算法
for(i=0; ilen; i++)
{
while(!strncmp(p, str[i].han_item, num))
{
strncpy(record,str[i].han_item, num);
record[num]=\0;
num+=2;
}
if(strlen(str[i].han_item)==(num-2))
oldnum = num-2;
else
num = oldnum;
if(oldnumdis)
dis = oldnum;
}
return dis;
1.3分词处理流程
a.载入分词词典
b.建立双字hash结构
c.读入待分词文件的一行,并调用处理函数标志分词位置。
d. 根据上步做出的分词标志分词,并将用空格分开的词写入到输出文件,转c直至待分词文件结束。
e.从内存中卸载词典,释放内存,退出。
2.测评
我们用两篇中文文章(test1.txt、 test2.txt, 摘自kyxk.net文学版帖子)作为测试用例,对该程序进行测评:
正确率P=切分结果中正确词次数/评测语料中总词次数[3]
对上面提到的两篇文章(分别为3KB和4KB)做了测试,平均正确率为:
P = 95.27%
[注:]可能是字典的原因或者是测试集太小的缘故,正确率不是很高。再就是没考虑切分歧义的问题,但对于一般应用还是可以了。
任务分工
田硕 (软件所 200628015029025)主要完成了词典收集,论文整理,设计等准备工作和文档撰写等后续工作。
张顺昌 (软件所 200628015029049)主要完成了双字hash结构的设计和代码实现部分,主要是用标准C来实现的,还包括最后测试部分。
程序运行方法
程序最后输出为hanseg.exe, 是在命令行下运行的,开发是在Windows下实现的。但采用的是标准C,所以可以很方便的移植到UNIX/Linux-like平台下面(只需重新编译一下即可)。其运行方法如下:
C:\hanseg input_file output_file
input_file :待分词的输入文件
output_file:分词结果输出文件。
[注]:由于每次处理的是一个字符串,所以很容易从源
您可能关注的文档
最近下载
- 《产品碳足迹 产品种类规则 变电站电气设备》.pdf VIP
- (高清版)DB42∕T 2391-2025 《全域国土综合整治项目实施方案编制指南》.docx VIP
- 高标准农田建设项目施工月报.docx
- 5.21.17盘、柜基础型钢安装检验批质量验收记录.pdf VIP
- TISEAA 008-2024《信息安全技术 网络安全等级保护应用软件开发安全管理规范》008.pdf VIP
- 混凝土拌和站冬期施工技术交底.doc VIP
- 紫癜性肾炎课件.pptx VIP
- 矿山设备维护与修理技能培训.pptx VIP
- 张永瑞第版,前五章答案.ppt
- 《产品碳足迹 产品种类规则 光源控制装置》.docx VIP
原创力文档


文档评论(0)