论文部分内容阅读
中文分词是按照特定的规范将汉语中连续的字序列切分为合理的词序列的过程。作为自然语言处理基础性任务,中文分词已经被广泛应用在相关领域中。因此,研究中文分词算法具有重要的理论和现实意义。为了满足上层应用对分词实用性要求,本文将机械分词和基于统计的分词法有机结合,提出了基于词典和统计规则的中文分词算法。该算法首先使用切分速度快的机械分词法对预处理后的文本进行初步切分,采用改进的双向最大匹配检测法检测出歧义字·段,并运用基于二元统计模型的全切分消解歧义。其次,采用基于角色的命名实体识别方法识别出未登录词。最后,引入规则库对分词结果进一步修正。本文的研究工作主要有:1)采用二次索引的词典结构,提升词典查找速度,使用Java对象序列化技术实现词典文件的加载(反序列化)和词典对象的序列化。2)在歧义检测方面,提出了改进的双向最大匹配检测算法,不仅能检测到链长为奇数的歧义字段,而且能检测出所有同时满足链长为偶数且交段长度为1的歧义字段。在歧义字段上,采用全切分法消解歧义。3)在未登录词识别方面,将隐马尔科夫模型中解决编码问题的前向Viterbi算法用以角色标注,采用角色模式集上的模式串匹配出中文专有名词。使用一个小型校正规则库进行分词碎片的修正。4)目前中文分词软件包大都以C++语言开发,而作为主流开发语言之一的Java,其中文分词组件相对较少。因此,在分词算法的研究基础上,设计并实现了支持Java语言的中文自动分词系统。实验表明,该中文分词算法在CPU3.0GHZ,内存2GB的环境下,切分速度约为21000字/秒,分词准确性指标F-1值达到了95%左右,基本能够满足大部分上层应用的要求。