1 课题概述随着网络的高速发展,社会的信息化水平不断提高,人们越来越习惯,也越来越依赖从互联网中获取信息。
面对当前信息呈现的爆炸性增长趋势,我们迫切地需要优质、准确、快捷、简单、合理的手段对海量信息进行检索,从中获取有效的数据。
作为海量信息检索中最首要的预处理手段,分词技术应运而生。
在自然语言处理中,词是最小的能够独立活动的有意义的语言成分。
而分词技术指的是将文本拆分成词的一种技术。
它属于自然语言处理技术的范畴,是文本分类、数据检索、信息抽取、机器翻译、自动摘要、文本语音输入输出等研究领域的基础所在。
至于中文分词(Chinese Word Segmentation),则是将中文文本中的汉字序列合理切分成一个个单独的词,并对其进行分析处理,然后将文本中的字序列按照一定的规则重新组合成词序列的过程。
众所周知,中文与作为拉丁语系语言代表的英文相比,有着明显的区别。
英文以空格作为天然的分隔符,词与词之间的区分很明显,并不需要特殊的分词技术。
而中文由于继承了古代汉语的传统,以字作为基本的书写单位,词都处于具体的语句之中,所以并不存在天然的界限。
因此,仅仅通过句子或段落间的分隔标志进行切分是不可行的。
同时,由于中文语义的复杂性与语法的多变性,大多数英文分词技术不能直接适用于中文分词。
尽管如此,中文分词技术依然是中文信息处理的基础与关键所在。
作为自然语言处理与信息检索领域的研究热点,中文分词技术不断地发展,并被广泛应用于信息检索、搜索引擎、机器翻译、中文校对、文本语音输入输出等方面。
而近年来对中文分词技术的需求与要求的不断提高,也在一定程度上刺激了中文分词技术的发展。
目前,中文分词技术正在逐渐迈向成熟。
但是在其关键技术上,依然有改进的空间。
本课题的目的即在于,在前人的研究基础上,通过对中文数据检索中的分词检索机制进行研究,以期初步实现一种可行的中文分词技术,使之具备一定的实用意义与理论价值。
2 国内外发展现状自20世纪80年代初至今,中文分词技术的概念被提出以来,中文信息处理领域有了长足的进步与发展。
其发展历程大致如下:1983年,梁南元等人将最大匹配法—MM方法(The Maximum Matching Method)与逆向的最大匹配法—RMM方法(The Reverse Maximum Matching Method)两种分词方法应用于中文分词系统CDWS(The Modern Printed Chinese Distinguishing Word System,现代书面汉语自动分词系统)中。
1989年,揭春雨、梁南元等人在考查中文信息处理领域中已有的几种中文分词方法后,提出自动分词方法的结构模型正向增大最大匹配法ASM,并对几种中文分词方法的时间复杂度及其对分词速度、分词精度的影响进行分析,同时指出在中文分词中设立“切分标志”并无意义。
随后于1991年设计并实现了中文分词系统CASS(Chinese Automatic Segmenting System,汉语自动分词实用系统)。
1991年,何克抗等人通过对歧义切分字段产生的根源和性质进行深入分析,把歧义字段从性质上分为四类,并给出了消除每一类歧义切分字段的有效方法。
在对歧义字段进行统计分析的基础上提出了切分精度的“四级指标体系”,并论证了专家系统方法是实现自动分词系统的最佳方案。
1994年,孙茂松等人就中文分词中特有的中文姓名自动辨识作了深入的研究,提出了一种中文文本中自动辨识中文姓名的算法。
通过从新华通讯社新闻语料库中随机抽取的300个包含中文姓名的句子作为测试样本,结果表明,召回率达到了99.77%。
1996年,吴胜远对当时现有的汉语分词方法作了概述后,提出了一种新的汉语分词方法——单扫描分词方法,并对单扫描汉语分词方法的时间复杂度作了分析。
分析表明,单扫描分词方法的时间复杂度为2.89,比当时现有的分词方法的时间复杂度12.32小得多。
单扫描分词方法无论在理论,还是在实践上都有重大意义。
随后,又根据多级内码理论,成功设计出了一种并行分词方法,大大提高了分词速度。
同时,这种并行分词方法也便于设计成集成电路。
1998年,尹峰等人将人工神经网络技术应用于汉语自动分词的隐射模型和性能,着重分析网络结构和学习算法对歧义词切分的影响,在大量仿真实验的基础上,设计并实现了基于神经网络的汉语自动分词系统。
1999年,黄德根等人提出基于一种最长次长匹配原则的汉语自动分词算法,具有较好的分词效果。
随后于2010年,在最长次长匹配分词的基础上,提出一种一体化同步词法分析机制,实现了分词和词性标注的一体化、未登录词识别与分词的一体化以及不确定词性未登录词处理的一体化。
2000年,陈桂林等人在介绍了一种高效的支持首字Hash和标准二分查找,且不显词条长度的中文电子词表数据后,提出了一种改进的快速分词算法。
在快速查找二字词的基础上,利用近邻匹配方法来查找多字词,明显提高了分词效率。
分析表明,该分词算法的时间复杂度为1.66,在速度方面,由于当时所见的同类算法。
2002年,李振星等人在对中文编码体系和中文分词的算法进行研究的基础上,提出了一种新的分词词典,并基础这种分词设计了一种快速的分词算法——全二分最大匹配快速分词算法。
2003年,首届国际中文分词评测Bakeoff(国内863、973分词测评)在日本札幌举办,基于字标注的统计学方法引起人们的广泛关注。
Bakeoff通过不同标准的分词语料同台测试,完成了从“分词规范”到“规范+词表”,再从“规范+词表”到“分词语料库”的“词语”的定义过程。
后来,经过多年的分析与研究,中文分词技术逐渐趋于成熟,中文分词系统也逐渐被应用于中文信息处理的各个领域。
以下是自中文分词技术被提出以来,相对成熟的几个中文分词系统:(1)CDWS分词系统CDWS分词系统由北京航空航天大学于1983年设计并实现,是我国第一个自动分词系统。
它采用最大正向匹配分词算法,并结合尾字构词知识进行纠错。
切分速度为11-15字/秒。
(2)CASS分词系统CASS分词系统由北京航空航天大学于1989年设计并实现。
它采用正向增字最大匹配分词算法,包括总控程序、自动分词、设施管理、分词词典和知识库五个部分,并结合知识库处理歧义字段。
切分速度为200字/秒。
(3)SEG/SEGTAG分词系统SEG/SEGTAG分词系统均由清华大学设计并实现。
其区别在于SEG分词系统集成了正向、逆向、双向最大匹配以及全切分等几种分词算法,而SEGTAG分词系统则在此基础上添加了切分标志。
分析表明,两者的切分精度均可达到99%左右。
(4)ICTCLAS分词系统ICTCLAS分词系统由中国科学院设计并实现,它采用层叠隐马尔可夫模型,将中文分词、词性标注、歧义词处理和未登录词识别等集成到一个完整的系统框架中,是目前应用最广泛的分词系统。
3 课题内容随着人们对中文分词技术的不断研究,各种各样的中文分词算法被不断提出,评价算法优劣的标准也逐渐趋于定式,而针对中文分词技术存在的难点问题,也取得了不同程度上的进展。
本文首先分析了当前中文分词技术的研究背景及发展状况,随后研究了主流的几种中文分词算法及其中文分词系统性能的评价指标,并根据中文分词的技术难点做出详细介绍,最后将在第5章节中提出初步的技术难点解决方案。
3.1 主流中文分词算法简介目前的中文分词算法主要分为三大类:基于字符串匹配的分词算法、基于统计的分词算法与基于理解的分词算法。
(1)基于字符串匹配的分词算法基于字符串匹配的分词算法,又称作机械分词方法,或基于字典的分词方法。
该算法按照一定的策略将待切分的汉字串与一个“充分大”的词库进行匹配,若找到某个词条,则匹配成功。
它有三个要素:文本扫描顺序、匹配原则和分词词典。
文本扫描顺序分为正向扫描、逆向扫描和双向扫描三种。
匹配原则分为最大匹配、最小匹配、最佳匹配和逐词匹配等。
该分词算法速度较快,但容易产生歧义、也不能解决未登录词的问题。
①最大正向匹配分词算法假设词典最长词条所含字数为n,则取被处理文本当前字符串序列中的前n 个字符作为匹配字段,在分词词典中进行查找,若找到某个词条,则匹配成功。
若找不到,则匹配失败,并去掉匹配字段最后一个字,剩下的字符作为新的匹配字段,再匹配下去,直到匹配成功为止。
②最大逆向匹配分词算法基本方法与最大正向匹配分词算法相同,区别在于该算法从待切分汉字串的末尾开始处理,若匹配不成功则去掉最前面的一个汉字。
根据大量测试数据统计结果表明,单纯使用最大正向匹配分词算法的错误率为1/169,单纯使用最大逆向匹配分词算法的错误率为1/245。
逆向匹配的切分精度略高于正向匹配,同时,在处理歧义字段的精度上,逆向匹配同样略高于正向匹配。
基于上述两种最大匹配算法,产生了一种新的名为双向匹配的分词算法,其原理为将最大正向匹配分词算法与最大逆向匹配分词算法的切分结果相结合,切分精度相对两者有了提高。
由于其目的着重于歧义字段的检测与纠错,因此能够消解部分歧义现象。
但执行算法时需要进行双向扫描,时间复杂度有所增加。
③最佳匹配分词算法将词条按照词频大小进行排列,缩短对分词词典检索时间,降低了分词的时间复杂度,提高了分词速度。
这是对分词词典的一种组织方式,对分词精度没有影响。
由于分词词典每个词条前都有一个词的长度的数据项,因此空间复杂度有所增加。
④切分标志算法切分标志分为自然切分标志和非自然切分标志。
自然切分标志指的是文本中出现的所有非文字符号,如标点符号等。
非自然标志指的是利用词缀和不构成词的词,如单音词、象声词等。
该算法对分词精度没有影响。
由于需要额外消耗时间来扫描切分标志,花费存储空间来存放非自然切分标志,因此时间复杂度和空间复杂度都有所增加。
(2)基于统计的分词算法基于统计的分词算法,首先需要采用全切分算法将词库中的词条按照长短顺序进行排列,并以此为基础搜索待处理的汉字串,知道把所有可能的词全部切分出来。
然后综合运用统计语言模型如N-gram、互信息、隐马尔可夫、最大熵等对结果进行判定。
该算法需要对已有的训练集或语料库进行预处理,其复杂度和规模庞大,并且由于分词中存在大量的数据概率计算,导致时间复杂度和空间复杂度极高。
(3)基于理解的分词算法基于理解的分词算法,通过分词的同时进行语义和句法分析,利用语义信息和句法信息处理字段歧义。
由于该算法需要大量的语言知识和信息,而汉语又具有笼统和复杂性的特点,目前仍处于初始实验阶段。
①专家系统分词算法从专家系统的角度把分词过程独立出来,使知识库的维护和分词过程互不干扰,易于管理和维护。
②神经网络分词算法模拟人脑并行、分布处理和建立数值计算模型,将分词知识存入神经网络内部,通过自学习和训练修改内部权值,达到分词效果。