或者

搜索引擎中的中文分词技术

作者:希腊神话 浏览:155 发布时间:2017-07-18
分享 评论 0

    随着社会信息的飞速增长,人们使用百度、Google、yisou、中搜等大型搜索引擎搜索最新的信息,成为一种必要和时尚,从而也使得搜索市场价值不断增加,越来越多的公司开发自己的搜索引擎,如阿里巴巴的商机搜索、8848的购物搜索等也陆续面世,自然,搜索引擎技术也成为技术人员关注的热点.


    目前在中文搜索引擎领域,虽然中文和英文两种语言自身的书写方式不同,但国内的搜索引擎已经和国外的搜索引擎效果上相差不远,这其中涉及的计算机技术就是中文分词.


    一、 中文分词和搜索引擎


    众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思.例如,英文句子I am a student,用中文则为:"我是一个学生".计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白「学」、「生」两个字合起来才表示一个词.把中文的汉字序列切分成有意义的词,就是中文分词.


    对于搜索引擎来说,最重要的并不是找到所有结果,因为在上百亿的网页中找到所有结果没有太多的意义,没有人能看得完,最重要的是把最相关的结果排在最前面,这也称为相关度排序.中文分词的准确与否,常常直接影响到对搜索结果的相关度排序.


    二、 中文分词技术


    中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法. 现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法.


    、基于字符串匹配的分词方法,这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个「充分大的」机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词).


    常用的几种机械分词方法如下: 正向最大匹配法(由左到右的方向); 逆向最大匹配法(由右到左的方向); 最少切分(使每一句中切出的词数最小). 还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法.由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用.一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少.统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245.但这种精度还远远不能满足实际的需要.实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率.一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率.另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率. 对于机械分词方法,可以建立一个一般的模型,在这方面有专业的学术论文,这里不做详细论述.


    、基于理解的分词方法,这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果.其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象.它通常包括三个部分:分词子系统、句法语义子系统、总控部分.在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程.这种分词方法需要使用大量的语言知识和信息.由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段.


    、基于统计的分词方法,从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词.因此字与字相邻共现的频率或概率能够较好的反映成词的可信度.可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息.定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率.互现信息体现了汉字之间结合关系的紧密程度.当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词.这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法.但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如「这一」、「之一」、「有的」、「我的」、「许多的」等,并且对常用词的识别精度差,时空开销大.实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点.


    到底哪种分词算法的准确度更高,目前并无定论.对于任何一个成熟的分词系统来说,不可能单独依靠某一种算法来实现,都需要综合不同的算法.据了解,海量科技的分词算法就采用「复方分词法」,所谓复方,相当于用中药中的复方概念,即用不同的药才综合起来去医治疾病,同样,对于中文词的识别,需要多种算法来处理不同的问题.


    三、 分词中的难题


    有了成熟的分词算法,不一定就能容易的解决中文分词的问题.中文是一种十分复杂的语言,让计算机理解中文语言更是困难.在中文分词过程中,有两大难题一直没有完全突破.


    一是歧义识别. 歧义是指同样的一句话,可能有两种或者更多的切分方法.例如:表面的,因为「表面」和「面的」都是词,那么这个短语就可以分成「表面 的」和「表 面的」.这种称为交叉歧义.像这种交叉歧义十分常见,前面举的「和服」的例子,其实就是因为交叉歧义引起的错误.「化妆和服装」可以分成「化妆 和 服装」或者「化妆 和服 装」.由于没有人的知识去理解,计算机很难知道到底哪个方案正确. 交叉歧义相对组合歧义来说是还算比较容易处理,组合歧义就必需根据整个句子来判断了.例如,在句子「这个门把手坏了」中,「把手」是个词,但在句子「请把手拿开」中,「把手」就不是一个词;在句子「将军任命了一名中将」中,「中将」是个词,但在句子「产量三年中将增长两倍」中,「中将」就不再是词.这些词计算机又如何去识别? 如果交叉歧义和组合歧义计算机都能解决的话,在歧义中还有一个难题,是真歧义.真歧义意思是给出一句话,由人去判断也不知道哪个应该是词,哪个应该不是词.例如:「乒乓球拍卖完了」,可以切分成「乒乓 球拍 卖 完 了」、也可切分成「乒乓球 拍卖 完 了」,如果没有上下文其他的句子,恐怕谁也不知道「拍卖」在这里算不算一个词.


    二是新词识别. 新词,专业术语称为未登录词.也就是那些在字典中都没有收录过,但又确实能称为词的那些词.最典型的是人名,人可以很容易理解句子「王军虎去广州了」中,「王军虎」是个词,因为是一个人的名字,但要是让计算机去识别就困难了.如果把「王军虎」做为一个词收录到字典中去,全世界有那么多名字,而且每时每刻都有新增的人名,收录这些人名本身就是一项巨大的工程.即使这项工作可以完成,还是会存在问题,例如:在句子「王军虎头虎脑的」中,「王军虎」还能不能算词? 新词中除了人名以外,还有机构名、地名、产品名、商标名、简称、省略语等都是很难处理的问题,而且这些又正好是人们经常使用的词,因此对于搜索引擎来说,分词系统中的新词识别十分重要.目前新词识别准确率已经成为评价一个分词系统好坏的重要标志之一.