首页 美女贴图 网络日记 重庆租房 搜索指南 网络电视 飘网音乐 飘网博客 精彩网址 友情链接 飘网地图 本站留言
飘网中国
专题:网络营销 | 网站设计 | QQ技巧 | 搜索优化 | 菜鸟进阶 | 病毒攻防 | 网络技术 | 系统应用 | 本站作品 | 常用软件 | 工具软件 |
飘网中国>>搜索优化>>正文

中文分词和搜索引擎

编辑:flymorn 来源:ysearchblog.cn 更新:2006-11-28 点击:
【字体:

摘要:中文分词,估计了解的人并不多,毕竟太技术,太底层。但中文分词是中文搜索引擎系统中非常重要的模块,这里之所以强调是中文搜索引擎,和中文搜索引擎类似还有日文、韩文、泰文搜索引擎等,都需要处理分词问题。
关键字:中文分词 
正文:
  搜索引擎,上网的人基本上都不陌生了,CNNIC的第17次《互联网调查报告》显示,使用搜索引擎服务的网民,仅次于电子邮件。中文分词,估计了解的人并不多,毕竟太技术,太底层。但中文分词是中文搜索引擎系统中非常重要的模块,这里之所以强调是中文搜索引擎,是针对英文搜索引擎来讲,因为对于英文来说,空格代表词和词之间的分隔,也就不存在分词问题。和中文搜索引擎类似还有日文、韩文、泰文搜索引擎等,都需要处理分词问题。

为什么需要中文分词

目前的搜索引擎,大多是基于一种称为倒排索引的结构[1]。以什么做为索引的Key值,直接影响到整个搜索引擎的准确度、召回率[2]、速度。我们先看看不使用中文分词的情况。

如果不使用中文分词,可以采用单个汉字索引方式。例如,雅虎,先索引雅字,然后再索引虎字。同样,对于一篇文章,先把所有的汉字都单独索引一次,并记录他们的位置。搜索过程中,也是先找雅字的所有文档,再找虎字的所有文档,然后做交叉与运算,即包含这两个字,而且位置连续的文档才会做为符合要求的结果。这种方式是最基本的索引方式,现在有些小引擎中还在使用。但这里存在一个很有挑战性的问题:总共的常用汉字是3000多个,我们每次查询过程中,进行与操作的计算量会相当大,对于大数据量搜索引擎来说(超过10亿的文档),每天上亿次查询,这样的索引结构,无疑是对硬件和算法的极大挑战。 

考虑到速度问题,如果不使用分词,还有另外一种选择:n元组合索引方式,2元/3元等。拿2元来说,中国人,先索引中国, 再索引国人。同样,对于一篇文章,以2为单位,把所有相邻的汉字都索引起来,并记录他们的位置。搜索过程中,也是先找包含中国的所有文档,再找国人的所有文档,然后做交叉与运算,即包含这两个单元,而且位置连续的文档才会做为符合要求的结果。这样以两个字做为索引单元,可以大大减少在搜索过程中的计算量。 

以上两种方式,都可以不需要分词,也能实现搜索引擎的索引和搜索。但是这里存在一个不可忽视的问题:准确度。一个很常见的例子:和服,如果按照上面两种方式,都会查到包含主板 和服 务器的文档; 北大 也会得到东 北大 学。对于大数据量的搜索引擎来说,每个搜索次都会有成千上万个结果,用户已经很挑选他真正想要的文章,如果这里还要增加许多错误,估计用户体验会极差。这时候,我们需要中文分词。 

词,是中文语言中最小的语意单位。以词为单位做为搜索引擎的索引的Key值,会大大提高搜索引擎结果的准确性,同时保证了搜索过程中计算量小。其实还有一个优点,以词为单位的索引,索引库会比上两种方式小很多。很明显:如果以 中国人 做为一个词,那么搜索的时候,不需要任何与运算,索引的时候记录也会减少。关于搜索过程描述参看中文搜索引擎技术揭密:系统架构 

中文分词的算法

中文分词技术的研究,已经有几十年的历史了,在20世纪80年代,我国就有人开始研究如何用计算机来自动分词。如何让机器去识别语言中最小的语意单位,不是一件很容易的事情。

如何进行分词?对于程序员来说,最容易想到的办法是,用一个大词典,把所有的词都存入词典中,扫描输入的文本,查找所有可能的词,然后看哪个词可以做为输出。例如:

输入文本: 我是学生
词: 我/是/学生

其实这样做了以后,可以解决60%的问题。总结起来,分词的算法分为:
1. 基于字符串匹配的分词方法 
2. 基于理解的分词方法 
3. 基于统计的分词方法

关于这3种算法的详细介绍,可以查看中文分词技术,我这里想介绍的是,如何处理新词。

新词,术语是"未登录词",就是那些没有收入到词典里面的词。新词主要包括:人名、地名、机构名、热点新名词等。例如:2003年之前,没有人知道"非典"。"非典"刚出现的时候,这就是新词。还有"超女", "三个代表","芙蓉姐姐"。识别新词的能力是评估一个分词系统的重要指标。在国际上每年进行的分词大赛中,识别新词的比赛也单独提出。2006年SIGHAN的分词大赛中,就增添了对于机构名识别的比赛。 

如何识别新词成为最近几年分词技术研究的重点。总结起来,无非分成两种:
1. 基于规则的方法。 
2. 基于统计、机器学习。

拿人名识别为例。你不可能把所有的人名都放入词典中,这决定了人名注定会是新词。从人名构造来说,很有规律:姓+名。张王刘李陈、天下一半人。也就是说可能有一半的人,是这五个姓。名也有一定规律:建华/建国/志强.....等有许多经常用于名字中的汉字;对于地名识别也可以找出很多规则,省/县/村/镇/湾/河等,都是很常用的后缀,如果他们出现,之前出现地名的可能性比较大。如果把这些规律转化成计算机能识别的算法,就是基于规则的算法。这种基于规则的算法简单有效,而且发现规则可很
[1][2]
上一篇:如何控制Yahoo! Slurp蜘蛛的抓取频度
下一篇:雅虎:与站长们谈链接群发
最新文章 更多
推荐文章 更多
热门文章 更多
© 2005-2010 飘网中国 版权所有
站长邮箱:①LCC-749AT163.com ②FlymornATgmail.com(AT改为@)
如转载时,请注明出处;本站部分资源来自网络,如有侵权,请来信说明;飘易文章系统 HTML版.
渝ICP备05000119号