加权映射匹配方法的站内搜索引擎设计
2016-05-09江文龙赵逢禹
江文龙 赵逢禹 陈 章
加权映射匹配方法的站内搜索引擎设计
江文龙 赵逢禹 陈 章
(上海理工大学光电信息与计算机工程学院 上海 200093)
通用搜索引擎与网站提供的站内搜索机制都无法实现基于内容的企业网站信息查找。在分析企业网站信息的类型后,针对该问题提出一个通用站内搜索引擎架构。给出该引擎的设计思想,介绍对象映射匹配方法、加权对象相似度计算算法、索引构建等实现技术。实现基于网页内容、Word与pdf附件内容的查找定位。实验结果显示,该方法具有很高的查准率和查全率。该引擎可为企业网站的内容搜索与个性化服务提供支持。
站内搜索 对象映射 附件内容 对象相似度
0 引 言
随着互联网技术的发展与广泛应用,网站信息的增长和传播速度也越来越快,网站的差异化发展与特色服务需求也就更加强烈。事实上很多网站在特色信息采集方面都相当成功,但由于缺少强有效的站内搜索引擎用户却只会看首页或相关栏目的第一页。长期积累的高价值信息被沉积在数据库的底部,信息资源被等同于新闻了。
目前企业内的站内搜索大多为基于数据库数据,用户可以搜索到符合标题、正文等条件的内容,但是对于存在页面中附件里的文本内容,当前站内搜索引擎是达不到的。例如,用户若想查找一份企业网站中以附件的形式存在于页面中的文件,要想获得文件的内容,用户只能通过逐个页面查找候选文件。然后下载、打开、阅读查看以确定是否是所需文件,由于这种查找方法效率低,查找过程会使用户有受挫感。而实际上,即使像百度、Google等大型通用搜索引擎,它们也主要是针对于整个因特网中的静态页面内容,无法解决查找附件内容的问题。因此,构建一个满足用户对于企业网站内部信息完全查找的引擎是十分必要的。
快速、精确、智能和人性化的站内搜索引擎越来越得到用户的青睐。探索和应用高效的站内搜索技术将有助于提升网站的价值, 发挥网站应有的作用[1]。在许多电子商务网站中,采用了个性化定制以及消息推送技术,这一技术也可以应用到其他类型企业组织网站中,建立一个能对企业内部网站信息深度搜索的站内搜索引擎是实现个性化及消息推送的基础。由于企业网站信息通常会包括文字、图片、音频、视频、附件文档等不同形式的信息类型,网站的实现技术、信息组织各不相同,有些企业的网站甚至有很多个下属网站,因而开发一个通用的站内搜索引擎以满足用户对站点内容的查找是十分困难的。
本文分析了站内信息类型、信息组织,给出了对于网站内全部内容查找的站内搜索引擎架构。运用Heritrix爬虫程序获取指定企业网站资源信息,然后构建资源文件源对象(包括静态网页、动态网页以及附件内容),解析资源文件,建立相关索引。
然后通过扩展查询条件构建目标对象,采用加权的映射匹配方法对源对象和目标对象进行关系匹配与相似度计算,找出所有相似度大于给定阈值的网页源对象,并对结果根据权重分配进行相关排序呈现给用户。
1 相关工作
站内搜索通常是指在一个网站范围内,对网站中内容的搜索。这里的网站范围是一个逻辑边界,如果企业组织有很多子网站,子网站之间是相互独立的,但由于同属于一个企业组织,企业组织内部资源信息是可以共享的。该网站的范围就包括所有的子网站,可把对各个子网站的搜索也归为该企业组织的站内搜索。在形式上站内搜索包括两个要件:搜索入口和搜索结果页面,但是其后台搜索引擎是比较复杂的。
为了提高站内搜索引擎的精确率,文献[2]中提出了根据企业用户具有行业背景稳定的特点,提取出一些用户背景信息。设计出了通过用户的背景信息和查询历史记录等条件共同来改善用户所要查询的结果。提高与用户查询条件的匹配度和搜索结果的准确度,但是只是针对于企业网站的静态页面进行检索匹配,对网页中的附件内容并没有涉及。
文献[3]中提出了基于语义的搜索引擎的实现。通过OWL结合本体构建工具Protégé构建特定领域知识的本体,对查询条件与构建的本体进行匹配,查找出与匹配的本体相关度高的内容,从而达到较高精确率和召回率的目的。但此举耗费资源太大,特定领域知识的本体构建需要该领域的专家进行采集和建立,可见开销很大,并且本体数量不多。
文献[4]中提出了一个自动查询扩展方法,通过扩展用户请求使其用自然语言来表示。在知识本体的形成过程中用这种方法对数据库查询进行了合适并且相关的扩展。这种方法却并没有针对于网页中其他类型文件的处理,如附件文本。不能实现基于到附件里面的内容。
在企业的个性化搜索中,文献[5]提出了一个对海量数字作品信息的搜索引擎,为用户提供对海量数字作品信息的快速、准确的搜索服务。文献[6]提出了在电子商务中通过对传统商品搜索算法的改进,引入模糊系统和文本匹配算法,使得在顾客搜索商品时,不仅显示精确匹配的商品而且可以提供与其要求相似的商品供其参考。这些对于企业内的个性化搜索有着很重要的参考价值。
2 搜索引擎架构
2.1 站内信息分类
每个网站都有不同形式的信息,如静态页面内容、动态页面内容、图片、音频、视频、可供下载的各种类型的文件等。用户想要查找的东西可能在加载后的页面内容中,可能是在图片、视频以及各种类型附件文件中。因而对全站点内容查找需要根据不同的信息,构建不同的搜索方法,这也是为什么当前的站内搜索大多仅搜索页面内容的原因。
基于网络爬虫页面抓取技术,站内搜索已经能够实现对静态页面内容的搜索;动态页面内容通过基于数据库设计的站内搜索引擎也能达到;站内搜索的困难在于用户对网页附件(word文档、pdf文档、图片、音频、视频)中基于内容查找的问题。这里把研究的重点集中在对静态页面,动态页面以及附件文档(word、pdf、excel等文档)内容搜索三个方面。对于图片、音频、视频等附件的搜索方法将在后续的研究中逐步完成。
2.2 引擎设计
站内搜索引擎首先对企业网站结构进行分析,利用爬虫软件对企业网站资源文件进行获取,包括所有网页和附件文档。然后将获取的资源文件解析成文本,构建源对象。利用Lucene分词技术对解析后的文本内容分词,根据标题、关键句、主体内容等属性分别建立索引。当用户查询时,通过扩展查询条件构建目标对象,通过检索器查找索引库与源对象进行匹配并计算对象相似度,基于对象相似度的结果对相似的源对象进行排序呈现给用户。
基于以上思想,本文提出的搜索引擎框架如图1所示。图1中主要包括搜索器、索引器、检索器、用户接口四大部分。
图1 搜索引擎框架
搜索器:通过扩展Heritrix对指定网站进行资源获取,信息搜集。
索引器:对静态、动态网页及附件内容等分别用相关的解析技术解析,构建源对象,对解析后的内容分词并建立索引;对音频、视频、图片等提取特征值,建立索引。
检索器:目标对象和源对象进行加权的相似度匹配,根据相似度值决定输出结果并对结果进行排序。
用户接口:接纳用户查询、显示查询结果、提供个性化查询项。
2.3 信息抓取设计
通过对Heritrix进行扩展实现对网页与附件文档的抓取。Heritrix 是一个纯由Java 开发的、开源的Web 网络爬虫,用户可以使用它从网络上抓取想要的资源。Heritrix 最出色之处在于开发者可以在现有的框架基础上对各个组件进行扩展,实现自己需要的抓取逻辑[7]。抓取步骤如下:
1) 编写一个正则表达式用来描述所有想要获取的链接,这里可以描述为包含企业组织域名下的所有链接。
2) 重写Heritrix中抓取链接的schedule()方法,对待抓取链接用上述正则表达式进行匹配,若待抓取链接满足条件则加入待抓取队列中,否则跳过该链接。
通过Heritrix获得相关网页及附件文件等资源文件后,再使用Lucene分词技术对资源文件进行解析。
2.4 索引器和检索器设计
2.4.1 映射匹配思想
为了实现在获得较高的查准率时还能有高的查全率,检索时采取了一种映射匹配的方法,对构建的源对象和目标对象进行加权的相似度匹配。通常用户想要查找的信息来自于标题或者关键词的重要性要大于来自于正文的,因此给不同的元数据属性赋予不同的权值,标题、关键词信息的权重大于正文信息的权重,结合权重进行对象的相似度匹配。
定义1 对象 对象是描述网页和附件内容的,用作映射匹配的结构。对象={<类名>,
图2 Document结构图
把网页的Title、附件文档的文件名作为类名;提取网页、附件文档对应的路径地址作为URI;从网站中提取网页和附件文档的元数据属性,主要有标题、关键词、时间、发布者、主体内容等作为属性名集合;根据属性名分别提取出对应的属性值作为属性值集合;因而利用Lucene构建的用以存储对象的Document结构如图2所示。本文中的源对象和目标对象就是通过该Document结构构建的。
定义2 映射匹配 映射匹配是指源对象和根据搜索参数构建的目标对象之间的映射关系,即为这两个对象中的各个元素(类名、属性名或者关系)建立相应的语义关系。
给定一个对象,用P表示其属性名集合,P={p1,p2,…,pm},pi∈(1,…,m)是对象包含的属性。∀pi∈P,都有属性值vi。则属性值的集合V={v1,v2,…,vm}。
定义3 相似度map(P1→P2) 源对象P1与目标对象P2的相似度是指源对象和目标对象在多个属性上的值存在包含关系。即P2的值集合V2={v1,v2,…,vm}和P1值集合V1={v1,v2,…,vn}(m≤n)有多个vm∈vn(m=1,2,…,m;n=1,2,…,n)。根据两个对象相似度值s0与给定的阈值s进行比较,若s0≥s,则判定P1与P2相似,否则判定为不相似。
算法 加权的对象相似度计算
输入:源对象P1,目标对象P2
输出:相似度值s
while(p2.hasNext())
//遍历p2
{
key=p2.getItem();
//获取p2属性key
value=p2.getValue(key);
//根据key获取p2属性值
while(p1.hasNext())
//遍历p1
{
key1=p1.getItem();
//获取p1属性key
value1=p1.getValue(key1);
//根据key1获取p1属性值
if(value1包含value)
//判断p2的属性值是否是p1的子集
{
weight=getWeight(key)
//获取p1中指定key的权值
s=s+1*weight;
//加权统计相似度
}
}
}
图3是设计出的引擎映射结构。索引模块根据源对象结构建立索引;索引库中存储各类索引,具体结构在2.4.3节有详细介绍;检索模块构建目标对象,匹配模块采用前文提出的映射匹配方法使目标对象与源对象进行匹配;排列模块收集搜索结果,对结果排序。
图3 引擎映射结构
2.4.2 信息解析
在Heritrix获取到所有的资源文件后,接下来提取资源文件的元数据,包括标题、关键词、时间、发布者、主体内容等。对于网页内容,为了减少网页噪音,使用HtmlParser和正则表达式结合的方式进行解析。利用正则表达式对网页中所有的html标签进行了去除。把去除后的网页主体内容进行了保存。既提高了解析效率又精确地提取了网页信息。对于附件内容,不同类型的附件需要采用不同的解析器进行解析。提取附件文件的名称、标题、关键词、内容等信息,并保存所属页面的关系。
2.4.3 分词及索引建立
图4是索引的架构,该架构将解析好的网页文件和所有附件文件根据分词词典进行分词,再利用Lucene建立索引。
图4 索引结构
当前Lucene有多个中文分词器,如StandardAnalyzer、ChineseAnalyze、CJKAnalyzer、IK_CAnalyzer、MMAnalyzer。由于IK_CAnalyzer的分词切割得比较完全并且更贴近语义,因而采用IK_CAnalyzer分词器。此外,建立了一个分词词典。初始词汇包含该企业的一些特有词汇(如企业组织名称、部门名称、产品名称等)。并且,扫描解析后的附件文档,提取出文档中“关键词”后的词汇加入到词典中。在分词的时候先扫描分词词典,以词典中的词汇为基准进行分词,其余的用分词器固有的分词方法分词。 这样,分词就可以比较好地适用于指定企业组织内部,达到一个比较高的准确率。分词完毕后再对所有信息建立索引。至此,索引就建立完毕,接下来是建立检索器和查询结果的排序。
2.5 检索与排序
检索器是根据用户输入关键词,在索引器进行查找,并且采用算法进行对结果的最终排序。首先对用户输入的查询条件进行扩展,构造出目标对象,通过检索器与源对象进行匹配。根据前文叙述的加权相似度计算方法找出相似度大于给定阈值的所有源对象,将所有符合条件的结果放入TopScoreDocColletor收集器中。遍历结果集取出结果,对含有关键字的部分使用Highlighter类进行高亮结果处理,然后再呈现给用户。
3 实验结果与分析
基于上述的理论分析,在实验环境为JDK1.7、Tomcat6.0、SqlServer 2008、Myeclipse 10、Win 7操作系统,采用Heritrix-1.14.4对某单位网站进行了抓取结合Lucene-4.7和Struts2建立了站内搜索引擎并进行相关实验。分别对通用搜索引擎和参考文献中部分搜索引擎从以下两方面进行实验:1)用户输入该网站内页面内容信息进行检索、测试;2)用户输入该网站中存在于附件中的内容进行检索、测试。
1) 和通用搜索引擎的对比
实验过程中让用户在本搜索引擎与通用搜索引擎中随机输入50组关键字,分别搜索存在于页面内容中的信息和存在于附件中的信息并对搜索结果进行对比。图5给出了页面内容查准率的对比,图6给出了查全率的对比。
图5 页面内容查准率对比 图6 页面内容查全率对比
对于附件文本内容,通用搜索引擎都不能达到这个深度,因而没有对应结果。图7给出了附件内容搜索的查准率对比。图8给出了附件内容的查全率对比。
图7 附件内容查准率对比 图8 附件内容查全率对比
从图5-图8的对比结果可以看出,本文设计出的站内搜索引擎无论是在对于页面内容的搜索还是附件文本内容的搜索都有着比通用搜索引擎更高的查全率和查准率。
2) 和参考文献中搜索引擎对比
同样,实验过程中让用户在本搜索引擎与部分参考文献中搜索引擎中随机输入50组关键字,分别搜索存在于页面内容中的信息和存在于附件中的信息并对搜索结果进行对比。这里选取了与文献[2]和文献[5]中设计的搜索引擎进行对比,如表1所示。
表1 查全率查准率对比表
表中每个引擎的第一行为查全率,第二行为查准率。从表中不难总结出,本文的搜索引擎在页面内容的查全率和查准率上与部分参考文献中设计的搜索引擎基本持平。但是参考文献中设计的搜索引擎都没有针对网站的附件内容,因而在附件内容的搜索上本文的搜索引擎占有着绝对的优势。
4 结 语
目前站内搜索和通用搜索引擎不支持对附件文本的检索。为解决这一问题,本文提出了一个站内搜索引擎,基于Lucene和网络爬虫技术,采用了加权映射匹配的方法很好的解决了在用户面临数据量越来越大时对附件文档内容查找难的问题,大大提高了搜索的准确率和召回率。但仍然有一些问题没有解决,如对图片、音频、视频等附件的查找涉及到的相关处理技术问题还没有解决,将在下一步的工作中进行研究实现。
[1] 刘俊熙,龙怡.站内搜索是下一个网络信息资源检索的最佳点——网络、行业和站内搜索的技术分析[J].现代情报,2008(4):135-137.
[2] 王兆宇,乐嘉锦.基于Lucene的个性化站内搜索引擎的研究[J].计算机应用与软件,2011,28(12):188-190,223.
[3] Sowmya Kamath S,Divya Piravi Perumal.A Semantic Search Engine for Answering Domain Specific User Queries[C]//International conference on Communication and Signal Processing,2013:1097-1101.
[4] Latiri C,Haddad H,Hamrouni T.Towards an effective automatic query expansion process using an association rule mining approach[J].Journal of Intelligent Information Systems,2012,39(1):209-247.
[5] 吴洁明,韩云辉,冀单单.基于Lucene的数字作品搜索引擎的研究与设计[J].计算机工程与科学,2013(5):166-171.
[6] 陈明晶,姚建荣,唐志豪.电子商务系统的商品搜索算法研究[J].计算机工程与应用,2006(3):213-215.
[7] 张敏,孙敏.基于Heritrix限定爬虫的设计与实现[J].计算机应用与软件,2013,30(4):33-35,80.
[8] Pirro G,Talia D.An approach to Ontology Mapping based on the Lucene search engine library[C]//Database and Expert Systems Applications,2007.DEXA’07.18th International Workshop on.IEEE,2007:407-411.
[9] Bireshwar Ganguly,Devashri Raich.Performance Optimization of Focused Web Crawling Using Content Block Segmentation[C]//International Conference on Electronic Systems,Signal Processing and Computing Technologies,2014:365-370.
[10] Shanmugapriya,K Latha.Measuring Semantic Similarity Using Web Search Engine[C]//International Conference on Advanced Nanomaterials & Emerging Engineering Technologies,2013:639-644.
SITE SEARCH ENGINE DESIGN WITH WEIGHTED MAPPING METHOD
Jiang Wenlong Zhao Fengyu Chen Zhang
(SchoolofOptica1-ElectricalandComputerEngineering,UniversityofShanghaiforScienceandTechnology,Shanghai200093,China)
Neither the general search engine nor the site search mechanism provided by websites is able to achieve the content-based search of corporate websites information. After analysing the types of corporate websites information, we proposed a general site search engine architecture for this problem. Apart from discussing the design ideas of the engine, we also introduced the implementation techniques including the objects mapping and matching method, the algorithm of weighted objects similarity calculation, and the indexes construction, etc. The engine implements the search and positioning based on website contents and the attachment contents of Word and pdf. Experimental results showed that the search engine had high accuracy and recall rate. The engine could also serve the supports to content search and personalised services for corporate websites.
Site search Objects mapping Attachment content Object similarity
2014-09-12。江文龙,硕士,主研领域:搜索引擎,互联网应用。赵逢禹,教授。陈章,讲师。
TP319
A
10.3969/j.issn.1000-386x.2016.04.022