电脑技术学习

自动分词与中文搜索引擎

dn001

笔者一直从事中文自动分词的研究,其中一个朴素的想法就是该研究对WWW上的中文搜索引擎一定会有帮助,但又常常为开放环境下自动分词难以达到满意的精度而苦恼。近来忽似有所悟,在此将点滴心得写出来,以抛砖引玉。一个关于中文搜索引擎的“有趣”体验
  先讲一段笔者的“有趣”经历。一日,偶然想在WWW上查找与日本“和服”有关的资料。打开Yahoo China(http://cn.yahoo.com/)的搜索引擎,很自然地选择“和服”作为query。
  检索结果完全出乎意料:找到了255个“相关网站”,却鲜有与“和服”相关者,如:“中国人才热线 GB - 提供招聘及求职的资讯和服务”。在255个网站中逐一查看实不能忍受,重新(即独立于以前的检索结果,下同)键入“和服” and “日本”,希望能缩小搜索范围。这次只得到一个与“和服”相关的网站:“宁波市江东星星丝织腰带厂 GB - 从事日本和服腰带的刺绣及制造”。


笔者不相信诺大的Yahoo China仅存此硕果,故又试“和服” and “服装”。这次共返回45个网站,但相关的仍只有“宁波市江东星星丝织腰带厂”,检索精度为1/45。笔者着实感到疑惑:难道真的要守宝山空手而归吗?脑海中忽跳出一个绝妙好词:“日式”,赶快键入“和服” and “日式”,终于挖出不少“宝”来:返回了1140个网页(不知为什么,查的是“相关网站”,操作也与以前完全相同,但反馈却死活都是“相关网页”),其中不乏与“和服”相关的内容,如:“和服文化“,下面是和服、日式服装商品的市场和其他纤维制品市场的比较图……”终于“大功告成”,当时心里一阵轻松。过后回想此事,却觉得不那么简单:如果想不出“日式”这个词,还要试多少个其他词?又有多少个相关的网页笔者根本就无从知道?不确定性太强了,似乎并不很易琢磨。检索好像成了一门“艺术”,而不是一门“技术”。


中文搜索引擎性能的初步测试
  这一段体验促使我对中文搜索引擎的性能做了一个初步的调查。当时我正在香港大学讲学,于是要求50名香港大学的学生每人向Yahoo Hong Kong(http://hk.yahoo.com/)键入一个感兴趣的词作为查询,然后分别考察所查询的检索精度。检索精度定义为:检索出来的与查询真正相关的网站(页)数/检索出来的网站(页)数。如果检索出来的网站(页)大于50个,则只考察前50个。


这50个检索词及所对应的检索精度(%)如表1所示。
  检索结果表明,Yahoo Hong Kong没有做分词处理,平均检索精度仅为48.8%,其中一半是垃圾。表2列出了部分检索实例。从检索错误来看,情况相当复杂,涉及中文自动分词的各个方面,包括交叉歧义(如“研究生态学理论及应用”。下划线指示检索词,下同)、组合歧义(“推动以人为本的教育”)、中国人名(如“山东安百合律师事务所”)、外国人名(如“海伦和约翰”、“介绍酒井法子”)、 中国地名(如“泌阳县双庙街乡”)、外国地名(如“埃及和约旦”)、机构名( 如“掌天气功疗法中心”)、缩略语(如“中大型ERP软件”)等。


为了粗略估计分词系统对中文搜索引擎可能带来的影响,笔者用清华大学自行研发的中文分词系统CSeg&Tag对与这50个词相关的122个典型例句(均由Yahoo Hong Kong 给出,包括“检索错误的例子”78句及“检索正确的例子”44句,其中部分例句见表2)进行了自动分词,分词结果如表3所示。


总体上,对这122句的分词正确率为76.2%。假设这可在一定程度上反映对50个词检索出来的所有句子的分词结果的话,则检索精度则可以从48.8%上升到76.2%。可见,虽然目前分词系统的性能距理想状态还有相当的距离,对搜索引擎的作用也是所谓的“有一利也有一弊”,但权衡利弊,还是利大于弊。换言之,分词技术在搜索引擎中是可用的。


进一步分析CSeg&Tag系统分词出错的29个句子, 还可以分为两类:第一类(共11句),基本上是由于对未登录词没能做正确的处理, 被切开了, 但幸运的是,该词的边界并没有同周围的其他词产生纠葛(如“联 有 机器 有限公司”);第二类(共18句),则是或者把词的边界搞错了(如“掌
天气 功 疗法 中心”),或者不该合的成分被当做一个“词”合起来了(如“含 学会 及第 十 届 亚洲 医学会 大会 介绍”)。第一类对搜索引擎的影响,在效果上与不做分词处理的完全一样,
  所以,如果加上这11句,针对50个词的检索精度可望由76.2%提高到85.2%。第二类对搜索引擎则属致命伤,是我们最不希望也是最怕遇见的情形。再仔细分析一下,
  其中有的情形通过简单的规则可以解决(如“及第”,如果后面紧跟数词,一般应分开),但大部分情形并不容易对付,甚至在WWW环境下,我们连到底会遇到多少类似的情形都不可能预测出,更遑论有效解决了。经验告诉我们,不管投入怎样的努力,分词系统永远不可能在开放环境下达到完美境界――这意味着我们在构造中文搜索引擎时,必须首先接受这样一个基本假设:再健壮的中文分词系统在处理真实文本时也会不可避免地发生某些不可预期的错误,而能达到90%的分词精度已经是谢天谢地了,出现错误是必然的、正常的。研究中文搜索引擎的机制也好,算法也罢,试图提高检索的召回率也好,精确率(精度)也罢,必须在这个基本假设上进行,否则无异于缘木求鱼。


未来的研发方向
  鉴于以上讨论,笔者认为:面向搜索引擎的中文分词系统一定是基于一个字词混合的模型,相应的文本检索机制也一定是字词混合的。而针对这种模型和机制的研究势必成为未来几年内中文自动分词系统及中文搜索引擎系统研发中的前沿与热点课题。


笔者得到的另一个启发是:中文搜索引擎关于不同词的响应特性存在着很大的差异,比如,即使不分词,对“旗袍”的检索精度仍可达到100%,对“土人”的检索精度则为0。我们有必要对全部汉语常用词做穷举式的逐一调查:相对于中文搜索引擎,该词的“响应”特性如何?是否存在某种简捷的解决办法(如“土人”几乎均出现于“风土人情”中)?或者干脆受研究水平的限制,目前根本就不可能找到解决之道?等等。这项调查对设计基于分词技术的新一代中文搜索引擎将是一个颇具价值的基础性工作。