高等教育动态资讯收集查询系统的设计与实现 ——毕业论文_第1页
高等教育动态资讯收集查询系统的设计与实现 ——毕业论文_第2页
高等教育动态资讯收集查询系统的设计与实现 ——毕业论文_第3页
高等教育动态资讯收集查询系统的设计与实现 ——毕业论文_第4页
高等教育动态资讯收集查询系统的设计与实现 ——毕业论文_第5页
免费预览已结束,剩余47页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆理工大学毕业论文 高等教育动态资讯收集查询系统的设计与实现 编号 毕业设计(论文)题目 高等教育动态资讯收集 查询系统的设计与实现 二级学院 计算机科学与工程 专 业 计算机科学与技术 班 级 XXXXXXXXX 学生姓名 学号XXXXXXXX 指导教师 职称 XXX 时 间 XXXXXXXXX 目 录摘 要IAbstractII1 绪论11.1课题背景11.2国内外研究现状11.3 研究目的21.4论文的组织结构22.开发技术与原理简介42.1 搜索引擎发展概述42.1.1搜索引擎简介及发展目标42.1.2 搜索引擎分类42.2基本工作原理及技术分析52.2.1 网页抓取52.2.2 建立索引82.2.3 检索查询处理103. 需求分析133.1功能需求133.1.1高等教育的垂直搜索引擎需求133.1.2功能模块需求分析133.2 性能需求163.3 技术可行性分析164. 系统设计174.1 系统流程图174.2软件结构与模块划分174.3 程序流程设计194.3.1客户端程序流程设计194.3.2 服务器端程序流程设计194.4 数据结构设计234.4.1数据库端234.4.2 服务器端245.2.3文件夹端244.5 界面实现244.5.1客户端界面:245.3.2服务器端维护界面255. 系统实现275.1界面实现275.1.1客户端界面:275.1.2服务器端维护界面275.2 代码实现295.2.1网络爬虫实现代码295.2.2 索引建立实现代码305.2.3 查询模块实现代码306. 系统测试326.1测试环境的搭建过程326.2功能实现测试326.2.1网页数据爬取测试:326.2.2分词模块测试356.2.3索引数据库建立模块测试356.2.4 搜索模块测试367.总结37致 谢38参 考 文 献39文献综述40摘 要从传统搜索引擎中衍生出来的垂直搜索引擎,从刚开始的发展就备受人们和研究者的关注,它相对于传统的搜索引擎,针对性更强,目的性更明确,目标人群更显明,相关信息更精准。垂直搜索引擎是一种对于目标明确的一个行业或者专业的一方面,进行针对特定目标人群的一种搜索引擎服务。在与其相关的专业方面进行信息的深度提取,并进行更加专业的分析。在自己查阅相关书籍和资料以后,本篇论文主要是用于开发一个关于高等教育方面的动态资讯的垂直搜索引擎。该系统采用网络爬虫,从相关的教育网站,例如中国教育网作为其实网站,进行与高等教育相关信息的提取,在这之中,可以采取深度优先的Shark-Search算法,或者是广度优先的PageRank算法。之后对提取的数据信息进行分析,然后建立索引,对它们做倒排索引等。该系统最终实现了对高等教育动态资讯的收集和存取。主要有网络爬虫、建立索引、关键字搜索等功能模块。本文首先介绍了关于该课题研究的背景以及重要性等方面,之后针对与其有关的技术的原理进行了一定的解释,同时结合文章以及自己的设计,开发一个关于高等教育动态资讯的收集的系统。该搜索引擎主要涉及到网络爬虫,页面分析,建立索引等相关的知识和算法结构。关键词:高等教育 垂直搜索引擎 网络爬虫 倒排索引 信息抓取AbstractVertical search engine derived from the traditional search engine with the people and scholars have paid attention to it from the beginning.It compared with the traditional search engine,more targeted,more targeted, the target population is more obvious, the relevant information is more accurate.Vertical search engine is a kind of industry or profession which is specific to the target with a search engine service for a specific target population.Depth extraction and its related professional information, and professional analysis.After consulting related books and materials,this paper is mainly used to develop a vertical search engine on the dynamic information of higher education.The system uses web crawler to extract information related to higher education from the relevant educational websites, such as the Chinese education network as a web site.In this, we can take the depth first Shark-Search algorithm, or the breadth first PageRank algorithm.After the analysis of the data extracted information, and then set up the index, doing inverted index, etc.The system finally realizes the collection and access of the dynamic information of higher education.There are web crawler, the establishment of index, keyword search and other functional modules.This paper firstly introduces the background of the research on the subject and its importance.Then explain the principles of the technology,at the same time, combined with the article and its own design, the development of a dynamic information on the collection of higher education system.The search engine mainly related to web crawler, page analysis, the establishment of index and other related knowledge and algorithm structure.Key words: Higher Education, Vertical search engine,web crawler,Inverted index,Information capture.II1 绪论1.1课题背景随着互联网的快速发展,互联网技术已经应用到普通百姓的生活的方方面面,其中搜索引擎的使用尤为广泛。在最近的15年时间段,是搜索引擎爆炸性快速发展的阶段。搜索引擎的发展从最早的分类目录的一代,经历文本检索,链接分析,到现在的以用户为中心的一代。而随着社会的发展,我们了解到一个国家的高等教育发展状况,也反映了它的国际竞争力,因此关注和研究高等教育的动态资讯越来越受教育界的重视,并且高校老师和学生也越来越喜欢关注与自己切身相关的各种信息。因此,当再给每个用户相同的一个入口的时候,已经不能够满足他们的搜索要求了。并且,一般的搜索引擎想要保存以及更新所有的动态资讯是不可能的。对于上述情况,就必须需要一个能够挖掘更加准确,更有深度,主题信息保存更完整的高等教育垂直搜索引擎,用来满足学者,老师,高校同学等受众人群的使用。1.2国内外研究现状目前国内外有很多的垂直搜索引擎,但是还没有单独针对高等教育方面的垂直搜索引擎。像中国教育信息网、中国教育考试网等是一些提供了关于教育方面信息的门户网站,但是还并没有一个单独适用于高等教育方面的搜索引擎。垂直搜索引擎爬取的信息来源应该是与该事项有关的行业网站。比如关于工作信息方面的垂直搜索引擎 ,它的数据信息来自于 , ,以及。垂直搜索引擎的所有的搜索动作都是属于一种结构化的搜索,该行为是在结构化数据以及元数据的基础上成立的。中国的垂直搜索引擎市场规模在年得到很大程度的扩大发展,根据易观国际的监测以及研究数据可以看出,在垂直搜索引擎的市场规模从上半年的21.5亿元发展到其年底的53.2亿元,其中垂直搜索引擎占据了很大的分量。现在国内外的垂直搜索引擎所囊括的行业五花八门,关系生活的方方面面,比如就有找工作方面,医疗方面,旅游方面,图书方面以及购物方面。在中国的垂直搜索引擎领域内,排行前面的是赛迪IT罗盘,其网址是:/,作为赛迪网推出的在中文领域内的首个关于IT方面的垂直搜索引擎,它具有不同凡响的意义。到2011年为止,它就已经收集了关于IT方面的网址有2万多条,而关于IT方面的网页的数据数以百万。但即使是这样,中国的垂直搜索引擎技术的发展与国外水平仍然有很大的差距,主要体现在对于数据的挖掘方面,接口开放方面以及对于信息的共享等层面。在国外发展比较好的几个垂直搜索引擎有关于法律信息方面的LIBClient-IRISWeb系统,针对科学信息开发的Seirus系统等。1.3 研究目的现在互联网的发展很迅速,有各种的消息渠道如微博,网页,朋友圈可以获取各种世界上正在发生或已经发生的事情。但是太多的信息轰炸,反而很快就覆盖了我们真正想要关心的事情,比如许多的高校学生,老师以及高等教育的研究者就很关注每天发生了哪些与自己也就是高等教育方面的事件,同时,也想要了解在以前是不是也发生过相似的事件。但是,社会发展日新月异,每天都有大量的事情在发生,而他们关注的信息就会马上被覆盖,很难再重新查到。关于教育方面的网站有中国教育网,中国考试网,但是它们是包括了所有有关教育方面的一个大型的信息门户网站,随着每天的各种事件的发生,我们想要了解的关于高等教育方面的信息也会很快就被淘汰。因此,专门设计一个系统,用于收集高等教育的动态资讯,是一件势在必行的事情。而该系统就是一个关于高等教育方面的垂直搜索引擎,主要就是供各方人士查询阅读只和高等教育方面相关的事件。垂直搜索引擎主要是从与该行业相关的其他网站抓取所需信息,是一种机构化的搜索引擎。通过开发的高等教育动态资讯收集的系统,每个人就可以每天都能在该搜索引擎上面看到所有的高等教育方面的事件,以及是否以前也有相关事件的发生,从而也不再担心是否这些信息会被覆盖,因为它们在被网络爬虫抓取之后,进行页面分析,以及索引的建立之后就存储在数据库里面,方便以后的随时查询和阅读。1.4论文的组织结构在本篇论文中,各章的论文组织结构如下:第2章 对开发技术和原理进行一个简介。首先是对搜索引擎的发展进行简单的描述,主要包括两个方面:其一是发展至今的3个目标,其二是对搜索引擎按照功能进行的分类和简介。同时也介绍了垂直搜索引擎的基本开发原理和流程,然后还有垂直搜索引擎需要的基本技术。第3章 是一个需求分析。它一共分为3个部分:第一部分是对垂直搜索引擎的功能需求进行一个分析介绍。第二部分是对它的性能需求进行阐述,第三部分是对该系统的技术可行性分析。第4章 是总体设计。它主要包含了对系统流程图的设计和软件结构与模块划分的设计。在第一模块我主要是对本系统做了一个总体的流程框架的设计。在第二模块简单介绍了一下其软件的结构,将本系统分为客户端和服务器端两个模块来介绍。第5章 是一个详细设计的描述。里面分别对本系统的程序作了一个流程设计,还有数据结构设计。在数据结构模块,我一共分了数据库端、服务器端和文件夹端三个方面。同时也展示了一下前台和后端的界面设计。第6章 主要是对实现本系统的一些核心代码展示。主要包括信息采集,信息处理以及信息检索三个方面的。第7章 一个系统测试版块,先描述了对测试环境的框架的搭建,之后是对系统的功能实现进行了一个简单的测试。第8章 对全文进行总结,并且给出本系统的一些还不完善的地方,期望以后可以改进。2.开发技术与原理简介2.1 搜索引擎发展概述 2.1.1搜索引擎简介及发展目标随着互联网如火如荼的发展,IT技术已经应用到普通百姓的生活的方方面面,其中每个人对于搜索引擎的使用尤为广泛,在中国尤为百度和搜狗的最频繁。在2000年之后的最近15年时间段内,是搜索引擎迅猛发展的阶段。搜索引擎的发展从最早的一代是分类目录,之后再经历了文本检索,链接分析,发展到现在的是一代以用户为中心。如今互联网主要是以用户的个性化以及社交化作为发展的趋势,从中,垂直搜索引擎得到产生和发展。可以看出垂直搜索引擎就是一个针对明确的目标人群和行业领域的特色搜索服务。搜索引擎发展至今,一共有3个目标,分别是“更全、更快、更准”:(1)针对“更全”:从网页数量来考虑,要做好一个好的搜索引擎,尽量追求索引的网页数量能够更全,从而满足人们更全的需求。这个可以通过网络爬虫来解决。(2)针对“更快”:在前一个目标的要求下,有了相对较全的索引网页之后,对索引以及缓存等技术的要求,就是更快。这个可以通过各种最佳的算法来实现此目标。(3)针对“更准”:有了更全和更快之后,接下来的是最重要的一部分,也就是更准。在对索引网页进行排序,以及对链接结果进行分析的时候,都需要做到力求更准,从而能够加强使用者的印象。作为一个搜索引擎,如果能够做到更准,那么它就增加了很强的竞争资本。2.1.2 搜索引擎分类在搜索引擎发展的历史长河中,经过不断的完善和修订,现在可以分为3种类型,分别是元搜索引擎、目录搜索引擎和全文搜索引擎。(1) 全文搜索引擎:现在的互联网上出现的搜索引擎大多是由全文搜索引擎演变而来的,是通用搜索引擎的主要形式。像我们比较熟悉的百度就是全文搜索引擎。它的主要工作原理就是首先在网络上通过蜘蛛爬取数据,之后建立索引,用户通过输入查询条件,收到需要的信息反馈。(2) 目录搜索引擎:和一般的搜索引擎有很大区别,更像是一种门户网站。使用者通过首页的分类目录可以查询自己想要查阅的信息。比如搜狐新闻首页,就是属于目录索引。(3) 元搜索引擎:作为搜索引擎的一种类型,并不是我们概念里面所认知的搜索引擎,它主要的工作原理是当收到用户的查询条件之后,将几个搜索引擎的查询结果综合起来,再一起反馈给用户。2.2基本工作原理及技术分析在设计一个通用搜索引擎搜索引擎的时候,工作可以分为三个步骤:提取网上信息、建立索引、搜索查询处理。搜索引擎结构如下图:图2.1 搜索引擎结构第一步:提取网上信息(网络爬虫)。获得网页内容的方式是通过网络蜘蛛技术,从设置或者输入的一个起始网站开始抓取信息,再通过其中的链接,跳到另一个网页继续抓取,之后将资源进行保存。第二步:建立索引一个垂直搜索引擎,建立一个好的索引系统是重要的一步。在经过网络爬虫爬取了数据信息之后,需要建立索引之后再将它存取到数据库里面。第三步:检索查询处理当用户在Web界面输入相关查询条件,通过对其的传送,判断,关键词匹配,再将查询结果反馈给用户。2.2.1 网页抓取(1)网络蜘蛛现在网上的信息量是巨大的,一个简单的搜索引擎是不可能做到把网上所有的资源都抓取出来,当然也没有必要这么做。网络蜘蛛是现在搜索引擎下载网络资源的主要方式,它的主要工作流程就是:在服务器端的程序运行之后,可以输入一个起始网站,把它作为种子网址,就从这个网址开始抓取网上的信息和数据,然后再从这个网址的链接进入另外一个网页,继续抓取资源,一直如此循环。当然它是可以根据在系统后端设置的爬取深度和线程数来控制抓取什么时候停止,当爬到了设置好的深度,那么就不再进行下一层的网页抓取。在使用网络蜘蛛抓取数据的时候,它有两种抓取顺序,分别是深度优先策略和广度优先策略。对于广度优先算法,它的主要进行流程就是当从一个起始网站开始抓取信息之后,它是作为第一层,之后通过链接进入另一个网站,它就是第二层,循环往复的递增。对于宽度优先,顾名思义,就是必须要把每一层的所有内容都抓取完之后,才可以进入下一层,再进行抓取。它是通用搜索引擎常用的抓取方式,因为这样涉及的内容很广泛,但是也有相应的缺点就是可能会错过其中的深层次的重要的资源。它的主要抓取形式如图2.2所示。图2.2 广度优先策略深度优先算法,它的主要进行步骤就是从起始网页开始,按照其中一条链接,一直走到底,直到没有链接为止,其实按照名字也很好理解,就是从深度的方向考虑,一层一层的递进。深度优先的好处是可以抓取到很深层次的资源,但是往往这样就容易忽略掉宽度的问题,从而有时候还会掉入链接死循环的陷阱里面。图2.3是对深度优先进行的一个说明。图2.3 深度优先策略(2) 主题信息采集做一个垂直搜索引擎,与通用搜索引擎最大的区别之一就是对主体信息的爬取和下载。一般专题资源的下载有两种方式:其一是专门搜集与专题相关的权威的网站,然后对这些网站进行信息抓取。同时还有另外一种方式,就是使用一些算法,然后对网上的资源进行选择性的抓取。其中最简单的方式就是利用在该主题领域内比较权威的一些关键词作为指导,在一般搜索引擎上面搜索,然后再点击查询结果,把它的网址作为起始网站再次进行网络爬取,最后将它爬取下来存储在数据库作为索引的内容,存储在我建立的数据库topic index里面,把它称为训练集向量。比如我的系统是关于高等教育方面的垂直搜索引擎,那么就可以使用高等教育和大学生作为关键词,或者组一个关键词列表,如下表2.1所示,然后在网页上进行搜索,抓取相关的专题网页,再把这些网页作为起始URL,进行深度抓取。关键词文档主要是为了在网页信息抓取和对网页的权值进行计算的一个词汇集。我们可以了解到,垂直搜索引擎的核心就是主题资源的抓取和下载,但是每个搜索引擎具体采用的爬取算法不同,不过不变的是利用一定的算法来进行网页的重要性分析,再进行深度爬取。表2.1 高等教育关键词 关键词权值配置关键词权值高等教育10高校10大学生10研究生10考研9老师8上课8实验7毕业7寒假6暑假6教材5(3) 多线程爬虫在本系统中,我采用了多线程爬虫,通过减少在网页爬取过程中的下载时间,从而提高了其爬虫的性能。多线程爬虫的意思就是使用多个线程一起处理网页,提高了爬取数据的整个过程的效率。具体的实现方式是Java有一个可以直接继承对象类,是Thread,通过使用并发运行的对象,就可以了。当有等待的URL,或者是还没有到达设置的深度,就可以使用新的线程,这所有的一切都可以通过设置好了的深度和线程数来控制。2.2.2 建立索引索引是指对抓取的并且已经处理好的数据信息存储在数据库,以便进行检索的一个模型,主要就是为了使用者在Web界面进行查询的时候,准备的一个后端的支持的资源库。一般情况下我们都是采用倒排列表来构造索引库。倒排索引是一个性能好,效率高的索引方式。在建立索引模块,一般步骤可以分为三步:首先是对抓取的内容进行分词,主要使用的的分词方式是中文分词;其次是建立正向索引;最后是根据正向索引建立倒排列表。倒排列表存储在数据库里面,它其实就是一个单词列表,主要是为接下来的关键词查询做准备。一般建立索引有3种方法:第一种是两遍文档遍历法、第二种是排序法、第三种是归并法。两遍文档遍历法:从名字就能看出来,这个方法的主要内容就是对文档进行两遍遍历。首先进行第一次扫描文档,主要是通过统计文档的基本信息,例如文档编号ID,单词个数等,从而确定需要多大的索引内存。在进行第二次扫描的时候,就可以建立单词的信息属性,从而建立倒排索引。排序法:在此方法中,实行给内存分配固定的大小,当内存快消耗完的时候,将存放的索引中间结果放到磁盘中,在内存里删除,周而复始。归并法:和排序法前期很相似,但是排序法是只将中间索引结果转到磁盘中,但是在归并法中,要包括词典信息一起转入磁盘中,在内存中将之删除,因此,这样就不会有排序法的后期烦恼,也就是内存会因为在其中存储的词典信息越来越多,而它的消耗越来越大。中文分词:分词技术是搜索引擎的一个重要技术。在中国的搜索引擎碰到了一个困难,那就是与英文有很大的区别,英语句子是直接有单词组成的一个句子,每个单词之间有空格符,但是中文句子并没有明显的词间分隔,因此这就需要我们使用中文分词技术,通过算法或者是词典来进行处理。现在的分词手法的依据有两种,分别是:字典和统计学。目前的中文分词有三种算法:基于字符串匹配,基于理解,基于匹配的分词方法。在第三种以字符串匹配为基础的,通过和已有的词典进行匹配,来判断是否是一个词汇。它有三种对词典的遍历方式:正向匹配、后向匹配,以及双向匹配,从名字也能看出主要是遍历方向的差别。自从使用中文分词技术以后,搜索引擎的准确率和效率都有了大幅度的提高,因此越来越多的搜索引擎采用该技术来进行网页内容的分词处理。但是同样的,该技术也是有一定的技术难点和瓶颈,那就是歧义识别,以及新词识别问题。倒排索引:常规的索引是从文档再到关键词,这样在检索的时候很麻烦,必须要将所有的文档都遍历一次,耗时耗力。因此一般都采用倒排索引,它是一种从关键词再到索引的关系文档。因此在检索的时候,只要输入查询条件,在对查询内容进行分词处理之后,就可以直接根据关键词找到文档的位置了。因为它和正常的索引是相反的,因此叫做倒排索引,或者也可以称为反向索引。它主要是将爬取的数据信息存储在数据库中,并且反映每个单词在文档中出现的次数以及位置,是做垂直搜索引擎最常用的数据结构。垂直搜索引擎采用关键字查询,倒排索引就是一个以关键字为重点的索引结构。通常由两个部分组成,分别是:单词词典、倒排文件。2.2.3 检索查询处理搜索引擎是否做成功,它的功能是否实现,就主要体现在检索版块。一个好的搜索引擎,它的检索版块应该从三个地方来判断,分别是:响应速度、搜索结果集,排序。一般检索模型可以分为几种:其一是布尔模型、其二是向量空间模型、第三个是概率模型、第四个是语言模型以及最后还有机器学习排序算法。在接下来的基本技术中我会着重介绍我所使用的向量空间模型。检索是对文档列表进行查询的结果,而查询是真实根据关键词查询出的单个网页。其中查询的数据来源就是通过前面的网络爬虫抓取信息之后,再利用索引的建立将之存储到数据库,通过用户的关键字查询,显示出相关结果。对于用户的查询处理,一般有两种方法,分别是一次一文档方式和一次一单词方式。(1)向量空间模型:向量空间模型是检索的时候需要使用的一个技术。要将从网上爬取的文本数据转换成计算机能够识别的结构化数据,就需要使用向量空间模型。它是一种用来表示文档和计算相似性的工具,将语义的相似度比作成空间的相似度。对于向量空间模型的最简单解释就是:把计算机对文本数据的处理Change为向量的计算。它的主要表示方式如下:表2.2 向量空间模型中的文档表示向量空间模型文档特征1特征2特征3特征j文档1w11w12w13w1j文档2w21w22w23w2j文档3w31w32w33w3j文档4w41w42w43w4jDiwi1wi2wi3wij查询q1q2q3qj图2.4展示的是具体的文档表示实例,对于文档D4和D5及用户查询,通过特征转换,可以将其转换为带有权值的向量表示。图2.4 将文档转换为特征向量(2)相似性计算:在把文档转变成特征向量以后,就能够运算文档之间以及搜索和文档之间的相似性。在进行检索的时候,需要对用户输入的查询条件进行分词处理,再提取关键词,将关键词与索引库中的单词进行相关性计算,从而将匹配成功的单词,以及它的附属信息反馈给用户。相似性的计算公式为下面的公式1。其中t表示的是t维特征,Q表示的是用户查询,Di表示文档: (公式1)图2.5是上述计算的一个形象化示意图,在这个例子中,特征维度为3,从示例中可以看出,查询和文档D4之间的夹角要小于与文档D5之间形成的夹角,这意味着查询和文档D4更相似一些。图2.5 Cosine相似性图示以Cosine计算公式来计算图2.5的相似度,假设特征向量如图2.4所示,那么参照公式,计算如下: 从上述结果可以看出,文档D4余查询cosine相似性要大于文档D5与查询的相似性。在搜索结果排序中,会将D4排在D5前面。(3)关键词权重的量化方法:在一个搜索引擎中,如果一个词越能够反映该篇文章的中心思想,那么它的权重就越高。关于该算法的两个重要的计算因子是:词频Tf、逆文档频率IDF。Tf的意思是表示一个单词在文档中出现了几次,那么Tf就是多少。通常在一个文档中,如果一个单词出现的次数越多,那么它就越能代表本篇文章的意思,因此,一个单词的Tf越大,权值也就越大。Tf的权值计算公式有几种,如下公式2和3表示。其中的a是指调节因子。 (公式2) (公式3)IDF是反映的文档的集合范围,计算公式如下4,其中的N的意思是所有的文档里面一共有多少个文档,的意思是单词k在所有文档中出现在其中几个文档里面。 (公式4)如果将Tf与IDF相结合,那么就是Tf*IDF框架,将这两者的特征权值相乘,如果数值越大,则表明越是一个好的词汇,具体表示公式如下5。 (公式5)3. 需求分析3.1功能需求3.1.1高等教育的垂直搜索引擎需求现如今,除开九年义务教育,高等教育的受众人群越来越多,因此也越来越多的人每天关注与之相关的新闻信息等。但是对于一个通用搜索引擎来说,有关高等教育主题有关的新闻很快就会被覆盖,因此设计一个高等教育的垂直搜索引擎,让人们更快,更准确的查阅势在必行。在这个垂直搜索引擎上面,可以查到更多,更准确的高等教育方面的信息,人们也不用再担心信息覆盖的问题。对于该主题的具体需求分析如下:(1) 需要能够从网上爬取主题相关网页数据信息。(2) 需要能够对下载的信息进行分析。(3) 需要能够对下载的数据进行处理并且存储。(4) 能够支持提供检索服务。3.1.2功能模块需求分析要做一个垂直搜索引擎,就是利用网络蜘蛛技术在网页数据中进行信息采集和信息提取,之后进行分词,建立索引数据库存储数据,之后提供检索服务。用户在客户端对搜索引擎进行搜索,后端就会进行相关性计算,再向用户反馈搜索结果。总体的网络结构如图3.1所示:图3.1 网络结构下面是根据课题需求建立的一个简单的垂直搜索引擎的用例图。角色主要有两个,一个是管理者,也就是系统开发者,另外一个就是用户,也就是系统使用者。对于管理者来说,他的主要功能有:对系统的维护和管理控制,对主题相关资源的发现,进行与主题关键词的相关度判定,然后下载相关主题网页,对下载内容进行分析处理,之后将处理后的信息建立索引存放到数据库,以供检索服务。对于用户这个角色,主要使用的就是可以在Web前端进行搜索:对用户的查询条件进行处理,之后传送到后台,与数据库进行余弦相似度计算,匹配成功的,返回搜索结果。图3.2 垂直搜索引擎用例图本系统的功能需求包括网络爬虫、建立索引库、关键字查询搜索等功能模块。我设计了一个垂直搜索引擎的体系结构如图3.3所示,从中可以看出来,主要就是有以下的四个方面:爬虫软件、索引器、检索器以及用户接口。下面是对垂直搜索引擎的4个功能模块的简介:1. 爬虫软件(spider):定向的自动抓取不同网页上的信息内容,并且将其存入到最初的数据库中。垂直搜索引擎需要的是主题爬虫,也就是在海量的网页数据里面对页面内容进行一个主体相关性的计算,在达到规定值以后就爬取该页面的信息,扔掉和主题不相关的网页信息,然后再通过链接对同一个主题进行信息采集。2. 索引器:建立索引数据库,利用中文分词的方法,将爬取的信息内容转化之后存取到数据库中。对采集的信息进行中分词技术处理,然后再建立正排索引,根据正排索引建立倒排索引,将数据信息存储到索引数据库中。垂直搜索引擎作为一个高效的主题搜索引擎,每天要面临很多的检索请求,因此为了节省在检索时候的时间消耗,为了更迅速的完成检索任务,在建立索引的时候就将那些运算量比较大的工作完成。一般的数据库并不能对这些大幅度的检索请求做出反应,因此需要建立倒排索引。3. 检索器:当用户进行关键字查找的时候,检索器将存储在索引数据库的数据与其匹配,并且挑选出匹配度大的信息,调用出来,反馈给用户。对用户输入的信息进行分词,相关性处理,然后再在索引库里面进行匹配,将匹配度高的内容进行排序,反馈给用户检索结果。4. 用户接口:为用户展现一个前台的Web界面,给用户提供查询的窗口。在本系统中,我采用的是Severlet来进行Web界面和后台的数据匹配。图3.3 垂直搜索引擎体系结构3.2 性能需求高等教育垂直搜索引擎的性能需求主要体现在专业性、准确性、深度性、灵活,时效性好,覆盖率高。1 专业性:垂直搜索引擎的数据信息针对特定领域更加专业、准确。2 垂直搜索引擎的数据内容和传统的一般搜索引擎相比更加有深度,针对专业领域覆盖性更高。3. 时效性:与通用的搜索引擎相比,通用的信息存储期短,经常保存一些无效的链接等,但是垂直搜索引擎的时效性更高。3.3 技术可行性分析运行环境:MyEclipse环境、Mysql数据库 编程语言:Java语言在学校机房有需要的相关软件和编程环境,或者是自己的电脑上安装使用相关软件完成设计编程任务,因此该项目在技术上是可行的。(2)操作可行性:要实现此操作,需要在有网状态下进行,因此,该项目在操作上是可行的。(3)经济可行性:系统的设计与完成并不需要很大的消费花销,因此,该项目在经济上是可行的。4. 系统设计4.1 系统流程图 描述完垂直搜索引擎的基本功能以后,就可以根据系统的功能需求,设计合适的总体架构,采用适合的技术,完成系统的分析设计。作为一个搜索引擎,就是对互联网用户提供一种搜索服务,因此,需要建立一个用户使用的Web界面。用户可以直接在前端通过在浏览器上输入查询条件,搜索高等教育相关内容。对于垂直搜索引擎和一般通用搜索引擎不同的模块,系统在统一的管理控制下完成信息的抓取和采集。网页数据下载、分析、网页索引和网页检索是核心功能模块,检索结果展示属于辅助部分。这些功能模块互相协调工作,一起构成了垂直搜索引擎的总体架构。它的总体功能流程图如图4.1所示:图4.1 垂直搜索引擎流程图4.2软件结构与模块划分将系统分成两大部分,分别是客户端和服务器端,它们根据不同的版块实现不同的功能。客户端:关键字搜索模块:输入关键字,将关键字信息转送到后台,并且接受后台反馈回来的消息。查询结果显示模块:接受到后台的反馈信息之后,根据排序将结果展示给用户看。服务器端:信息采集模块:通过网络爬虫,将指定了的网页爬到本地,也就是将所需要的信息,从网上爬取回来。对于垂直搜索引擎来说,核心是主题信息的下载。对此,有几种解决方法,其一是:先收集主题相关的权威网站,然后直接从该网站爬取内容。其二是采用算法技术,对互联网信息采取有选择的抓取。像我的课题,就可以做一个高等教育的相关词权值列表。信息处理模块:建立索引库,将爬取回来的信息进行中文分词,存储在索引数据库里面。在该模块中,主要使用的技术有中文分词、建立正向索引,根据正向索引建立倒排索引,以提供检索。用户接口模块:通过用户接口,接受到用户的关键字查询,开始检索。信息查询模块:根据接受到的关键字,将它进行分词处理,之后再在索引库中查询,排序结果。结果反馈模块:经过后台检索之后,将检索的结果传送到前台再反馈给给用户。图4.2 软件总体结构4.3 程序流程设计 4.3.1客户端程序流程设计客户端包括有:输入关键字查询,接受服务器端检索结果、向用户反馈搜索结果内容子程序。其总体结构流程图为图4.3。在客户端,主要通过JSP和Servlet来实现,利用JSP的query()响应函数得到查询语句的值,通过配置文件,传送到MyServlst,之后通过MyServlst到服务器端的vsmforservlst,进行处理,然后再返回结果。当用户输入相关查询内容以后,传送到后台,对输入信息进行分词,然后关键词提取,与索引数据库的倒排列表里面的单词进行相似度计算和匹配,将匹配度高的单词根据属性查询到其在文档的位置,最后对检索内容进行排序,将查询结果反馈到前端,显示出查询结果。子程序的程序流程为图4.4所示: 图4.3 客户端总体流程图 图4.4 客户端检索关键字程序流程图 4.3.2 服务器端程序流程设计服务器端主要流程就是信息采集(网络爬虫)、信息处理(中文分词、建立索引库)以及信息检索三个模块的程序设计。服务器端详细设计如下:1.信息采集在网上抓取页面信息,然后进行主题相关采集,爬取与高等教育方面相关的数据内容。垂直搜索引擎的策略流程图如下图4.5,主要是先对主题关键词如高等教育在通用搜索引擎上面进行搜索,点击相关搜索结果,进入该网页,把这个网页作为网络爬虫的起始网址,进行深度爬取,存储网页内容在./topic里面,对网页内容进行分词索引处理,存储在数据库topic index里面,形成关键词训练集,把它作为一个网页爬取的索引项,当在网上爬取内容之后,与topic index进行相似度计算,达到一个定值,就存储该内容,反之则丢弃。利用关键词训练集可以对搜索引擎的抓取模块和网页预处理内容分析模块提供帮助。图4.5 垂直搜索引擎策略流程图搜索引擎的爬虫模块具体实现流程是:首先要明确入口网址的URL队列,在入口队列里面去下载地址,然后打开网络连接,通过发送网络下载请求,下载网页内容。如果成功下载网页,那么就继续下个任务,再下载。整个抓取流程就是这样的。对于搜索引擎的爬虫流程如下图4.6所示。图4.6 网络抓取程序流程图2.信息处理抓取的信息包括网页内容,网页URL分别存储在./content文件夹和./urls文件夹里面,对网页内容进行网页分析也就是中文分词处理,然后建立正向索引,再根据正向索引建立倒排列表存储在索引数据库。信息处理的主要核心步骤是索引,索引是利用关键字建立链表存储在数据库,为之后的检索提供服务。在进行检索的时候,根据关键字迅速的找到其所在的链表,再根据倒排索引列表迅速定位器所在的文档。在索引的整个流程中,主要是使用两个循环,针对文档进行遍历分词,将其中的每个单词变成一个Hash值,再将文档ID、词频等附属信息作为索引项保存在数据库。具体流程信息如图4.7所示。 图4.7 索引的程序流程图 图4.8 检索程序流程图在进行信息采集和信息提取之后,建立索引网页库,之后分析网页信息,对它们进行了中文分词,然后对每一个单词建立正向索引。根据正向索引,再建立倒排索引,如图4.9所示。每个单词有自己的属性,也就是它们的出现次数和出现位置,将单词及其属性存储在数据库中,这就是倒排列表。倒排索引是已知单词的属性,再到文档中去寻找关键字出现的位置。图4.9 由正向索引建立反向索引3.信息检索输入关键字能查询到相关信息,检索结构如图4.10所示。图4.10 检索结构图当用户输入需要需要查询的内容之后,将之进行分词和关键词提取,判断关键词是否有效,然后根据关键词提取数据库中的倒排索引项,如果索引项为空,则证明没有该方面的网页信息,反之通过倒排列表的单词属性查询到关键词分别在哪些文档中出现过,对其进行排序,反馈出查询结果。具体检索流程图如下4.8所示:4.4 数据结构设计4.4.1数据库端建立索引:将要添加的单词和在相应文档中的词频加入数据库:声明两个数据库表的列名分别为set1和set2,并且在数据库中新增三个栏位,分别是:id、wordname、wordtf,其中id是作为数据库的主键,wordname是用来存储单词,wordtf用来存储文档ID和词频信息。其中可以采用InsertDateSql和UpdateDataSql来对数据库进行添加数据和更新数据信息。具体数据库端展示方式如下表4.1所示:表4.1 数据库myindex表列名数据类型长度描述idint 11主键设置wordnamevarchar255倒排索引项存储分词wordtfvarchar255存储文档编号ID存储词频信息tf4.4.2 服务器端算法分析:关于倒排索引里面的几个数值的计算方式和公式应用:tf表示的是关键词的词频信息,也就是在一个文档中该单词一共出现了多少次。idf表示的是关键词的逆文档频率,顾名思义,就是文档频率的倒数的意思,主要应用于计算权重tf*idf中。统计每个词在文档中出现的次数(词频tf值):String frequency = rs.getString(wordtf);计算每个词的逆文档频率idf:float nn = n;int s = ss.length;float f = (float) Math.log10(nn / s);声明一个Hash表,用来存储每个文档中包含查询词的tf值:HashMap tf = new HashMap(); 声明一个Hash表,存储每个文档中包含查询词的权重值: HashMap weight = new HashMap(); Idf为文档数:float f = hashidf.get(s); Tf为关键词的词频数:float ff = tf.get(s);关键词的权重计算方式为idf*tf:float weig = f * ff;存储每个文档所有词的权重平方和:allweight = allweight + weig * weig;5.2.3文件夹端创建三个文件夹在工程根目录./WebSearch下,分别是./content,用来存放爬取的网页内容,./urls用来存放爬取的网页的网址,./index用来存放分词信息。声明变量filepath,当对网页内容进行处理分析之后,创建正向索引,然后将数据存储在./content文件夹里,之后再创建倒排索引,将数据存储在./indexs文件夹里面。4.5 界面实现4.5.1客户端界面: 客户端的界面就是在Web浏览器上的一个搜索引擎,用户在输入框里面输入相关的查询条件,在输入框下面就会相应显示出搜索结果,点击任意一条搜索结果,就会自动跳转到该页面,如图4.11所示。图4.11 搜索界面4.5.2服务器端维护界面服务器最初的服务界面,有“网络爬取”,“建立索引”和“客户操作”三个选项,如图5.9所示:图4.12 维护初始界面首先点击“网络爬取”,会跳出输入框,让输入初始爬取网址,也就是种子URL,同时要填写爬取深度和线程个数,然后点击“开始爬取网页信息”,就会自动开始抓取网络数据,同时将抓取的数据传送到后台,如图5.10所示:图4.13 网络爬虫界面网页抓取完成之后,点击“建立索引”,之后可以输入索引文件的存储位置,同时也可以点击“确定”,使用默认的路径,之后点击“创建正向索引”,系统开始建立正向索引,当显示创建完成,再点击“创建倒排索引”,待显示创建完成之后,整个索引数据库就创建完成,我们就可以进行检索了,如图4.14所示:图4.14 信息处理界面最后可以点击“用户操作”,可以在输入框中输入想要查询的输入条件,点击“开始搜索”,显示框就会在后台进行数据匹配之后,反馈显示结果,这是一个后台的测试操作,如图4.15所示:图4.15 后台搜索界面5. 系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论