石家庄经济学院本科生毕业论文
摘 要
中文分词是信息提取、信息检索、机器翻译、文本分类、自动文摘、语音识别、文本语音转换、自然语言理解等中文信息处理领域的基础,虽然研究了很多年,但是中文分词依然是中文信息处理的瓶颈之一。
本文首先将已有的分词算法进行了分析、总结和归纳,讨论了中文识别一直难以很好解决的两大问题:歧义识别和未登录词。接着在基于词典的基础上将最大正向匹配和最大逆向匹配结合起来,得到了双向匹配分词算法,并且使用了自己提出的字典机制(子字典机制)实现了一个基于双向匹配算法的中文分词系统。
关键词:中文分词;双向匹配;子字典机制
ABSTRACT
Chinese word segmentation is the basis of information extraction, information retrieval, machine translation, text categorization, automatic summarization, speech recognition, text-speech, natural language understanding and other Chinese information processing , although Chinese word segmentation has been studied for many years, the Chinese word is one of the Bottleneck of Chinese information processing .
Firstly, this paper is to present the segmentation algorithm which has been analyzed, summarized, discussed the implementation of the Chinese has not been identified two major problems: ambiguous word recognition and not landing. Then, the basis of the dictionary will be based on maximum matching and maximum reverse positive match together to form a two-way matching word segmentation algorithm, and uses its own dictionary mechanism proposed by (a dictionary mechanism.) to achieve a two-way matching algorithm based on Chinese word segmentation system.
Key words: Chinese word; two-way match; Sub-dictionary mechanism
Ⅰ
石家庄经济学院本科生毕业论文
目 录
摘要.............................................................................................................................Ⅰ ABSTRACT.................................................................................................................Ⅰ 1引言.............................................................................................................................1 1.1 研究背景、目的及意义...........................................................................................1 1.2 中文分词的现状....................................................................................................1 1.3 本文的主要创新点................................................................................................3 1.4 课题任务和论文结构............................................................................................3 2 中文分词简介...........................................................................................................4 2.1 中文分词问题描述.................................................................................................4 2.2 中文分词难点分析................................................................................................4 2.3 主要的分词算法....................................................................................................6 3 双向匹配算法和子字典机制...................................................................................8 3.1双向匹配算法.........................................................................................................8 3.2 基于词典的分词算法的词典机制......................................................................13 3.3 小结......................................................................................................................16 4 中文分词系统的设计与实现.................................................................................17 4.1 系统设计与原则..................................................................................................17 4.2 中文分词系统的设计..........................................................................................17 4.3 中文分词结果的实现..........................................................................................19 5 测试.........................................................................................................................24 5.1 测试环境和测试方案..........................................................................................24 5.2 中文分词系统评价标准......................................................................................24 5.3 实验结果和结论..................................................................................................24 结论.............................................................................................................................27 致谢.............................................................................................................................28 参考文献.....................................................................................................................29
Ⅱ
石家庄经济学院本科生毕业论文
基于双向匹配的中文分词算法的研究与实现
1 引言
1.1 研究背景、目的及意义
随着信息时代的到来,可供人们查阅和检索的中文信息越来越多,如何在浩如烟海的中文信息世界里找到自己需要的资料成为一个越来越重要需要研究的课题。在当今时代,要处理迅猛增长的信息,手工处理已经变得不太现实。因此出现了自动化出来方法,自动化处理方法帮助人们检索、管理信息,来解决现在社会信息丰富而知识贫乏的现状。目前已经出现了很多自动化的工具诸如自动摘要、自动文件检索等语言处理技术,在这些技术内的一个核心关键是主题词,对于主题词的提取有助于简化此类工作,而如何找到主题词是需要中文分词技术的。此外中文分词也是搜索引擎,翻译等技术的基础。
中文分词,顾名思义,就是借助计算机自动给中文断句,使其能够正确表达所要表达的意思。中文不同于西文,没有空格这个分隔符,同时在中文中充满了大量的同义词,相近词,如何给中文断句是个非常复杂的问题,即使是手工操作也会出现问题。中文分词是信息提取、信息检索、机器翻译、文本分类、自动文摘、语音识别、文本语音转换、自然语言理解等中文信息处理领域的基础研究课题[1]。对于中文分词的研究对于这些方面的发展有着至关重要的作用。可以这样说,只要是与中文理解相关的领域,都是需要用到中文分词技术的。因此对于中文分词技术的研究,对于我国计算机的发展有着至关重要的作用。
计算机对中文和西文的处理技术原理基本相同,但是由于中文本身的特点,我们必须引入中文处理技术,而中文分词技术则是其中的关键,是其他中文处理技术的基础。在我国中文分词已经被研究了三十多年,但是这仍是制约中文信息助理的瓶颈之一,它主要存在语言学和计算机科学等两方面的困难[1]。对于语言学方面的内容本文不再赘述,本文主要讲解计算机科学方面的内容。在计算机科学,仍有两大难题未能很好的解决,一是歧义识别问题,二是未登录词的处理问题。这两类问题解决不好,那么中文分词就无法解决,本文系统的讲解了这两类问题,以及遇到的困难等。
1.2 中文分词的现状
最早的中文分词方法是由北京航空航天大学的梁南元教授提出的一种基于“查字典”分词方法。该方法的思想事把整个中文句子,读一遍,然后把字典里有的词都单独标示出来,当遇到复合词的时候,(例如石家庄经济学院),就找到最长的词匹配,遇到不认识的字符串就分割成单个文字。这种分词方法效率并不高,但它的提出为中文分词技术奠定了基础。
在接下来的近30年的研究中,许多研究者实现了中文分词基于词典和基于概率统计的很多算法。现在中文分词的算法主要包括对于中文分词的研究主要有基于词典的分词方法,基于统计的分词方法,基于理解的分词方法等。其中基于词典的分词方法是当今的主流,可以说现在出现的分词系统,很多都是在基于词典的基础上再结合另外的一种或两种方法而成的。基于词典的分词方法又称机械分词方法,主要包括最大正向匹配,最大逆向匹配,最少切分法等。不仅对于算法的研究,目前国内已有许多分词系统相继开发完成。文[2]对现在的各个
- 1 -
石家庄经济学院本科生毕业论文
分词系统及其特点做了阐述如下:
SCWS
Hightman开发的一套基于词频词典的机械中文分词引擎,它能将一整段的汉字基本正确的切分成词。采用的是采集的词频词典,并辅以一定的专有名称,人名,地名,数字年代等规则识别来达到基本分词,经小范围测试大概准确率在 90% ~ 95% 之间,已能基本满足一些小型搜索引擎、关键字提取等场合运用。45Kb左右的文本切词时间是0.026秒,大概是1.5MB文本/秒,支持PHP4和PHP 5。 ICTCLAS
这是最早的中文开源分词项目之一,ICTCLAS在国内973专家组组织的评测中活动获得了第一名,在第一届国际中文处理研究机构SigHan组织的评测中都获得了多项第一名。ICTCLAS3.0分词速度单机996KB/s,分词精度98.45%,API不超过200KB,各种词典数据压缩后不到3M.ICTCLAS全部采用C/C++编写,支持Linux、FreeBSD及Windows系列操作系统,支持C/C++、C#、Delphi、Java等主流的开发语言。 HTTPCWS
HTTPCWS 是一款基于HTTP协议的开源中文分词系统,目前仅支持Linux系统。HTTPCWS 使用“ICTCLAS 3.0 2009共享版中文分词算法”的API进行分词处理,得出分词结果。HTTPCWS 将取代之前的 PHPCWS 中文分词扩展 CC-CEDICT
一个中文词典开源项目,提供一份以汉语拼音为中文辅助的汉英辞典,截至2009年2月8日,已收录82712个单词。其词典可以用于中文分词使用,而且不存在版权问题。Chrome中文版就是使用的这个词典进行中文分词的。
IK
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。Paoding
Paoding(庖丁解牛分词)基于Java的开源中文分词组件,提供lucene和solr 接口,具有极 高效率 和 高扩展性 。引入隐喻,采用完全的面向对象设计,构思先进。 高效率:在PIII 1G内存个人机器上,1秒 可准确分词 100万 汉字。 采用基于 不限制个数 的词典文件对文章进行有效切分,使能够将对词汇分类定义。 能够对未知的词汇进行合理解析 仅支持Java语言。 MMSEG4J
MMSEG4J基于Java的开源中文分词组件,提供lucene和solr 接口 1、mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。 2、MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%。mmseg4j 已经实现了这两种分词算法 盘古分词
- 2 -
石家庄经济学院本科生毕业论文
盘古分词是一个基于.net 平台的开源中文分词组件,提供lucene(.net 版本) 和HubbleDotNet的接口 高效:Core Duo 1.8 GHz 下单线程 分词速度为 390K 字符每秒 准确:盘古分词采用字典和统计结合的分词算法,分词准确率较高。 功能:盘古分词提供中文人名识别,简繁混合分词,多元分词,英文词根化,强制一元分词,词频优先分词,停用词过滤,英文专名提取等一系列功能。
本文认为,虽然我国对于中文分词的研究有了一定的成绩,但是我国对于中文分词的研究还处于初级阶段,虽然研究人员也提出了一些中文分词技术的重要思想和方法,但是对于中文分词的两大基本问题(歧义识别问题和未登录词问题)还没有很好的解决,所研发的中文分词系统在不同领域所达到的分词精度也不尽相同。这些都是我们将来对中文分词的研究方向。
1.3 本文的主要创新点
(1)对于词典在内存中的组织,本文主要讲解了现有的词典机制,并提出了子字典的概念:将字数相同的词语组织在一起,从而提高了词典的匹配速度;
(2)本文采用双向匹配的分词算法,双向匹配的分词算法主要是将最大正向匹配和最大逆向匹配相结合的分词方法,这对于歧义词语的发现和解决提出了一个很好的方法;
(3)本文支持词典的新增,这很好的解决了未登录词的问题,并支持专业词汇的载入,从而提高了分词的精准度。
1.4 课题任务和论文结构
本文针对现有的分词系统的优缺点,及时准确的掌握分词系统的发展现状和工作原理,并在分析现有系统的基础上自主实现了一个初步的分词系统,通过实践来发现问题,优化系统。在经典的分词算法的基础上进行了改进,希望通过良好的数据存储与组织方式来实现一个比较快速,词典比较全面,分词结果比较精确的分词系统。本文对于深入的研究中文分词,打下了良好的基础,试图为今后的的研究工作提出一个比较系统的研究方案。
中文分词是自然语言信息处理的基础性课题之一。本文首先从目前语言信息处理的瓶颈入手,提出了自然语言信息处理的关键技术——中文分词。接下来第一章阐述了中文分词机制和中文分词的研究背景、意义,和中文分词的现状。第二章主要是对中文分词进行了介绍,主要包括中文分词的问题描述,中文分词的难点,中文分词的两大基本问题,中文分词现有的算法思想和优缺点等内容。第三章主要讲解本文自己的分词算法和词典机制,第四章主要讲解了本文系统设计的主要思想和步骤,对于算法的思想,词典数据结构的设计和实现,和算法的主要步骤进行了讲解。第五章主要是对系统进行了测试 ,提出了三种不同的测试方案,来从不同角度对系统进行了测试,从分词速度和分词精确度对系统进行了评价,提出了本文词典机制和算法的优缺点。最后对本文进行了总结,对下一步的工作进行了展望。
- 3 -