基于DC元数据的Web网络搜索引擎系统设计_搜索引擎论文

基于DC元数据的Web网络搜索引擎系统设计,本文主要内容关键词为:搜索引擎论文,数据论文,系统论文,网络论文,DC论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

1 研究背景

1.1 现有搜索引擎的缺陷

(1)缺乏语义描述导致查准率低

现有搜索引擎的检索基本技术大多采用布尔模型、向量模型、概率模型,其处理对象都是对文档分词过后的没有任何语义修饰的词的集合,词的含义以及词与词之间的关系都不确切明了[1]。由于模型技术的依据是对词在文档中的词频进行分析来判断词在文档中的重要程度,这个重要程度缺乏语义的描述,因而是不可靠的,如输入“包袱”这个多义词,仅靠词频分析,不太容易提供给真正符合用户需要和真实意图的内容,这样就导致了查准率低的情况,如果有语义的描述会帮助用户进行判断,从而提高查准率。

(2)检索结果冗余、模糊导致检索效率差

大多数搜索引擎输入检索词一般会搜索出很多页面,只要含有检索关键词都会被列出来,有用没用的鱼龙混杂。当用户发出检索指令,搜索引擎就会把成千上万的检索结果都罗列在用户面前,有用的信息埋没在大量检索结果里面,需要用户去寻找、鉴别,导致的结果就是检索效率低。此外,通常搜索引擎返回的检索结果都是含有检索关键词的网页部分内容的简单罗列,用户通过这些简单罗列的内容无法准确、迅速地判断是否是自己需要的内容,如果我们的检索结果有网页的一些描述,如网页主题词、摘要、作者等,那么用户在众多的检索结果中凭着这些描述信息能够快速准确地找到自己需要的信息。

(3)检索途径不足

大多数搜索引擎都是使用关键词在一个输入框中提问,仅允许用一组关键词及逻辑运算符组成提问。但是实践证明,关键词检索不能完全满足用户的要求,而且它是一种盲目的匹配,而自然语言的理解又是非常困难的,这些都是有待解决的问题。

1.2 DC元数据描述网络资源

搜索引擎虽然对许多资源有自动索引功能,但查准率低,检索冗余多,而一些由专业人员提供的不仅复杂且被结构化的特殊方案,如MARC、GILS、TEI header等,这些标准虽然能达到一定的查准率,但在数据加工标引工作上费时费力,并且需要专业从业人员,因此对于海量的网上信息可以说无能为力,而且,随着因特网上的搜索服务的改进,从各种复杂或简单的元数据格式到各个不同的用户团体之间,也特别需要一种标准化的语言或交换格式,这样,创造一个更简单的元数据模型和体系方案显得迫切而必要。

1995年在美国俄亥俄州的都柏林召开的第一届元数据研讨会上,52位来自图书馆、计算机、网络等方面的专家和学者共同研讨产生了都柏林核心集(Dublin Core Element Set,DC),其主要目的是代替MARC用来描述网络环境中的数字化信息的基本特征,发展一个富有弹性、且非图书馆专业人员也可以轻易了解和使用的资料描述格式来描述网上电子文献以方便检索[2]。

DC元数据最初是为了描述网络信息资源而设计,在实际运用中,由于其简练、易于理解、可扩展及能与其他元数据形式进行桥接等特性,使它成为一个良好的网络资源描述元数据集,1998年被因特网工程特别任务小组(IETF)作为一个正式标准RFC2413予以发布。2003年4月,DC元素集即DCMI被批准为国际标准ISO15836,这将使DC更加容易促进因特网的资源发现与共享的实现。许多网页制作者在网页源代码里面参照DC标准进行了DC元素的著录,在http://www.ukoln.ac.uk/metadata/dcdot/网站[3],可以输入任意一个URL,都会检索到这个页面并自动生成该网页制作者著录的DC元数据。

目前的网络资源绝大部分是HTML文档,任何网页只要在浏览器上打开其源代码就能看到HTML文件。通过在HTML文件头部包埋一些描述文件内容、结构等特征的元数据标签,就可以提供文件的可被检索性。实际上,从HTML2.0开始,历经HTML3.0、HTML3.2、HTMIA.0、W3C关于HTML的规定草案中都有关元数据标签使用的说明这一部分。元数据标签结果简单,普通的网络资源作者或提供者可以很容易掌握、使用;形式灵活,具有很强的包容性,许多研究机构为自己特定的网络资源对象建立的元数据标准都可以引入在标签里,如DC元数据。2007年杨志的调查中统计出,中文网页使用元数据标签keywords和description的情况分别为39.80%和33%[4],许四洋2001年统计英文网页的66.67%和61.11%[5]。如果所有的搜索引擎都支持元数据标签,一定会推动元数据标签研究的进展和使用的普及程度;反过来,如果元数据标签规范、统一、完善、正确,搜索引擎也一定不会拒绝支持它。

1.3 国内外基于DC元数据的搜索引擎项目

由于DC能够协助描述和检索网络资源,而且成为国际标准,许多国家都展开了一些DC元数据和搜索引擎相结合的研究项目,典型的有:

(1)澳洲的MetaWeb:是元数据工具和服务计划的简称,此计划的主要宗旨为发展元数据栏位、使用者工具、索引服务等来提升元数据在万维网上的应用,其使用的搜索引擎名为“HotMeta”,它可以将网络上网页HTML文件中的DC元数据提取出来作为索引后,再提供查询。该资料库主要涵盖澳洲网站的资料。

(2)荷兰国家图书馆的全球资讯网服务:该系统主要做法是在所有已收集的网页中,加入DC元素集的元数据资料,新的网页则要求提供者先自行加入DC元数据资料后再呈送,国家图书馆的搜索引擎会利用这些元数据来协助检索。

(3)英国uklon的biblink计划:在出版社和国家书目中心间建立一条网路通讯管道来直接交换书籍记录和资讯,这套系统使用元数据作为其基本格式。

分析已有的这些项目,我们发现国内还没有一个应用于整个Web的、能够集资源描述和资源检索为一体的搜索引擎系统。基于此,课题组设计了一个将DC描述和搜索引擎充分结合起来的搜索引擎系统DCSE。

2 基于DC元数据的搜索引擎系统DCSE

课题组设计的DCSE系统主要实现了如下功能:自动抓取网页源代码中的DC元数据;提供以DC各元素为检索途径的多项组合检索界面;检索结果依DC各元素的内容来显示。

2.1 Spider抓取网页源代码的DC元数据

DCSE的SPIDER模块能自动抓取网页HTML源文件里含DC的元素及描述内容,并存入一个XML文档,系统设计成多线程站内外自动抓取,可大大提高搜索速度。界面图见图1。

图1 网页搜索界面图

图2 DCSE检索界面图

图3 DCSE检索结果界面图

图4 DCSE系统数据流

课题组以DCSE的首页为起始网址,通过站内搜索搜集了大约100个含DC元素的网页,并分别以XML加以存储形成一个初步的检索索引数据库。

2.2 以DC各元素为检索项的DCSE检索界面

DCSE的检索界面以DC的15个元素为检索项,并提供“逻辑或”与“逻辑与”两种布尔逻辑运算。检索界面图见图2。

可选择一个检索项进行检索,比如标题、创建者、描述等,也可以选择两个及两个以上的检索项进行组合检索。组合检索可以快速定位到需要的资源,提高检索效率。

2.3 以DC各元素项内容显示检索结果

图3的检索结果以DC15个元素为显示内容,清晰地描述了网页的外部特征和内容特征,用户通过这个检索结果页面能对需要的网页作出快速而准确的判断和选择。

3 DCSE系统的实现

3.1 系统总体设计

DCSE系统总体设计思路是先自动抓取网页中的DC元数据描述信息,对DC各元素内容解析后,存入数据库形成索引提供检索,检索界面以DC各元素为检索项,检索结果以DC各元素项内容显示。系统数据流见图4。

下面通过追踪一段网页DC描述的演变来分析系统的数据流。

(2)该HTML被搜索引擎的信息收集程序找到,信息收集程序扫描整个网页,遇到含DC元素的网页,抽取其源文件META中的DC元素,将它存入一个XML文件。然后,以http://dublincore.org/为起始站点,SPIDER可以进行自动搜索与之相关的所有网页,抽取所有网页中所含的DC元素,一个网页存入一个xml文件,然后把所有的XML文件放入本地缓存。

(3)利用XML技术解析所有XML文件,解析后的结果为如下二维数组:

(4)解析得到的二维数组推入到后台数据库中,保存在数据库表里面,最后再形成索引数据库提供检索。

(5)查询模块处理用户提交的查询,到数据库表中进行匹配、查找,显示结果包含找到资源的URL和该资源所有的描述信息。例如该网页的显示结果为:

http://dublincore.org

标题:Dublin Core Metadata Initiative(DCMI)Home Page; 日期:2009-05-18;描述:The Dublin Core Metadata Initiative is an open forum engaged in the development of interoperable online metadata standards that support a broad range of purposes and business models……"

3.2 模块实现

系统总体结构包括搜集模块、数据处理模块、查询模块三大模块,各模块结构和内容如图5所示。

图5 系统总体结构图

(1)搜索模块

搜索模块实现工具是jbuilder,实现语言是java2,执行程序需要微软framework支持。搜索策略有深度优先和广度有限两种,深度优先的含义是找到一个链接后,马上去分析该链接对应页面,而广度优先是先将该链接保存在一个缓存队列中,到满足条件的时候再去分析它,这样可以保证一个页面的所有链接都被处理,由于深度优先不好控制,不能保证一个页面的所有链接都会被处理,所以不符合本系统的要求,系统采用的是广度优先法。该模块部分源代码如下:

//提取搜索域和搜索起点地址

DataSet ds=new DataSet( );

DataTable dt1=null;

DataTable dt2=null;

ds=UClass.ManipulateConfigXML.loadDomainConfigXML(System.AppDomain.CurrentDomain.BaseDirectory+AppSettings.Default.SearchDomainUrlFileName);

dt1=ds.Tables["SearchDomain"];

dt2=ds.Tables["SearchStartingUrl"];

System.Collections.Hashtable_searchdomains=new System.Collections.Hashtable();

string [] _searchurls=null;

(2)数据处理模块

由搜集程序搜集到的文档还只是含有描述DC信息的XML文档,计算机还不能很好地用它来处理查询,因此需要利用XML解析器对XML文档进行解析,输出更少单元的DC二维数组,二维数组被存储下来供查询模块分析处理。XML解析器包括DOM和SAX两种,本系统采用的解析器是基于DOM的解析器。DOM解析器的核心是在内存中建立和XML文件相对应的树形结构数据,XML文件的标记、标记的文本内容、实体等都会和内存中树状结构之数据的某个节点相对应。使用DOM解析器的好处是:一个应用程序可以方便地操作内存中树的节点来处理XML文档,获取自己所需的数据。

该模块部分源代码如下:

protected void CarrierProcess(SqlConnection conn,DateTime lastpushtime

//persist xml files into datatable.

DataTable dtCache=new DataTable( );

DataRow dr;

System.Xml.XmlDocument xmlDoc=new System.Xml.XmlDocument();

//System.IO.StreamReader sr=null;

int dtCapacity=1000;//dtCache表最大容量。-1表示不限制

dtCache.Columns.Add("url",typeof(System.String));

dtCache.Columns.Add("dctitle ",typeof(.System.String));

dtCache.Columns.Add("dccreator",typeof(System.String));

dtCache.Columns.Add("dccontributor",typeof(System.String));

dtCache.Columns.Add("dcidentifier",typeof(System.String));

dtCache.Columns.Add("dcsubject",typeof(System.String));

dtCache.Columns.Add("dcdescription" ,typeof(System.String));

dtCache.Columns.Add("dcpublisher" ,typeof(System.String));

dtCache.Columns.Add("dcdate",(System.String));

dtCache.Columns.Add("dcformat",(System.String));

dtCache.Columns. Add("dctype ",(System.String));

dtCache.Columns.Add("dcsource",typeof(System.String));

dtCache.Columns.Add("dclanguage" ,typeof(System.String));

dtCache.Columns.Add("dcrelation",typeof(System.String));

dtCache.Columns.Add("dccoverage",typeof(System.String));

dtCache.Columns.Add("dcrights ",(System.String));

dtCache.Columns.Add("webdomain" ,typeof(System.String));

dtCache.Columns.Add("webfile ",(System.String));

DirectoryInfo thisdir=new DirectoryInfo(AppConfiguration.webpagesaveddirectory+"download\\"); //uclass.appsettings

foreach(DirectoryInfo subdir in thisdir.GetDirectories())//iterate subdirectories of the base dir for storing webpages.

if(DateTime.Compare(subdir.LastWriteTime,lastpushtime)> 0)// the time that directory modified is later than last push data time

foreach(FileInfo subfile in subdir.GetFiles("*.xml"))

if(DateTime.Compare(subfile.LastWriteTime,lastpushtime)> 0)

//read xml file

(3)查询模块

本系统为每个DC元素设计一个查询输入,用户在查询输入框中输入查询条件,系统在索引数据库中查找DC二维数组的集合,查询结果为各个查询项的交集,即只有满足所有查询的记录才是所需要的记录。查询结果把所找到的资源的URL地址及该资源的DC描述信息显示出来,用户在查询框中输入查询关键词,然后单击检索按钮,描述信息的每一项是词汇的URL和与之对应的DC元素值,用户单击这些链接将进入这些资源所在的页面。

该模块部分源代码如下:

//用于与数据库建立连接的连接字符串,定义了数据库的类型、位置、访问//途径

This.sqlConnectionl.ConnectionString="data source=I2P; initial catalog=dcstore; password=sql202i2p; persist security info"+"=Ture; user id=sa;workstation id=LCF; packet size=4096”;

sqlConnection.Open();//打开连接

ds=new DataSet();

//用select选择字符串和一个数据库连接作为参数新建一个数据适配器

daAttendees=new System.Data.SqlClient.SqlDataAdapter(“SELECT*FROM double”,sqlConnection);

daAttendees.Fill(ds,“double”);//向ds中填充double表

sqlConnectionl.Close();//关闭数据库连接

4 总结展望

传统搜索引擎检索结果如Baidu一般有几千几万甚至几百万项,虽然有些搜索引擎会把比较相关的排在前面,但是其总体查准率还是很低,大概在10%到50%之间。以baidu为例,分别输入“绿茶影评”、“DC元数据”、“王菲红豆”,它的检索结果里面出现了大量相关度低的文档导致它的查准率低,出现大量相关度低的文档有两个原因:一个是它的查询机理,即看输入查询条件中的词汇是否在文档中出现过,没有考虑该词汇在文档中的上下文,这样会出现虽然含有查询词,但是与查询意图不符的文档。另一个原因是用户难以用以空格为间隔的关键词串表达查询意图,用户选的查询词必须要在文档中出现,这样会出现两个问题:一是文档中即使出现了查询词,但是可能出现在价值不大的文档位置,往往和用户的意图不符;二是用户的意图无法用文档中已有的词汇表达,因为用户的意图通常是比词汇层更高一层的抽象。

本系统通过基于描述网页的DC词汇集对网络资源进行详细、深入的描述,能有效解决上述问题。系统不再是基于文档中出现的词汇进行检索,而是针对网络资源所做的DC描述性元数据来检索。这些元数据是对资源特征的描述,是更高层次的抽象。而且这些描述的信息具有高可靠性和精确性,从而保证了资源一旦与用户查询匹配,则该资源与查询的相关度就会较高。

另外本系统一个突出的优点是便于用户提出查询要求。本系统的查询机制不再是传统搜索引擎那样让用户在单个输入框中输入查询词,而是提供基于元数据的组合查询,用户可以从感兴趣的角度并且在更抽象的层次上提出查询要求。在提交的显示结果界面方面,不像传统搜索引擎只是列出网页的一小段内容,而是列出该资源的所有被描述信息,从而让用户很快从不同角度理解该资源,作出是否符合查询意图的判断。

如何提高网络信息的组织和检索质量到目前为止仍然是该领域研究的热点问题之一,还有一系列理论及实践技术需要继续探索和解决。总结个人的研究体会,结合本研究设计系统的一些不足,今后还应该在以下几方面需要作出努力:

(1)继续完善查询机制。本系统的查询机制比较简单,只提供对DC15个元素的检索和查询,而不提供DC元素修饰词的查询,是一个简单的平面结构,如何让查询机制具有层次结构是以后研究工作的重点和难点所在。

(2)继续对互联网上的资源进行调查,做需求分析,大力宣传DC元数据在提高资源的访问数量和检索命中率中所起的作用,使资源的提供者充分认识到利用DC元数据的重要性,在发布网上信息资源的同时,也主动提供对资源的描述,这样不仅方便了网上用户,也会使资源提供者本身获得收益。

标签:;  ;  ;  ;  ;  ;  

基于DC元数据的Web网络搜索引擎系统设计_搜索引擎论文
下载Doc文档

猜你喜欢