基于Nutch的农业垂直搜索引擎研究

摘要:采用基于中文词典的正向最大匹配中文分词方法的JE分词改进Nutch中文分词,使其支持中文分词。最后,采用PAGERANK排序算法改进Nutch原有的基于Lucene的页面排序算法。
目前,“专、精、深”的垂直搜索引擎、智能化语义化的搜索引擎成为人们研究的热点。
在了解和分析Nutch工作原理的基础上对Nutch开源搜索引擎进行扩展和修改来研发基于Nutch的农业垂直搜索引擎。
在基于Nutch的农业垂直搜索引擎研究的基础上结合项目背景需求,设计并实现了该系统管理平台。
第一章,绪论部分。主要阐述了本论文研究的目的、意义及本文要解决的问题、国内和国外的研究状况、核心研究内容以及本文章的组织结构。
主要论述系统结构以及研发过程涉及到的关键技术,最后对其进行测试和分析。
总结论文的主要工作和存在的缺陷之处,并对以后的研究工作进行了展望。
本章阐述了本论文研究的目的及意义,论述了国内和国外的研究状况,给出论文核心研究内容及文章的组织结构。
垂直搜索引擎是专门面向于一个特定行业、特定领域、特定人群而产生的工具,因此,垂直搜索引擎也称为专业搜索引擎、专题搜索引擎或是主题搜索引擎,是通用搜索引擎更细的划分和扩展(王文钧和李巍 2010;李晓明等 2007)。
它不仅具备“专、精、深”的特点,而且在这一领域具有典型的领域特色。
具体而言,垂直搜索引擎就是把Web信息资源中的某类学科信息以定向分字段地形式抽取出所需的数据,即将非结构化的网页数据抽取成一定的结构化的网页数据的过程,然后对数据进行去重、分类、分词、索引等处理,最后再以查询的方式来达到用户的信息需求。
垂直搜索引擎和通用搜索引擎的产生其目的是相同的,都是帮助广大用户搜索信息的相关工具,但其信息的服务形式有很大变化,垂直搜索引擎更注重信息的“专、精、深”。
由图2-1可知,垂直搜索引擎的基本工作原理是:首先网络蜘蛛根据初始URL采集互联网上的网页;其次对采集到的网页进行处理,通过分析网页提取出网页中的内容和网页中存在的URL链接,并对网页中的内容和网页中的URL链接进行过滤,把与主题相关的页面存入网页数据库,同时把网页中的URL链接加入URL数据库,等待网络蜘蛛进一步爬取;最后根据网页数据库建立索引,将该索引保存到索引库。此外,用户通过用户接口进行检索请求,检索器根据用户输入的条件到索引库进行检索,其结果被进行一定的有效组织后返回给检索用户(周鹏等 2009)。
因此,下面主要介绍网页库级的垂直搜索引擎研发过程中用到的主要技术,其主要技术主要包括:信息采集技术、网页信息抽取技术、信息处理技术、分词技术、索引技术等。
垂直搜索引擎的信息抽取是把非结构化的网页数据根据特定的需求抽取成结构化网页数据,提供专业的查询服务,这也是垂直搜索引擎与通用搜索引擎之间的最大不同之处,因此,衡量垂直搜索引擎好坏的一个核心技术指标就是信息抽取技术。目前,信息抽取技术的方式多种多样,主要有基于包装器的信息抽取方式、基于自然语言的抽取方式、基于HTML网页结构的抽取方式(郭来德等 2007)。
垂直搜索引擎的网页信息过滤技术决定着该搜索引擎的专业性,网页信息过滤就是指通过分析网页内容及结构,保留与主题相关的网页,而丢弃与主题不相关的网页。目前,主要的网页信息过滤技术有基于布尔模型的网页信息过滤方法、基于VSM的网页信息过滤方法、基于潜在语义模型的网页信息过滤方法等(罗德一 2007)。
VSM是被上世纪60年代的Salton等人提出用于表达特征的模型,SMART(文本检索系统)是它的典型应用。
中文分词即中文切词,是指将汉字序列分割成代表一定含义的词。
基于字符串匹配的机器中文分词算法、基于词频统计的中文分词算法以及基于知识理解的中文分词算法(李东和张湘辉 2006)。基于字符串匹配的机器中文分词算法也称为词典中文分词算法、机械中文分词算法,它是依据一定的方法把所要分词的汉字串同词典来完成词条匹配,如果在该词典中能够发现该字符串,则表示切分出一个汉字串。
如正向、逆向、最长、最小最短等匹配算法,通常情况都是将以上各种形式的分词方法相互组合使用。常用的几种相互组合的分词方法主要是:正向最大、逆向最大、双向等匹配算法以及最少切分算法;
基于知识理解的中文分词方法是力求使计算机能够具备人类分析句子的能力,从而能够识别出词。它主要由总控部分、句法语义子系统、分词子系统这三部分构成,通过总控部分来调解语义子系统、分词子系统进行歧义分词的判别。
目前,索引技术主要分为四类,分别是线性索引、倒排索引、静态索引、动态索引。
倒排索引是指按照属性的值来检索文件记录,它的索引表中的任意一项是由属性值和对应的记录的地址构成,因此它是用属性值来确认记录的位置,而不是用记录确认属性值;
动态索引和静态索引在索引结构的生成上类似,唯一不同的是索引结构的改变不同,动态索引是在系统进行插入或删除记录时其索引结构能够改变。
Nutch的两个核心部分分别是:crawler(即爬虫)、searcher(即查询)
Crawler的核心是用于从Internet上爬取网页到索引库的建立。
Searcher的核心是根据用户的查询词到索引库进行检索来生成查询结果。
首先是索引其文件格式相对应用平台具有独立性;
此外,Lucene的系统架构具有面向对象的特点,使其对它的学习难易程度大大降低,也方便了扩展其他新功能。
爬取部分主要是爬取网页信息并将网页信息进行反向索引,搜索部分是依据用户的搜索请求进行反向索引,并将其结果返回给用户。
将多个索引合并为一个大的索引库,为用户搜索时提供服务;
根据用户查询条件,检索器将用户的查询转换为Lucene的查询查找索引库;
现有的URL过滤规则很多,有基于正则表达式的URL过滤规则、有基于网页内容的URL过滤规则等。
本研究首先对样本数据采用聚类技术获取样本文件,其中样本数据是人工手动获得;
分类是预先给定类别数目,在类别数目一定的情况下,手动进行对分类训练语料的标注,然后训练获取分类器。
聚类是把数据对象进行归类,将相似度较大的数据对象归为一类,不在同一个类中的数据对象相似度相差比较大,属于无监督学习行为,能够自动的划分数据集。
k-means 聚类算法能够输入聚类数量 k,然后依据聚类个数k划分n个数据对象来满足聚类需求,聚为一类的数据对象有较高的相似度高,不在同一个类中的数据对象相似度有比较大的差别。聚类相似度是选用每一类中数据对象的平均值作为该类的“中心”进行计算相似度(李慧等 2004;Hearst M A 1997)。它具体的归类流程是首先从所有数据对象n中随意选取K个数据对象,作为K个类的首次聚类中心对象;其次,计算剩余数据对象与聚类中心对象的相似度(即距离),将最相似的归为一类;然后重新计算每个类中数据对象的平均值(即该聚类中心对象);最后一直循环上述过程,当均方差(常用的标准测度函数)收敛于某一个值,停止循环。这样使k个聚类相互之间能够尽最大可能的分割,而和K个聚类自身能够尽最大可能的聚集(毛国君和段丽娟 2007)。
分类是一种重要的数据挖掘技术。分类是为了依据数据中对象的特征构造出分类器(即分类模型)。
K最近邻分类算法也称KNN分类算法,它采用欧几里得计算距离的公式来计算两个样本间的间隔(即距离),如公式3-1所示。
其中 表示第i个样本对象的第k维向量特征, 表示第j个训练对象的第k维向量特征,M表示向量特征的总维数, 表示第i个和第j个对象间的相似度。
基于Nutch的农业垂直搜索引擎是借助开源搜索引擎Nutch开发的,因此本研中中文分词也是非常关键的一个技术。
Analysis包内的NutchAnalyzer定义了Nutch分析器,NutchAnalyzer继承了Analyzer,也是Nutch里对文本分析进行扩展的一个很好的扩展点。NutchAnalyzer类是Nutch中默认的字符串分词和分析检索接口,它是通过JavaCC来编译NutchAnalysis.jj文件生成的代码,其中NutchAnalysis.jj文件是生成代码的规则文件。
其次将其与词典进行匹配,如果匹配失败则去掉W最右边的这个字符,继续匹配,否则匹配成功,从左起去掉S1的前M个字符,将匹配成功的词追加到字符串S2;接着不断循环前面的操作,直到字符串S1为空为止;最后输出切词结果S2。
对于一个面向中文的搜索引擎来讲,只有在抓取信息和检索信息时使用一样的中文分词算法,
目前,本体库的构建针对自身的应用领域有不同的构建策略,但其构建过程都遵循一定的规律性。
传统基于关键词的VSM主题相关性判别是通过解析网页,提取出网页内容,然后结合关键词统计网页词频来判断网页的相关度。
解析网页前,先获取特征词集合 和向量特征 ,其中 表示特征词 所对应的权值。
下面对改进用到的相关算法和改进的具体过程进行分析。
tf(t_in_d) :表示查询词(t)在网页(d)中总共出现的次数,查询词(t)在网页(d)中出现的频次越高,网页(d)的得分就越高。
若网页中包含查询词的个数越多,则其网页得分越高;
其缺点为:该算法精确度低,网页的权威性不能够完全体现。
它的基本思想是“如果网页是从许多质量高的网页中链接得到该网页,那么该网页一定还是质量高的网页”。
(5)d:表示阻尼系数,d的取值为0到1,通常取值是0.85。
PageRank算法有一个特点就是PageRank值之和与网页的总数相等,可以通过下面图3-6进行说明。
网页的向量化表示是指提取页面中存在的特征词,并计算其权值。
首先对包含标记的网页进行切词处理,去掉停用词;
搜索引擎对于用户来说是用来进行信息搜索的工具,用户进行信息搜索通过搜索引擎对用户开放的用户检索接口来进行。
由图3-7可以看到基于Nutch的农业垂直搜索引擎用户检索接口不仅提供用户检索的基本功能,即用户输入搜索词,通过查询词到索引库进行检索,将检索结果按照上小节阐述的改进策略进行排序,将排序结果返回给搜索用户;
传统衡量搜索引擎好坏的指标是查全率、查准率,查全率是搜索出的网页数与网页库中总的相关网页数的比值;
一般来讲,当查全率高的情况下,查准率就低,而当查准率高的情况下,查全率就相对低。
关键词结果总数选取数相关数非相关数主题相关率
其中n为网页的总个数,A(i)为网页的质量等级,B(i)为网页与检索词的相关度。其中A(i)取值如下所示:
其中N为检索关键词的个数,n为网页的个数(即60), 为与用户需求有关的网页个数。
本章主要针对系统需求、体系结构以及系统功能进行阐述,最后进行系统的测试和评价。
B/S、C/S模式检索接口属于不同平台下相同搜索引擎接口,用户从该接口进行搜索,输入搜索词,并对其搜索词进行中文分词结合农业领域本体库进行查询扩展,最后进入索引库进行检索,将其结果按一定排序策略排序后呈现给用户。
性能测试是一种用测试工具进行模拟系统的正常、异常以及峰值等条件来进行系统测试。常用的压力测试方法是负载测试、压力测试。负载测试是用来测试系统工作在各种条件下的性能情况。压力测试是测试系统的极值(即瓶颈),以此来确定系统能够正常工作的极限。目前性能测试工具非常多,本实验选用QALoad这种工具进行压力测试。经测试本系统管理平台性能较好。
除此之外,还能够方便用户进行农业相关信息的搜索。
(2)Nutch中文分词的改进。采用基于中文词典的正向最大匹配中文分词方法的JE分词改进Nutch中文分词,满足基于Nutch的农业垂直搜索引擎中文分词的要求。
系统管理平台。

 

原创文章,作者:Editor,如若转载,请注明出处:https://www.diyilunwen.com/lwfw/keji/356.html

(0)
EditorEditor
上一篇 2014年10月8日
下一篇 2014年10月8日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注