中文搜索引擎核心技术揭密 中文分词
2009-07-01 来源:电脑报数位学院 网友评论0 条 进入电脑报知道
信息的飞速增加,使搜索引擎成为人们查找信息的首选工具,Google、百度、中国搜索等大型搜索引擎一直是人们讨论的话题。随着搜索市场价值的不断增 添,越来越多的公司开发出自己的搜索引擎,阿里巴巴的商机搜索、8848的购物搜索等也陆续面世,自然,搜索引擎技巧也成为技术职员关注的热门。
搜 索引擎技术的研究,国外比中国要早近十年,从最早的Archie,到后来的Excite,以及altvista、overture、google等搜索引 擎面世,搜索引擎发展至今,已经有十几年的历史,而国内开端研讨搜索引擎是在上世纪末本世纪初。在很多范畴,都是国外的产品和技巧一统天下,特殊是当某种 技术在国外研究多年而国内才开端的情形下。例如操作系统、字处理软件、阅读器等等,但搜索引擎却是个例外。固然在国外搜索引擎技术早就开端研究,但在国内 还是陆续出现出优良的搜索引擎,像百度(http://www.baidu.com)、中搜(http://www.zhongsou.com)等。目前 在中文搜索引擎范畴,国内的搜索引擎已经和国外的搜索引擎后果上相差不远。之所以能形成这样的局势,有一个重要的原因就在于中文和英文两种语言自身的书写 方法不同,这其中对于盘算机涉及的技术就是中文分词。
什么是中文分词
众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中 文是以字为单位,句子中所有的字连起来才干描写一个意思。例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简略通过空格知道student是一个单词,但是不能很轻易清楚“学”、“生”两个字合起来 才表现一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我 是 一个 学生。
中文分词和搜索引擎
中 文分词到底对搜索引擎有多大影响?对于搜索引擎来说,最重要的并不是找到所有结果,由于在上百亿的网页中找到所有结果没有太多的意义,没有人能看得完,最 重要的是把最相关的结果排在最前面,这也称为相干度排序。中文分词的精确与否,经常直接影响到对搜索结果的相干度排序。笔者最近替朋友找一些关于日本和服 的材料,在搜索引擎上输进“和服”,得到的成果就发明了很多问题。下面就以这个例子来阐明分词对搜索结果的影响,在现有三个中文搜索引擎上做测试,测试方 式是直接在Google(http://www.google.com)、百度(http://www.baidu.com)、中搜(http: //www.zhongsou.com)上以“和服”为要害词进行搜索:
在Google上输进“和服”搜索所有中文简体网页,总共结果507,000条,前20条结果中有14条与和服一点关系都没有。在第一页就有以下过错:
“通讯信息报:瑞星以技术和服务开辟网络安全市场”
“使用纯HTML的通用数据治理和服务- 开发者- ZDNet ...”
“陈慧琳《心口不一》化装和服装自己包办”
“::外交部:中国境外领事维护和服务指南(2003年版) ...”
“产品和服务”
等等。第一页只有三篇是真正在讲“和服”的结果。
在百度上输进“和服”搜索网页,总共结果为287,000条,前20条成果中有6条与和服一点关系都没有。在第一页有以下过错:
“福建省晋江市恒和服装有限公司系独资企业”
“关于商品和服务履行明码标价的规定”
“青岛东和服装装备”
在中搜上输入“和服”搜索网页,总共结果为26,917条,前20条结果都是与和服相关的网页。
这 次搜索引擎结果中的毛病,就是由于分词的不准确所造成的。通过笔者的懂得,Google的中文分词技术采取的是美国一家名叫Basis Technology(http://www.basistech.com)的公司供给的中文分词技术,百度使用的是自己公司开发的分词技术,中搜使用的 是国内海量科技(http://www.hylanda.com)供给的分词技术。由此可见,中文分词的准确度,对搜索引擎结果相干性和准确性有相当大的 关系。
中文分词技术
中文分词技术属于自然语言处理技术范围,对于一句话,人可以通过自己的知识来清楚哪些是词,哪些不是词,但如何让计算机也能理解?其处理进程就是分词算法。
现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于懂得的分词方法和基于统计的分词方法。
1、基于字符串匹配的分词办法
这 种方法又叫做机械分词方法,它是依照必定的策略将待剖析的汉字串与一个“充足大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配胜利(识别 出一个词)。依照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情形,可以分为最大(最长)匹配和最小(最短)匹 配;依照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的词数最小)。
还 可以将上述各种办法相互组合,例如,可以将正向最大匹配方式和逆向最大匹配方法联合起来构成双向匹配法。由于汉语单字成词的特色,正向最小匹配和逆向最小 匹配一般很少应用。一般说来,逆向匹配的切分精度略高于正向匹配,碰到的歧义现象也较少。统计成果表明,单纯使用正向最大匹配的过错率为1/169,单纯 使用逆向最大匹配的毛病率为1/245。但这种精度还远远不能满足实际的须要。实际使用的分词系统,都是把机械分词作为一种初分别段,还需通过应用各种其 它的语言信息来进一步进步切分的正确率。
一种方法是改良扫描方法,称为特点扫描或标记切分,优先在待剖析字符串中识别和切分出一些带有显明特 点的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰盛的词类信息 对分词决策供给辅助,并且在标注进程中又反过来对分词结果进行检验、调剂,从而极大地进步切分的准确率。
对于机械分词方法,可以树立一个一般的模型,在这方面有专业的学术论文,这里不做具体阐述。
2、基于理解的分词方法
这 种分词方式是通过让盘算机模仿人对句子的懂得,到达识别词的后果。其基础思想就是在分词的同时进行句法、语义剖析,应用句法信息和语义信息来处置歧义现 象。它通常包含三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的和谐下,分词子体系可以获得有关词、句子等的句法和语义信息来对分词歧义进 行断定,即它模仿了人对句子的理解进程。这种分词办法须要应用大批的语言知识和信息。由于汉语语言知识的笼统、庞杂性,难以将各种语言信息组织成机器可直 接读取的情势,因此目前基于懂得的分词系统还处在实验阶段。
3、基于统计的分词方法
从情势上看,词是稳固的字的组合,因此在高低文 中,相邻的字同时呈现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反应成词的可信度。可以对语料中相邻共现的各个字的组 合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密水平。当紧密水 平高于某一个阈值时,便可以为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方 法。但这种方法也有必定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“很多的”等,并且对 常用词的识别精度差,时空开销大。实际利用的统计分词系统都要使用一部基础的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即 将串频统计和串匹配联合起来,既施展匹配分词切分速度快、效力高的特色,又应用了无词典分词联合高低文识别生词、主动打消歧义的长处。
到底哪 种分词算法的准确度更高,目前并无定论。对于任何一个成熟的分词系统来说,不可能单独依附某一种算法来实现,都需要综合不同的算法。笔者懂得,海量科技的 分词算法就采取“复方分词法”,所谓复方,相当于用中药中的复方概念,即用不同的药才综合起来去医治疾病,同样,对于中文词的识别,需要多种算法来处理不 同的问题。
分词中的困难
有了成熟的分词算法,是否就能轻易的解决中文分词的问题呢?事实远非如此。中文是一种十分庞杂的语言,让计算机理解中文语言更是艰苦。在中文分词过程中,有两大困难一直没有完整突破。
1、歧义识别
歧 义是指同样的一句话,可能有两种或者更多的切分方法。例如:表面的,由于“表面”和“面的”都是词,那么这个短语就可以分成“表面 的”和“表 面的”。这种称为交叉歧义。像这种交叉歧义十分常见,前面举的“和服”的例子,实在就是因为交叉歧义引起的毛病。“化装和服装”可以分成“化妆 和 服装”或者“化装 和服 装”。由于没有人的知识往理解,计算机很难知道到底哪个计划准确。
交叉歧义相对组合歧义来说是还算比拟轻易处理,组 合歧义就必须依据全部句子来断定了。例如,在句子“这个门把手坏了”中,“把手”是个词,但在句子“请把手拿开”中,“把手”就不是一个词;在句子“将军 任命了一名中将”中,“中将”是个词,但在句子“产量三年中将增加两倍”中,“中将”就不再是词。这些词盘算机又如何往识别?
假如交叉歧义和 组合歧义计算机都能解决的话,在歧义中还有一个困难,是真歧义。真歧义意思是给出一句话,由人往断定也不知道哪个应当是词,哪个应当不是词。例如:“乒乓 球拍卖完了”,可以切分成“乒乓 球拍 卖 完 了”、也可切分成“乒乓球 拍卖 完 了”,如果没有高低文其他的句子,恐怕谁也不知道“拍卖”在这里算不算一个词。
2、新词辨认
新词,专业术语称为未登录词。也就是那 些在字典中都没有收录过,但又确切能称为词的那些词。最典范的是人名,人可以很容易理解句子“王军虎去广州了”中,“王军虎”是个词,因为是一个人的名 字,但要是让计算机去识别就艰苦了。如果把“王军虎”做为一个词收录到字典中去,全世界有那么多名字,而且每时每刻都有新增的人名,收录这些人名本身就是 一项宏大的工程。即使这项工作可以完成,还是会存在问题,例如:在句子“王军虎头虎脑的”中,“王军虎”还能不能算词?
新词中除了人名以外,还有机构名、地名、产品名、商标名、简称、省略语等都是很难处置的问题,而且这些又正好是人们经常应用的词,因此对于搜索引擎来说,分词体系中的新词辨认十分主要。目前新词辨认正确率已经成为评价一个分词体系好坏的主要标记之一。
中文分词的利用
目 前在自然语言处理技术中,中文处理技术比西文处理技术要落伍很大一段间隔,很多西文的处理方法中文不能直接采取,就是因为中文必须有分词这道工序。中文分 词是其他中文信息处理的基本,搜索引擎只是中文分词的一个利用。其他的比如机器翻译(MT)、语音合成、主动分类、自动摘要、主动校订等等,都需要用到分 词。因为中文需要分词,可能会影响一些研究,但同时也为一些企业带来机遇,因为国外的计算机处理技术要想进入中国市场,首先也是要解决中文分词问题。在中 文研究方面,相比外国人来说,中国人有十分显明的上风。
分词精确性对搜索引擎来说十分主要,但假如分词速度太慢, 即使精确性再高,对于搜索引擎来说也是不可用的,由于搜索引擎需要处置数以亿计的网页,假如分词耗用的时光过长,会严重影响搜索引擎内容更新的速度。因此 对于搜索引擎来说,分词的正确性和速度,二者都须要到达很高的请求。目前研究中文分词的大多是科研院校,清华、北大、中科院、北京语言学院、东北大学、 IBM研究院、微软中国研究院等都有自己的研讨队伍,而真正专业研究中文分词的贸易公司除了海量科技以外,几乎没有了。科研院校研讨的技巧,大部分不能很 快产品化,而一个专业公司的力气究竟有限,看来中文分词技术要想更好的服务于更多的产品,还有很长一段路。
作者推荐:
0
0