面向招聘信息主题搜索引擎的研究与设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向招聘信息主题搜索引擎的研究与设计
【摘要】根据特定的主题用户的应用需求,深入研究主题搜索引擎的组织与结构,并结合实际情况,对主题信息收集模块进行设计。

【关键词】Nutch 检索搜索引擎
从2009年开始,搜索引擎进入新一轮的快速发展时期。

2010年上半年,一方面,搜索引擎用户规模和渗透率持续增长;另一方面,用户使用搜索引擎的频率增加,生活中各种信息的获取更多地诉求于互联网和搜索引擎。

搜索引擎界掀起了一场看不见的硝烟的战争,人们希望搜索引擎能够更加精确的返回所需的信息,主题搜索引擎成为了未来搜索引擎发展的趋势。

目前,每年都有几百万的高校应届毕业生毕业,教育部公布2010年全国高校应届毕业生人数达到630万人。

应届生毕业生都希望能够搜集许多的招聘信息以便尽快地找到合适自己的工作岗位,为此,开发一个面向招聘信息的主题搜索引擎是非常有意义的。

一、Nutch简介
本系统的设计是在Nutch上进行二次开发与设计的。

Nutch是一个完整的Java应用系统,是基于Lucene的完整的搜索引擎。

Nutch开放源码,方便程序员通过对源码的修改,对Nutch进行重新发布,通过Tomcat等Web服务器可以进行检索。

二、系统功能分析
(一)系统功能需求分析
面向招聘信息的主题搜索可以为需要找工作的信息检索用户提供面向招聘信息、岗位需求等方面的检索功能,与百度和谷歌的区别在于能够快速的返回给检索用户更精确的信息。

要实现一个专题的搜索引擎,只需要在通用搜索引擎的基础上,针对某一个领域的主题资源进行处理,主要的用户功能需求如图1所示。

(二)设计目标
招聘信息主题搜索系统的设计目标:其一,本系统的为了符合主题用户的实际需要,为用户收集各类招聘信息及各类岗位信息,其中包括用户最关心的公司名称、工作地点、薪金待遇、联系方式等。

其二,系统的开发是面向招聘信息这一特定的主题,相对于通用搜索引擎返回的结果更精确、更集中、更快速,引入中文分词技术,设计一个中文分词器,提高Nutch原有的分词器的分词准确率。

其三,为用户提供友好的交互界面,操作简单方便。

三、招聘信息主题搜索引擎的系统总体设计
主题搜索引擎与通用搜索引擎的工作原理基本相同,因此,本系统的设计就是以通用搜索引擎为基本架构,在网络上通过信息抓取模块将与招聘信息相关的内容进行收集,信息提取模块将收集到的信息进行
内容的提取并交给中文分词模块进行分词后存储,由索引模块进行索引后保存在索引数据库中,用户可以通过向检索模块提交查询请求后,在索引数据库中检索得到相应的结果,并将结果返回给用户。

系统的总体结构如图2示。

根据系统的总体设计结构,系统在设定的一定时间间隔内定期在网络上抓取网页中的有效信息;对抓取得到的网页信息进行分词处理,建立索引,存入索引数据库;系统在接收用户的查询请求后,对查询语句进行分词处理,与索引数据库中的索引数据进行匹配,将得到的匹配信息提取排序后,以结果页面的形式返回给用户。

四、主题信息抓取模块的设计
(一)主题信息抓取的设计目标及流程
主题爬虫在网络上搜集网络资源是有针对性,在对信息进行采集完成后,经过分析、提取等处理后,交给索引模块进行索引,最后用户可以通过检索模块进行相关的查询检索,这是主题搜索引擎的整个工作流程,在这一过程中,主题爬虫将影响整个主题搜索引擎的性能。

主题爬虫的工作流程如图3所示。

主题爬虫的工作流程是,首先从初始种子站点中开始进行信息的采集,对获取的网页的页面进行分析和处理,提取其中的URL,判断获取的网页的页面及URL与主题的相关度,如果满足某一个停止的条件则停止采集任务,如果没有满足则继续根据某种搜索策略选择优
先级高的URL继续进行信息的采集。

主题爬虫的任务就是尽可能多的采集与主题相关度的页面,以此来保证系统对主题的覆盖率,因此,主题爬虫的设计主要从以下两个方面进行考虑:
1.下载与主题相关的网页。

对于主题搜索引擎来说,在用户向系统提交查询请求后,返回给用户的信息应尽量的满足用户的需求,而不是返回大量的无用信息。

因此,主题爬虫的任务不是去尽可能多的收集互联网上的信息,而是尽可能的下载与主题相关的网页。

2.决定主题爬虫的搜索策略。

主题爬虫在访问URL的过程中与通用搜索引擎的爬虫不同,通用搜索引擎的爬虫对于URL的访问不需考虑爬取的页面是否与主题相关,只考虑尽可能多的下载页面,从而完成对海量信息的收集。

主题爬虫爬取的目标是有针对性的,在访问URL收集信息的过程中,需要考虑待爬行的页面与主题的相关度,并根据与主题的相关程度来决定爬行URL的爬行次序。

主题爬虫的目标是完成主题信息的收集,其设计是在通用搜索引擎上的爬虫进行功能扩充的。

主题信息抓取流程设计如图4所示。

本系统要设计和实现的是一个面向招聘信息的主题搜索引擎,在信息抓取模块中首先提供关键词表和网站集合,由主题爬虫根据初始种子站点获取信息,然后再交由主题过滤模块进行过滤。

(二)初始种子URL的选取与设定
主题蜘蛛出发进行主题信息的收集时一般是按照给定的初始种子的站点作为入口地址,初始种子站点的选择将直接影响信息采集的结果。

在对种子站点进行选取时,尽量选择主题范围内具有较高权威性的网站,确保主题爬虫从这些站点集合出发能收集到与旅游主题相关度高的主题资源。

本搜索引擎的初始种子URL的选择使用混合模式,即人工指定与自动生成相结合。

首先利用简单的元搜索的策略在百度上获得一定的链接地址,并经过人工的筛选,过滤等,提取一定的链接地址,通过对地址的分析,可以得到这些地址的上级目录或者网站然后再加入知名的招聘网站。

元搜索策略的实现主要通过HTMLParser来完成。

HTMLParser是一款功能强大的HTML解析器,处理速度快,是目前比较流行的解析器。

它是一个解析Web页面的纯Java开源类库,主要用于分析HTML 格式的Web页面,完成内容的提取。

使用HTMLParser进行链接抽取非常有效,能够快速的提取网页中的链接地址。

下面给出利用HTMLParser在百度上提取链接的部分代码:publicstaticvoidmain(String[]args)throwsParserException
{
try{
TravelWordTable(”关键词表”);
}catch(Exceptione)
{
e.printStackTrace();
}
}//从关键词文件中读取主题关键字,进行元搜索
……
publicstaticvoidTravelWordTable(Stringfilename)throwsIOException {
try{
Stringbuffer;
FileWriterresultFile=null;
PrintWritermyFile=null;
Stringdstfile=filename+”_dsturl.txt”;
Filewritefile=newFile(dstfile);
if(!writefile.exists())
{
writefile.createNewFile();
}
resultFile=newFileWriter(writefile);
myFile=newPrintWriter(resultFile);
BufferedReaderreader=newBufferedReader(newFileReader(filename); while((buffer=reader.readLine())!=null)
{
Stringurl=“/s?lm=0&si=&rn=10&ie=gb2312&ct=0&wd=“+bu ffer+”&pn=0&ver=0&cl=3”;
getBaiduUrls(url,”GB2312”,myFile);
}
……
}。

相关文档
最新文档