信息的飞速增加,使搜索引擎成为人们查找信息的首选工具,Google、百度等大型搜索引擎一直是人们讨论的话题。随着搜索市场价值的不断增长,愈来愈多的公司开发出本身的搜索引擎,阿里巴巴的商机搜索、8848的购物搜索等也陆续面世,天然,搜索引擎技术也成为技术人员关注的热点。算法
虽然在国外搜索引擎技术早就开始研究,但在国内仍是陆续涌现出优秀的搜索引擎,像百度等。目前在中文搜索引擎领域,国内的搜索引擎已经和国外的搜索引擎效果上相差不远。之因此能造成这样的局面,有一个重要的缘由就在于中文和英文两种语言自身的书写方式不一样,这其中对于计算机涉及的技术就是中文分词。工具
什么是中文分词搜索引擎
众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中全部的字连起来才能描述一个意思。例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机能够很简单经过空格知道student是一个单词,可是不能很容易明白“学”、“生”两个字合起来才表示一个词。把中文的汉字序列切分红有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我 是 一个 学生。翻译
中文分词和搜索引擎排序
中文分词到底对搜索引擎有多大影响?对于搜索引擎来讲,最重要的并非找到全部结果,由于在上百亿的网页中找到全部结果没有太多的意义,没有人能看得完,最重要的是把最相关的结果排在最前面,这也称为相关度排序。中文分词的准确与否,经常直接影响到对搜索结果的相关度排序。索引
中文分词技术开发
中文分词技术属于天然语言处理技术范畴,对于一句话,人能够经过本身的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。字符串
现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。下面一一分析。产品
一、基于字符串匹配的分词方法效率
这种方法又叫作机械分词方法,它是按照必定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不一样,串匹配分词方法能够分为正向匹配和逆向匹配;按照不一样长度优先匹配的状况,能够分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又能够分为单纯分词方法和分词与标注相结合的一体化方法。经常使用的几种机械分词方法以下:
正向最大匹配法(由左到右的方向);
逆向最大匹配法(由右到左的方向);
最少切分(使每一句中切出的词数最小)。
还能够将上述各类方法相互组合,例如,能够将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。因为汉语单字成词的特色,正向最小匹配和逆向最小匹配通常不多使用。通常说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果代表,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能知足实际的须要。实际使用的分词系统,都是把机械分词做为一种初分手段,还 需经过利用各类其它的语言信息来进一步提升切分的准确率。
一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词做为断点,可将原字符串分为较小的串再来进机械分词,从而减小匹配的错误率。另外一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,而且在标注过程当中又反过来对分词结果进行检验、调整,从而极大地提升切分的准确率。对于机械分词方法,能够创建一个通常的模型,在这方面有专业的学术论文,这里不作详细论述。
二、基于理解的分词方法
这种分词方法是经过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它一般包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统能够得到有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法须要使用大量的语言知识和信息。因为汉语语言知识的笼统、复杂性,难以将各类语言信息组织成机 器可直接读取的形式,所以目前基于理解的分词系统还处在试验阶段。
三、基于统计的分词方法
从形式上看,词是稳定的字的组合,所以在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。所以字与字相邻共现的频率或几率可以较好的反映成词的可信度。能够对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现几率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,即可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不须要切分词典,于是又叫作无词典分词法或统计取词方法。
但这种方法也有必定的局限性,会常常抽出一些共现频度高、但并非词的经常使用字组,例如“这一”、“之一”、“有的”、“个人”、“许多的”等,而且对经常使用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(经常使用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特色,又利用了无词典分词结合上下 文识别生词、自动消除歧义的优势。
到底哪一种分词算法的准确度更高,目前并没有定论。对于任何一个成熟的分词系统来讲,不可能单独依靠某一种算法来实现,都须要综合不一样的算法。笔者了解,海量科技的分词算法就采用“复方分词法”,所谓复方,至关于用中药中的复方概念,即用不一样的药才综合起来去医治疾病,一样,对于中文词的识别,须要多 种算法来处理不一样的问题。
分词中的难题
有了成熟的分词算法,是否就能容易的解决中文分词的问题呢?事实远非如此。中文是一种十分复杂的语言,让计算机理解中文语言更是困难。在中文分词过程当中,有两大难题一直没有彻底突破。
一、歧义识别
歧义是指一样的一句话,可能有两种或者更多的切分方法。例如:表面的,由于“表面”和“面的”都是词,那么这个短语就能够分红“表面的”和“表面的”。这种称为交叉歧义。像这种交叉歧义十分常见,前面举的“和服”的例子,其实就是由于交叉歧义引发的错误。“化妆和服装”能够分红“化妆和服装”或者“化妆和服装”。因为没有人的知识去理解,计算机很难知道到底哪一个方案正确。
交叉歧义相对组合歧义来讲是还算比较容易处理,组合歧义就必需根据整个句子来判断了。例如,在句子“这个门把手坏了”中,“把手”是个词,但在句子“请把手拿开”中,“把手”就不是一个词;在句子“将军任命了一名中将”中,“中将”是个词,但在句子“产量三年中将增加两倍”中,“中将”就再也不是词。
这些词计算机又如何去识别?若是交叉歧义和组合歧义计算机都能解决的话,在歧义中还有一个难题,是真歧义。真歧义意思是给出一句话,由人去判断也不知道哪一个应该是词,哪一个应该不是词。例如:“乒乓球拍卖完了”,能够切分红“乒乓 球拍 卖 完 了”、也可切分红“乒乓球 拍卖 完 了”,若是没有上下文其余的句子,恐怕谁也不知道“拍卖”在这里算不算一个词。
二、新词识别
新词,专业术语称为未登陆词。也就是那些在字典中都没有收录过,但又确实能称为词的那些词。最典型的是人名,人能够很容易理解句子“王军虎去广州了”中,“王军虎”是个词,由于是一我的的名字,但要是让计算机去识别就困难了。若是把“王军虎”作为一个词收录到字典中去,全世界有那么多名字,并且每时每刻都有新增的人名,收录这些人名自己就是一项巨大的工程。即便这项工做能够完成,仍是会存在问题,例如:在句子“王军虎头虎脑的”中,“王军虎”还能 不能算词?
新词中除了人名之外,还有机构名、地名、产品名、商标名、简称、省略语等都是很难处理的问题,并且这些又正好是人们常用的词,所以对于搜索引擎来讲,分词系统中的新词识别十分重要。目前新词识别准确率已经成为评价一个分词系统好坏的重要标志之一。
中文分词的应用
目前在天然语言处理技术中,中文处理技术比西文处理技术要落后很大一段距离,许多西文的处理方法中文不能直接采用,就是由于中文必需有分词这道工序。中文分词是其余中文信息处理的基础,搜索引擎只是中文分词的一个应用。其余的好比机器翻译(MT)、语音合成、自动分类、自动摘要、自动校对等等,都须要用到分词。由于中文须要分词,可能会影响一些研究,但同时也为一些企业带来机会,由于国外的计算机处理技术要想进入中国市场,首先也是要解决中文分词 问题。在中文研究方面,相比外国人来讲,中国人有十分明显的优点。
分词准确性对搜索引擎来讲十分重要,但若是分词速度太慢,即便准确性再高,对于搜索引擎来讲也是不可用的,由于搜索引擎须要处理数以亿计的网页,若是分词耗用的时间过长,会严重影响搜索引擎内容更新的速度。所以对于搜索引擎来讲,分词的准确性和速度,两者都须要达到很高的要求。
目前研究中文分词的大可能是科研院校,清华、北大、中科院、北京语言学院、东北大学、IBM研究院、微软中国研究院等都有本身的研究队伍,而真正专业研究中文分词的商业公司除了海量科技之外,几乎没有了。科研院校研究的技术,大部分不能很快产品化,而一个专业公司的力量毕竟有限,看来中文分词技术要想更好的服务于更多的产品,还有很长一段路。