精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
中文软件需要具有对中文文本的输入、显示、编辑、输出等基本功能. 随着计算机技术的发展, 诸如智能拼音语句输入、手写和语音自动识别输入[1 ] ; 文章的自动校对; 简体和繁体中文的自动转换;分词处理和信息摘录[2 ] ; 文本分类和自动文摘; 语音合成; 自然语言的理解和自动翻译; 自然语言接口等领域对于计算机的中文文本处理能力提出了更高的要求. 而所有这些中文处理功能都要建立在对汉语文本的分词处理这一基本功能上. 因此, 汉语分词是中文信息处理系统的基础, 有极其广泛的实际应用.
由于汉语不同于西方语言, 句子中的词语之间没有明显的形态间隔, 需要根据信息处理的需要并按照一定的规范对句子进行词语切分, 即分词. 分词不但是分类、摘要等工作的前提, 而且在很大程度上影响了这些工作的最终性能. 自动分词一直是中文信息处理研究的一个热点和难点, 其在理论和实用技术上仍存在很多问题有待于进一步探索. 目前, 对中文文档的自动分词已进行了大量研究, 提出了许多自动分词方法, 这些方法可以概括为两类: 一类是基于词典的机械分词, 另一类是基于语法知识和规则的分词.
汉语分词的传统方法是将文本中的字串和词典进行匹配, 根据这一指导思想, 在具体的实现上,人们提出了很多算法和思想. 如在文本的扫描顺序上, 有正向扫描、逆向扫描、正向和逆向相结合等方法. 在匹配原则上, 有最长匹配、最常匹配等多种原则. 但无论是哪种扫描方法、哪种匹配原则都没有从根本上解决“错分”, 尤其是岐义词的划分. 上述问题在没有非常完备的词典情况下, 尤为突出.无词典分词就是让计算机决定什么是词, 其根本思想是: 组成一个词的汉字串在文本中重复出现. 本文用后缀数组来查找这些重复出现的字符串.
中文分词的概念:
什么是中文分词?
众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我 是 一个 学生。
什么是中文分词
中文分词的意义:
要想说清楚中文分词的意义和作用,就要提到智能计算技术。简单的说,智能计算就是让机器“能看会想,能听会讲”。要想实现这样的一个目标,首先就要让机器理解人类的语言。反观人类的语言,“词是最小的能够独立活动的有意义的语言成分”,所以对于中文来讲,将词确定下来是理解自然语言的第一步,只有跨越了这一步,中文才能象英文那样过渡到短语划分、概念抽取以及主题分析,以至于自然语言理解,最终达到智能计算的最高境界,实现人类的梦想。
分词的应用方向:
中文分词主要应用于信息检索、汉字的智能输入、中外文对译、中文校对、自动摘要、自动分类等很多方面。下面就以信息检索为例来说明中文分词的应用。
通过近几年互联网的发展,互联网上的信息也在急剧膨胀,各类信息混杂在一起,要想充分利用这些信息资源就要对它们进行整理,如果面对中文信息不采用分词技术,那么整理的结果就过于粗糙,而导致资源的不可用,例如:"制造业和服务业是两个不同的行业"和"我们出口日本的和服比去年有所增长"中都有"和服",而被当作同一类来处理,结果是检索"和服"的相关信息,会将他们都检索到。
通过引入分词技术,可以使机器对信息的整理更准确、更合理,在"制造业和服务业是两个不同的行业"中"和服"不会被当作一个词来处理,那么检索"和服"当然不会将它检索到,使得检索结果更准确,效率也会大幅度的提高。
要想说清楚中文分词的意义和作用,就不得不提到智能计算技术。智能计算技术涉及的学科包括物理学、数学、计算机科学、电子机械、通讯、生理学、进化理论和心理学等等。简单的说,智能计算就是让机器"能看会想,能听会讲"。要想实现这样的一个目标,首先就要让机器理解人类的语言,只有机器理解了人类的语言文字,才能使人与机器的交流成为可能。
再反观我们人类的语言中,"词是最小的能够独立活动的有意义的语言成分",所以对于中文来讲,将词确定下来是理解自然语言的第一步,只有跨越了这一步,中文才能像英文那样过渡到短语划分、概念抽取以及主题分析,以至于自然语言理解,最终达到智能计算的最高境界,实现人类的梦想。
中文分词是中文信息处理系统的基础,有着极其广泛的实际应用。从基本的输入系统,到文字处理,以及语音合成,文本检索,文本分类,自然语言接口,自动文摘等等,无处不渗透着分词系统的应用。分词系统的完善与应用,必将促进中文信息处理系统的广泛应用,换言之,也就提高了中文软件对于中文的处理能力,这也将使得计算机用户的日常工作的效率得以提高。
1 准确性
准确率是分词系统性能的核心指标。现在有些分词系统的准确率达到98 % ,似乎已经很高了,其实不然。若这种分词系统被用来支持句法分析、汉- 外机器翻译系统,假定平均每句话有10 个汉语词,那么10 句话中会错切2 个词,含有切分错误的2 句就会被错误地处理。因此仅仅由于分词阶段的准确度不够,语言理解的准确率大概会降低20 %。可见,分词系统的准确率应达到99. 9 %以上才能基本满足上层使用的要求。
2 运行效率
分词是各种汉语处理应用系统中共同的、基础性的工作,这步工作消耗的时间应尽量少,应只占上层处理所需时间的一小部分,并应使用户没有等待的感觉, 由于汉语自然语言处理的应用系统处理对象越来越多的是大规模语料,所以分词系统的处理速度越快越好,应该每秒钟处理1 万字或5 千词以上。
3 通用性
随着Internet 的普遍应用,中文平台的处理能力不能仅限于我国,仅限于字处理,仅限于日常应用领域。作为各种高层次中文处理的共同基础,自动分词系统必须具有很好的通用性。
分词系统应支持不同地区的汉语处理,能适应不同地区的不同用字、用词,不同的语言风格,不同的专有名词构成方式;支持不同领域的应用以及不同的应用目标。同时,系统还应该具有良好的可移植性,能够方便地从一个系统平台移植到另一个系统平台上而无需很多的修改。当然,完全的通用性很难达到。
4 适用性
汉语自动分词是手段而不是目的,任何分词系统产生的结果都是为某个具体的应用服务的。好的分词系统具有良好的适用性,可以方便地集成在特定应用的系统(如全文检索系统)中。
1、基于字符串匹配的分词方法
这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的词数最小)。
还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。
一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。
对于机械分词方法,可以建立一个一般的模型,在这方面有专业的学术论文,这里不做详细论述。
2、基于理解的分词方法
这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。
3、基于统计的分词方法
从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。
到底哪种分词算法的准确度更高,目前并无定论。对于任何一个成熟的分词系统来说,不可能单独依靠某一种算法来实现,都需要综合不同的算法。笔者了解,海量科技的分词算法就采用“复方分词法”,所谓复方,相当于用中药中的复方概念,即用不同的药才综合起来去医治疾病,同样,对于中文词的识别,需要多种算法来处理不同的问题。
分词中的难题
有了成熟的分词算法,是否就能容易的解决中文分词的问题呢?事实远非如此。中文是一种十分复杂的语言,让计算机理解中文语言更是困难。在中文分词过程中,有两大难题一直没有完全突破。
1、歧义识别
歧义是指同样的一句话,可能有两种或者更多的切分方法。例如:表面的,因为“表面”和“面的”都是词,那么这个短语就可以分成“表面 的”和“表 面的”。这种称为交叉歧义。像这种交叉歧义十分常见,前面举的“和服”的例子,其实就是因为交叉歧义引起的错误。“化妆和服装”可以分成“化妆 和 服装”或者“化妆 和服 装”。由于没有人的知识去理解,计算机很难知道到底哪个方案正确。
交叉歧义相对组合歧义来说是还算比较容易处理,组合歧义就必需根据整个句子来判断了。例如,在句子“这个门把手坏了”中,“把手”是个词,但在句子“请把手拿开”中,“把手”就不是一个词;在句子“将军任命了一名中将”中,“中将”是个词,但在句子“产量三年中将增长两倍”中,“中将”就不再是词。这些词计算机又如何去识别?
如果交叉歧义和组合歧义计算机都能解决的话,在歧义中还有一个难题,是真歧义。真歧义意思是给出一句话,由人去判断也不知道哪个应该是词,哪个应该不是词。例如:“乒乓球拍卖完了”,可以切分成“乒乓 球拍 卖 完 了”、也可切分成“乒乓球 拍卖 完 了”,如果没有上下文其他的句子,恐怕谁也不知道“拍卖”在这里算不算一个词。
2、新词识别
新词,专业术语称为未登录词。也就是那些在字典中都没有收录过,但又确实能称为词的那些词。最典型的是人名,人可以很容易理解句子“王军虎去广州了”中,“王军虎”是个词,因为是一个人的名字,但要是让计算机去识别就困难了。如果把“王军虎”做为一个词收录到字典中去,全世界有那么多名字,而且每时每刻都有新增的人名,收录这些人名本身就是一项巨大的工程。即使这项工作可以完成,还是会存在问题,例如:在句子“王军虎头虎脑的”中,“王军虎”还能不能算词?
新词中除了人名以外,还有机构名、地名、产品名、商标名、简称、省略语等都是很难处理的问题,而且这些又正好是人们经常使用的词,因此对于搜索引擎来说,分词系统中的新词识别十分重要。目前新词识别准确率已经成为评价一个分词系统好坏的重要标志之一。
1、几个早期的自动分词系统
自80年代初中文信息处理领域提出了自动分词以来,一些实用性的分词系统逐步得以开发,其中几个比较有代表性的自动分词系统在当时产生了较大的影响。
CDWS分词系统是我国第一个实用的自动分词系统,由北京航空航天大学计算机系于1983年设计实现,它采用的自动分词方法为最大匹配法,辅助以词尾字构词纠错技术。其分词速度为5-10字/秒,切分精度约为1/625。
ABWS是山西大学计算机系研制的自动分词系统,系统使用 “两次扫描联想-回溯”方法,运用了较多的词法、句法等知识。其切分正确率为98.6%(不包括非常用、未登录的专用名词),运行速度为48词/分钟。
CASS是北京航空航天大学于1988年实现的分词系统。它使用正向增字最大匹配,运用知识库来处理歧义字段。其机械分词速度为200字/秒以上,知识库分词速度150字/秒(没有完全实现)。
书面汉语自动分词专家系统是由北京师范大学现代教育研究所于1991前后研制实现的,它首次将专家系统方法完整地引入到分词技术中。
2、清华大学SEG分词系统
此系统提供了带回溯的正向、反向、双向最大匹配法和全切分-评价切分算法,由用户来选择合适的切分算法。其特点则是带修剪的全切分-评价算法。经过封闭试验,在多遍切分之后,全切分-评价算法的精度可以达到99%左右。
3、清华大学SEGTAG系统
此系统着眼于将各种各类的信息进行综合,以便最大限度地利用这些信息提高切分精度。系统使用有向图来集成各种各样的信息。通过实验,该系统的切分精度基本上可达到99%左右,能够处理未登录词比较密集的文本,切分速度约为30字/秒。
4、国家语委文字所应用句法分析技术的汉语自动分词
此分词模型考虑了句法分析在自动分词系统中的作用,以更好地解决切分歧义。切词过程考虑到了所有的切分可能,并运用汉语句法等信息从各种切分可能中选择出合理的切分结果。
5、复旦分词系统
此系统由四个模块构成。一、预处理模块,利用特殊的标记将输入的文本分割成较短的汉字串,这些标记包括标点符号、数字、字母等非汉字符,还包括文本中常见的一些字体、字号等排版信息。二、歧义识别模块,使用正向最小匹配和逆向最大匹配对文本进行双向扫描,如果两种扫描结果相同,则认为切分正确,否则就判别其为歧义字段,需要进行歧义处理;三、歧义字段处理模块,此模块使用构词规则和词频统计信息来进行排歧。最后,此系统还包括一个未登录词识别模块,实验过程中,对中文姓氏的自动辨别达到了70%的准确率。系统对文本中的地名和领域专有词汇也进行了一定的识别。
6、哈工大统计分词系统
此系统能够利用上下文识别大部分生词,解决一部分切分歧义。经测试,此系统的分词错误率为1.5%,速度为236字/秒。
7、杭州大学改进的MM分词系统
系统的词典采用一级首字索引结构,词条中包括了“非连续词”(形如C1…* Cn)。系统精度的实验结果为95%,低于理论值99.73%,但高于通常的MM、RMM、DMM方法。
8、Microsoft Research 汉语句法分析器中的自动分词
微软研究院的自然语言研究所在从90年代初开始开发了一个通用型的多国语言处理平台NLPWin,据报道,NLPWin的语法分析部分使用的是一种双向的Chart Parsing,使用了语法规则并以概率模型作导向,并且将语法和分析器独立开。 实验结果表明,系统可以正确处理85%的歧义切分字段,在Pentium 200 PC上的速度约600-900字/秒。
9、北大计算语言所分词系统
本系统由北京大学计算语言学研究所研制开发,属于分词和词类标注相结合的分词系统。系统的分词连同标注的速度在Pentium 133Hz/16MB内存机器上的达到了每秒3千词以上,而在Pentium II/64MB内存机器上速度高达每秒5千词。
未登录词识别是中文自动分词技术的难点。目前大多数自动分词系统仅仅针对于新闻预料进行训练和测试,但在其他特定专业领域以及小说等文体中的切分性能却大幅下降。随着信息技术(Information Technology)、互联网络技术(Internet)的发展,可获得的语料库规模不断扩大,不规范的名称(例如绰号、诨名、笔名)、各种新的专业术语、缩略语、作者生造词语等等不断涌现,这给目前的分词系统带来了很大的困难,降低了特定专业领域文本的加工精度。
本课题研究目标是在文本中重复字串抽取的基础上,自动确定领域文本的切分单元,这对提高专业领域文本加工精度具有重要意义。