WEB开发网
开发学院数据库DB2 使用IBM OmniFind Enterprise Edition结合分类词典... 阅读

使用IBM OmniFind Enterprise Edition结合分类词典文件实现基于搜索结果分类

 2010-02-16 14:59:56 来源:WEB开发网   
核心提示:本文介绍了如何使用IBM OmniFind EntERPrise Edition结合IBM开源非结构化信息管理体系结构Unstructured Information Management Architecture(UIMA),来扩展IBM OmniFind Enterprise Edition搜索引擎的语意搜索和结果

本文介绍了如何使用IBM OmniFind EntERPrise Edition结合IBM开源非结构化信息管理体系结构Unstructured Information Management Architecture(UIMA),来扩展IBM OmniFind Enterprise Edition搜索引擎的语意搜索和结果分类。并通过一个具体的例子,来展现IBM OmniFind Enterprise Edition 强大的语义搜索功能。

背景介绍

搜索引擎是用于主动搜索计算机中的数据信息,并对其进行分析自动建立索引,其索引内容存储在可供查询的大型数据库中。当用户进行查询时,搜索引擎会告诉用户所要查找的内容在哪,并提供相关的链接以便查询。

处于当前这样一个信息爆炸的时代,能够有效地查找到所需要的数据尤为重要。大量的数据信息需要被自动化的进行索引并提供搜索。因此搜索引擎的作用也就变得越来越重要。而如何能够搜索要所需要的数据,如何保证搜索的质量则成为了当前搜索引擎开发人员首要解决的问题。

当前搜索引擎的主要工作方式都是基于关键字的搜索。比如Google、AltaVista、Excite、Baidu等。它们都是通过在互联网上提取各个网站的信息来建立自己的数据库,并向用户提供关键字查询服务。当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的内容,便将结果的链接返回给用户。基于关键字的搜索时当前搜索引擎采用的主要手段,但是基于关键字的搜索存在致命的弱点,就是索要搜索的内容中必须包含有查找时输入的关键字。这样,就会严格限制搜索到的结果。例如:当我们将“自然灾害”作为关键词查找时,搜索引擎返回的结果的内容中一定包含了“自然灾害”这个词,但是与自然灾害相关的内容比如:地震、火山、海啸、龙卷风、泥石流等一系列的信息,搜索引擎就查询不到了。

因此IBM OmniFind EntERPrise Edition企业级搜索引擎结合了IBM非结构化信息管理体系结构Unstructured Information Management Architecture(UIMA),有效地实现了语义搜索及其结果的分类,从而解决了这个问题。搜索引擎管理人员只需要配置,并根据需要编写一定程序,就能让搜索引擎具有一定“智能”性。这样不但可以查找到关键词搜索出的结果,同时也可以查找出于关键词相关的一些内容。

实现原理

UIMA实现语义分析引擎的原理

首先需要了解下什么是UIMA。结构化信息管理体系结构Unstructured Information Management Architecture (UIMA)是IBM开源的可以在字处理文档、电子邮件、视频和其他非结构化信息中搜索特定的文本甚至概念。UIMA是将非结构化数据转化为结构化数据的桥梁,也是信息内容分析再加工的一个标准工具。

UIMA 在对文件进行分析建立语义索引的过程主要包括以下几个步骤:

若要对文件进行语义分析,就需要特定的解析复杂字符串的标准方法,在UIMA中我们更多的是使用正则表达式来实现。因此首先需要确立语义规则,创建相应的正则表达式;

根据创建的特定的正则表达式,UIMA会对于文件内容进行匹配,对于符合规则的字符串,UIMA会为之创建一个annotation对象,该对象中主要包含3个关键属性:字符串开始位置、字符串结束位置、字符串语义索引关键字。之后将该对象加入到UIMA 语义索引中。因此,当文件中有多少个匹配特定的正则表达式的字符串,UIMA 语义索引中就会包含相应个数的annotation对象。

举一个简单的例子:以Animal为例,我们的.txt文档中,包含了“Animal”、“pet”、“dog”、“tiger”等词,但是我们需要使用UIMA对整个文档进行语义分析后,将所有属于动物的词都归为一类,并称之为“animal”。因此我们创建的相应的正则表达式为:

清单1. 表达动物的正则表达式

private Pattern animal = Pattern.compile("Animal|pet|sheep|tiger|lion|cat|dog|duck");
|-------10--------20--------30--------40--------50--------60--------70--------80--------9|
|-------- XML error: The previous line is longer than the max of 90 characters ---------|

这样就会将文件内容中所有满足的内容通过匹配提取出来,之后为每一个字符串创建一个annotation对象,该对象记录给一个字符串的起始位置,并赋予共同的语义关键词“animal”。这样语义关键词就是入口点,通过该关键词,就可以找到文件中所有满足条件的词的具体位置。

图 1. 建立语义索引的过程

使用IBM OmniFind EntERPrise Edition结合UIMA实现语义搜索和分类的原理

基于语义搜索和分类的实现,是通过 IBM OmniFind Enterprise Edition的关键词索引结合Unstructured Information Management Architecture(UIMA)的语义分析实现的。IBM OmniFind Enterprise Edition 根据关键词搜索文件内容后,会将根据 UIMA 进行语义分析的结果存储在语义查询索引(semantic search index)中。这样在进行查找时,程序除了查找建立的关键词索引的同时,也会进入语义查询索引中继续查询,从而将基于关键词查找的结果和语义查找的结果同时返回给用户。

UIMA实现语义分析,并将结果加入到索引的过程是在IBM OmniFind Enterprise Edition的Parse阶段实现的。IBM OmniFind Enterprise Edition对收集到的文件进行解析,并按 UIMA中定义的规则建立语义索引。最终将关键词索引及语义索引一起加入到索引文件中。如图所示:

图 2.实现语义分析并将结果加入到索引的过程

1 2 3 4 5 6  下一页

Tags:使用 IBM OmniFind

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接