资源描述:
《中文自动分词程序文档》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、中文自动分词程序文档田硕张顺昌(软件所)汉语自动分词算法按照不同分类标准,可以分为基于规则、基于统计的分词方法和基于词典切分、无词典切分两种。本程序采用词典切分、基于规则的方法实现汉语自动分词。由于很难取得大规模的标注语料,所以我们没有采取基于统计的方法来做分词,而是采取基于词典的自动分词,依照词典newdict.txt(计算所自然语言处理平台下载)采用正向最大匹配算法对输入文件自动分隔处理,得到输出结果。而且效果还是不错的。本文第一部分主要介绍程序实现中的词典处理、正向最大匹配算法和自动分词的过程,第二部分程序的测评结果及分析,最后
2、大体介绍作业分工及使用方法。1.程序实现该程序按照特定的中文词典,来进行自动分词。其中使用的分词词典来源于计算所自然语言处理平台的共享词典,运用正向最大匹配算法,得到分词处理之后的输出结果。1.1词典处理对于字典的组织,经过简单的统计分析,我们发现汉语中双字的词占多数,所以该程序采用基于双字hash的分词词典机制[1],其结构分为三级,前两级为索引。这样可以快速的定位待分词,可以明显的提高分词的效率。1)首字Hash索引首字Hash索引的每个单元包括三项内容:①关键字(2bytes):词的第一个汉字A;②是否为词(1bit):标示单个
3、首字A是否为词;③次字Hash索引指针(4bytes):指向以汉字A起始的所有词语的第二个汉字的索引。2)次字Hash索引(仅对能跟第一个字构成‘词或词的前缀’的字建立,与第一个字无关的汉字并无相应结点)次字Hash索引的每个单元也包括三项内容:①关键字(2bytes):词的第二个汉字B;②是否为词(1bit):标示双字串AB是否为词;③剩余字串组指针(4bytes):指向以双字串AB起始的所有词语的剩余字串有序数组。3)剩余字串组剩余字串组是以双字串AB起始的所有词语剩余字串的有序数组,每个单元包括两项内容:①剩余字串(不定长2nb
4、ytes):除去词的前两个字(A、B)后的剩余部分;②是否为词(n-1bit):标示从第一个汉字A至对应位置的子串是否也构成一个词。利用动态分配的内存空间存储。装载词典时动态申请内存空间,整个程序中都不会释放,直到程序退出。这样可以提高分词的效率。详细结构见下图:1.2正向最大匹配算法 for(i=0;i