让搜索跨越语言的鸿沟 谈跨语言信息检索技术

跨语言信息检索,是信息检索领域中的一个研究课题。近10几年来,由于互联网的飞速发展,这方面的研究受到了学术界的广泛重视。将这项技术应用于搜索,可以帮助我们查找到更多的有用信息,例如外语相关页面、多语言页面以及语言无关的资源(如图片)等等。这些信息可以大大丰富搜索的结果,满足用户多样的需求。在跨语言信息检索的研究中,有一些研究成果已经趋于成熟,达到可以应用的状态。事实上,Yahoo和Google在5,6年前就已经开始提供多语言的搜索服务。毫无疑问,在这方面他们已经走在了世界的前列。目前,百度的各项国际化业务正在如火如荼的开展,对跨语言技术来说,正是用武之地。相信不久的将来,它将会在搜索国际化进程中扮演举足轻重的角色。来,就让我们一探究竟吧。

假如你搜索“中菲黄岩岛对峙”,如果你是一个普通用户,你想知道的可能是这个事件的历史渊源和发展动态;如果你是一个文艺用户,你想知道的可能是中国愤青们的爱国言论。没问题,现有的中文搜索完全可以满足你的需求。

但是,如果你是一个XX用户,你对中国网站内容不满足,很想知道外国的媒体是怎么报道的,外国民众是怎么谈论这个事件的。那么不好意思,中文搜索引擎就无能为力了。这是因为,中文搜索引擎都是中文作为基础来构建的,它往往只收录了中文数据,只考虑了中文的特性,只考虑了该中国网民的需求。但是,当我们想要做跨语言搜索时,搜索就变得困难了。且不说我们没有抓取那么多外文数据。即使我们有数据了,由于不同语言之间的巨大差异,以及各个国家各种各样的网络习惯,我们也很难精准地搜索到相关的外文信息。也就是说,语言的不同给搜索带来了一道鸿沟。

那么,这道鸿沟就不能跨越了么?当然不是。事实上很多年前人们就已经开始考虑这个问题了。在学术界,对这个问题有个专有名词,叫跨语言信息检索(Cross-Language Information Retrieval)。早在上个世纪60年代,现代信息检索的奠基人,美国康奈尔大学的Salton教授发表了一篇《Automatic processing of foreign language documents》,首先打开了跨语言信息检索的大门。但是由于那个时代还没有互联网,研究也只能停留在简单实验阶段,甚至跨语言信息检索的概念还没有正式提出。到了上世纪90年代,美国国家标准技术研究所(National Institute of Standards and Technology)和美国情报局前沿研发活动中心(Advanced Research and Development Activity center of the U.S. Department of Defense)联合举办了信息检索领域最重要的会议——“TREC”会议(The Text REtrieval Conference)。到了1996年,在瑞士所举办的SIGIR-96会议中,首次出现了以跨语检索为研究主题的研讨会。而到了2000年,欧盟成立了“跨语言评估论坛”(Cross Language Evaluation Forum),每年定期举办跨语检索研讨会,并且推动跨语检索技术评比。从此,跨语言信息检索变成了信息检索领域的一个炙手可热的研究课题,无数英雄豪杰参与其中。

闲话少说,我们该进入正题了:对于跨语言信息检索问题该如何解决呢?接下来让我们揭开它的面纱。

在说跨语言信息检索之前,我们先回顾一下经典信息检索是怎样做的,如图1所示:首先,对于用户的query,我们要对它进行特征提取,使之变成一个特征向量,用于匹配文档。其次,对于已经抓取的文档,我们也对它进行特征提取,并给予这些特征一些权重,来表示它们的重要程度。再次,我们对query的特征和文档的特征进行相似度计算,来判断哪些文档跟query相关,哪些不相关。信息检索最常用的相似度计算方法是求cosine,其它还可以从语义主题的角度去描述相似性,这个就不详细介绍了。有了相似度,我们可以根据相似度对文档进行排序,并将最相关的一些作为检索结果。对于检索结果,用户可能会提供一些反馈,比如用户的点击。这些反馈可以告诉我们,在搜索结果里面哪些是用户需要的。这些信息可以用来衡量检索的效果,来对检索模型进一步提升。

 

在信息检索的流程中,我们可以看出跨语言检索的难点:当query的语言和文档的语言不同时,query和文档的特征空间是不同的。中文的特征集合(某个中文词语出现与否)与英文的特征集合(某个英文词语出现与否)的交集极少,这导致原有的相似度计算方式在跨语言时失效了。

那么这个问题怎么解决呢?

对于跨语言,我们自然而然想到的一种方式就是:翻译。我们可以通过翻译的方式把一个语言的词语映射到另一语言上,从而让query和文档处于同一个特征空间中,然后再利用单语下的检索模型进行检索和排序,这样就可以实现跨语言检索了。

Query翻译——把query翻译到文档的语言下,然后用这些翻译后的query在文档中进行检索。对于query中的词语,我们可以选择若干可能的翻译,用于扩大召回。这可以看作是一种query扩展。

文档翻译——把文档翻译到query的语言下,然后用原有query对翻译的文档进行检索。文档的翻译一般是在线下进行的。一篇源语言的文档通过自动的翻译(如机器翻译)变换成一篇目标语言下的文档。

  • 留言列表:
最新
热门
随机
搜索
日历
网站分类
最近发表
网站收藏
Tags列表
图标汇集
友情链接