高校毕业生就业信息搜索引擎的设计与实现

2013-12-29 00:00:00阮昆
电脑知识与技术 2013年13期

摘要:由于高校行政管理体制分割以及高校的保护主义,各高校信息网的就业信息基本是分立甚至是隔绝的,鲜有院校相互合作、共享就业信息。为把这些存储高校毕业生就业信息的信息孤岛连接在一起,给广大毕业生和用人单位搭建一个畅通的无障碍的沟通桥梁,笔者研究并实现了一个高校毕业生就业信息搜索引擎系统,阐述了就业信息采集器的算法及原理,利用多线程技术实现了就业信息采集器;建立了中文分词、索引算法,对命中的词语进行了高亮显示。

关键词:就业信息采集;搜索引擎;中文分词;索引算法; Lucene.Net

中图分类号: TP311 文献标识码:A 文章编号:1009-3044(2013)13-3081-03

1 概述

1998年以后随着高校扩招,高校毕业生急剧增加,毕业生的就业形势显得一年比一年严峻,2013年的毕业生人数达到690万。面对如此严峻的就业形势,毕业生及时有效的获取就业信息成为毕业生就业过程中最为关键的一环,因此毕业生就业信息的收集工作成为了高校就业指导工作的重要组成部分,只有让毕业生及时、准确、全面地掌握就业相关信息,才能使毕业生获得更多的求职机会,高校的就业指导工作才能更好的发挥作用。

四川大学吕婷同学在《论我国大学生就业体系的构建》的统计数据中显示,大学生在就业过程中获取就业信息的最主要渠道是校园招聘会,占23.2%,其次就是学校的就业公告栏,占20.2%,两者合计达到了43.4%, 再次为通过其他网络获取就业信息,达到16.3%,而政府招聘会、报纸、人才市场和亲戚朋友等就业信息渠道都在9%左右,[1]可见大学生在就业过程中更依赖从高校的就业信息渠道获取就业信息。

由于高校行政管理体制分割以及高校的保护主义,各高校毕业生就业信息网上提供的就业信息基本是分立甚至是隔绝的,鲜有院校相互合作、共享就业信息。这种高校高度自治的就业信息网站建设局面形成了数量庞大的信息孤岛。这样的信息孤岛看似保护了本校毕业生得利益,实际上也给毕业生的就业信息获取带来了诸多困难,因此建立高校毕业生就业信息搜索引擎为毕业生提供丰富的、及时的、有针对性的就业信息成为需要我们解决的一个课题。

2 垂直搜索引擎概述

垂直搜索的本质是对垂直门户信息提供方式的一次简化性的整合。它服务于某项功能的。而垂直搜索引擎是为垂直搜索服务,对网页中某类信息进行一次简化性的整合,通过关键词抽取出有用的数据进行处理,然后再返回给用户。

垂直搜索引擎的优点[2]:

1)稳定的用户群体

垂直搜索引擎为用户提供的并不是上百甚至上千万相关网页,而是范围极为缩小、极具针对性的具体信息。因此,特定行业的用户更加青睐垂直搜索引擎,是垂直搜索引擎的长期、稳定的群体。

2)搜索结果精确,查准率高

用户使用Google等通用搜索引擎的方式是通过关键词的方式实现的,是语义上的搜索,返回的结果倾向于知识成果,比如文章,论文,新闻等;垂直搜索也提供关键词来进行搜索,但被放到了这一行业知识的上下文中,返回的结果更倾向于信息、消息、条目等。

3 Lucene.Net简介

笔者通过C#结合Lucene.net建立一个针对高校毕业生就业信息的搜索引擎,能够对高校毕业生就业信息网的信息进行采集、下载、分析、实现中文分词并建立索引,最后采用网页的形式为用户提供就业信息的检索。

搜索引擎各部分的主要功能描述如下:

1)采集站点管理

该模块用于管理垂直搜索引擎抓取的数据来源,即用于管理垂直搜索引擎需要采集的就业信息站点。为满足各种不同类型的高校对于就业信息的不同需求,系统允许高校根据自身的地域、专业特色、行业特性设置符合自身需求的就业信息网的网址信息,例如对同城高校和同行业高校的就业信息网进行采集,也可以让学生用户向服务器提供建议网站,通过这样的功能既提高了搜索引擎的专业性,也使得数据库中增加了很多学生认为对自己很有用的信息。

2)高校毕业生就业信息采集器

就业信息采集器是C#多线程技术实现的一个就业信息采集机器人,该机器人通过采集站点管理模块提供的目标站点目录作为入口,对目标采集站点中的就业信息进行采集,并将采集到的就业信息进行去HTML标签后存储到数据库,同时将网页保存至服务器作为后期网站快照的依据。

3)中文分词器

众所周知,英文是以词为单位的,词和词之间依靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。该功能模块把采集到的就业信息切分成有意义的词,中文分词的准确与否,常常直接影响到对搜索结果的相关度排序。

4)索引器

索引库的建立关系到用户能否最迅速地找到最准确、最广泛的就业信息。索引器通过扫采集器采集的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户。

5)用户查检索功能

该功能通过友好的查询界面,为用户提供高校毕业生就业信息的垂直搜索,并输出搜索的结果。

5 高校毕业生就业信息搜索引擎的关键技术

5.1就业信息采集器的实现的关键技术

笔者通过利用c#多线程技术实现就业信息采集器,采集数据时使用“从严采集”策略,即对当前采集页面进行分析和判断,仅采集主机地址或IP地址属于采集目标站点的就业信息,超出目标站点的信息进行忽略,这种从“严抓采集”的策略有效的限定了采集的范围,提高了就业信息采集的准确性和采集效率,节约了服务器的存储空间。从严抓取策略的关键代码如下:

5.2中文分词器实现的关键技术

在Lucene.Net中,分词是核心库之一, 目前Lucene.Net的内置的分词库很不完善,实际应用价值不高,如果只使用拉丁语系,那么使用内置的分词可能足够了,但是对于中文分词肯定是不行的,因此我们必须构造自己的分词方法ChineseAnalyzer。

分词器中具体的分词程序需要通过在Next()方法来实现。在Next()方法中的words是采用正向最大匹配算法或逆向最大匹配算法分词后的一个词列表,通Next()方法将输入的文本分割成一个个Token。 关于正向最大匹配算法或逆向最大匹配算法分词笔者不再赘述。

5.3索引器实现的关键技术

在Lucene.Net中IndexWriter类是索引中负责操作的核心,它负责把索引文件写入存储介质,是控制逻辑存储转换为物理存储的纽带。Document类是一条虚拟记录,可以理解为数据里的一行,它一般记录了需要用到的一个文档的属性。Field类就是数据库里的一列。一个文档有标题,内容,招聘时间,招聘地点这四个属性的话,那么就需要四个Field保存这些属性,然后把四个Field加入到Document中,就有了一行记录。

5.4用户查询检索功能实现的关键技术

Web应用相对于Winform应用来讲,Web应用具更加有完善的布局能力,包括能够基于文本流进行布局,包括各种段落、图片,段落中文字的左中右对齐,段首的缩进,行间距,避头尾字符用户的查询功能

笔者在具体实现中使用Lucene.Net的IndexSearcher、Query、QueryParse、Hits4个搜索核心类和Lucene.Net.Highlight类实现搜索功能。

6 系统的界面实现

7 结论

笔者研究了垂直搜索引擎的主要原理和技术,通过使用C#多线程技术及Lucene.Net开源项目设计并实现了一个高校毕业生就业信息搜索引擎系统,并在系统中重点研究了就业信息的采集和中文分词、索引、检索等关键技术。随着高校毕业生就业形势日趋严峻,高校毕业生就业信息搜索引擎在实际运用中将高校毕业生就业信息的信息孤岛连接在一起,为广大毕业生和用人单位搭建一个畅通的无障碍的沟通桥梁,间接实现了就业信息共享,提高了高校就业工作的效率、保证了就业信息提供的及时性和针对性,在高校就业信息化建设中具有十分重要的意义。

参考文献:

[1] 侯月娥. 论高校毕业生与用人单位之间就业信息的不对称[J].太原大学教育学院学报, 2009(27)(增刊):126-127.

[2] 百度百科[EB/OL].http://baike.baidu.com/view/7491.htm.

[3] 百度百科[EB/OL].http://baike.baidu.com/view/5049915.htm.

[4] 邱哲,符滔滔.开发自己的搜索引擎[M].北京:人民邮电出版社,2007.

[5] 李志更,唐志敏.国外基于电子政务的公共就业服务的实践与启示[J]. 电子政务,2010(5):3-10.

[6] 肖甦.浅谈俄罗斯高校毕业生就业的管理系统.[J].外国教育研究,2007,34(7):69-71.

[7] 高金勇,冯奕兢.基JSP与lucene的学前教育资源检索系统的设计与实现.[J]硅谷,2012(10):161-162.

[8] 赵喜乐,陈光.垂直搜索引擎的抓取系统—基于网络蜘蛛技术[J]. 电脑知识与技术,2009,5(19):136-137.

[9] 王琦,张戈.何婧基于Lucene与Heritrix的图书垂直搜索引擎的研究与实现[J].计算机时代,2010(12):12-14.