详细设计说明书.docx

上传人:b****8 文档编号:9654813 上传时间:2023-02-05 格式:DOCX 页数:17 大小:328.70KB
下载 相关 举报
详细设计说明书.docx_第1页
第1页 / 共17页
详细设计说明书.docx_第2页
第2页 / 共17页
详细设计说明书.docx_第3页
第3页 / 共17页
详细设计说明书.docx_第4页
第4页 / 共17页
详细设计说明书.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

详细设计说明书.docx

《详细设计说明书.docx》由会员分享,可在线阅读,更多相关《详细设计说明书.docx(17页珍藏版)》请在冰豆网上搜索。

详细设计说明书.docx

详细设计说明书

桂林理工大学

 

毕业生就业信息检索服务系统

详细设计说明书

 

项目团队:

何超(3110717224)、曾驿钦(3110717225)

班级:

计算机科学与技术2011-2班

编写日期:

2014年12月22日

 

桂林理工大学云项目组

1引言

“就业是民生之本”大学生就业是我国就业问题中带有战略性的核心问题。

用多维视角和发展观的思维审视目前大学生就业难的现象,不难看出现象的背后有很多令人深思的问题,而这些问题多是发展中、前进中出现的。

清醒地分析、科学地把握会找到多渠道解决的方案。

因此,为现代大学毕业生建立就业信息检索服务系统非常必要,系统数据来源于全国各大高校毕业生就业网,并通过数据审核员进行审批操作后发布,具有可靠的来源和安全的服务;以高度的实时周期及精准的检索方式,为大学毕业生提供快捷的就业岗位数据服务和官方就业指导服务。

所有的应届毕业生获得共同的就业相关信息,使得毕业生站在同一平台,以能力见高低,平等竞争,找到适合自身的职业岗位。

1.1编写目的

详细设计阶段的根本目标确定应该怎样具体地实现所要求的系统,也就是通过本文可以得出对目标系统的精准描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言写的程序。

详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”以后程序员将根据这个“蓝图”写出实际的程序代码。

因此,本文决定了最终的程序代码质量。

本文不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出处理过程应该尽可能简明易懂。

1.2背景

本项目将开发毕业生就业信息检索服务系统,基于互联网的共享性特征,采集全国各大高校的毕业生就业网信息,并对信息进行解析、分类、去重等操作后,存储在数据库系统中,然后利用全文检索工具进行数据分词、语义识别处理,建立索引。

毕业生可以通过系统平台进行模糊查询和精确查询,获得最新的就业岗位信息或指导信息。

系统将以传统软件工程的喷泉模式和迭代模式进行开发。

本系统是基于操作系统之上的应用程序,系统划分为两大子系统,数据采集子系统为数据处理子系统提供原始数据支持,并决定了整个系统的更新周期,以及服务用户的范围;而数据处理子系统决定了用户查询的效率。

本项目任务提出者:

广西教育部就业发展计划中心;

项目开发者:

桂林理工大学云项目组进行研究和开发;

最终用户:

数据审核人员、广大应届毕业生。

1.3定义

B/S(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。

这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。

客户机上只要安装一个浏览器,服务器安装数据库。

浏览器通过WebServer同数据库进行数据交互。

JSP(JavaServerPages),中文名叫java服务器页面,其根本是一个简化的Servlet设计。

JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

SSH(StrutsSpringHibernate),集成SSH框架的系统从职责上分为四层:

表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。

MVC(ModelViewController),是模型(model)-视图(view)-控制器(controler)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

1.4参考资料

1)《软件工程导论》清华大学出版社;

2)《软件设计模式概述》国防科技大学出版社;

3)《搜索引擎概述》清华大学出版社;

4)《Lucene全文检索工具》电子工程出版社;

5)《软件测试导论》机械工程出版社。

2程序系统的结构

3数据采集子系统设计说明

DCS数据采集子系统

1)高校就业网链接数据管理,对应数据库中链接数据表,为网络爬虫程序提供资源链接,并提供对链接数据增加、删除、修改操作;

2)登陆账户数据管理,对应数据库中登陆账户表,为模拟登陆模块提供账户数据支持,并提供对登陆账户数据增加、删除、修改操作;

3)图片识别模块,对于一些就业网登陆时需要输入验证码,为了提高系统的自动化能力,系统将采用OCR光学图片识别技术,为模拟登陆模块提高验证码支持。

4)模拟登陆模块,利用HTTP协议编写报文,并附加用户名和密码参数,待服务器成功响应后,保存服务器提供标识符以便进行二次访问。

5)网络爬虫模块,是数据采集子系统的核心模块,采用Java程序进行编写,考虑到网站的前驱后继特性,我们将采用递归算法进行深层爬取数据,保证数据完整性。

采集到得网页原始数据有可能存在重复记录,系统会进行去重操作。

3.1程序描述

DCS数据采集子系统,解决整个系统的数据来源问题;基于各大高校的就业网基础信息,通过URL访问,经过一系列的处理得到网页的原始数据。

数据采集子系统是一个以网络爬虫为核心的,基于智能框架的软件系统,可以周期性对固定的网段IP进行数据抓取,并自动完成一些基本操作,项目组为其开发一套管理界面窗口,可对一些固有资源进行管理控制。

我们将数据采集子系统分解为五个子模块:

1)高校就业网链接数据管理

2)登陆账户数据管理

3)图片识别模块

4)模拟登陆模块

5)网络爬虫模块

数据采集子系统,采集子系统是基于多线程的,同一时间可以进行多个网站链接的数据抓取,并且并发数量是可以控制的,取决于服务器资源的可用性。

3.2功能

3.3性能

本系统采集数据范围上千所高校数据,并可限定采集周期性能为分钟级。

3.4网页关系模型

学过数据结构的读者都知道有向图这种数据结构。

如下图所示,如果将网页看成是图中的某一个节点,而将网页中指向其他网页的链接看成是这个节点指向其他节点的边,那么我们很容易将整个Internet上的网页建模成一个有向图。

理论上,通过遍历算法遍历该图,可以访问到Internet上的几乎所有的网页。

最简单的遍历就是宽度优先以及深度优先。

以下笔者实现的简易爬虫就是使用了宽度优先的爬行策略。

椭圆:

网页元素;

箭头:

超链接。

宽度优先访问:

1,2,3,4,5,6,7,8;

深度优先访问:

1,2,5,6,3,7,4,8。

3.5支持项目说明

HTTPClient项目:

HTTP协议是现在的因特网最重要的协议之一。

除了WEB浏览器之外,WEB服务,基于网络的应用程序以及日益增长的网络计算不断扩展着HTTP协议的角色,使得越来越多的应用程序需要HTTP协议的支持。

虽然JAVA类库.net包提供了基本功能,来使用HTTP协议访问网络资源,但是其灵活性和功能远不能满足很多应用程序的需要。

而JakartaCommonsHttpClient组件寻求提供更为灵活,更加高效的HTTP协议支持,简化基于HTTP协议的应用程序的创建。

HttpClient提供了很多的特性,支持最新的HTTP标准,目前有很多的开源项目都用到了HttpClient提供的HTTP功能。

HtmlParser项目:

当今的Internet上面有数亿记的网页,越来越多应用程序将这些网页作为分析和处理的数据对象。

这些网页多为半结构化的文本,有着大量的标签和嵌套的结构。

当我们自己开发一些处理网页的应用程序时,会想到要开发一个单独的网页解析器,这一部分的工作必定需要付出相当的精力和时间。

事实上,做为JAVA应用程序开发者,HtmlParser为其提供了强大而灵活易用的开源类库,大大节省了写一个网页解析器的开销,它提供了线性和嵌套两种方式来解析网页,主要用于html网页的转换以及网页内容的抽取。

HtmlParser有如下一些易于使用的特性:

过滤器,访问者模式,处理自定义标签以及易于使用的JavaBeans。

正如HtmlParser首页所说:

它是一个快速,健壮以及严格测试过的组件;以它设计的简洁,程序运行的速度以及处理Internet上真实网页的能力吸引着越来越多的开发者。

 

3.6算法

递归算法可以为网络爬虫提供数据采集方向,设定更大的递归深度可以获得更完整的网络数据,但是系统的效率会随之降低,所有通过实验进行测试出最合适的递归深度非常重要。

去重算法,对应机器来说,无法像人一样识别两件物体是相同的,所以在抓取的大量网页数据中,定会存在许多重复的数据,去重操作极其重要,不仅保证数据的唯一性,还会影响计算机处理的效率。

(1)递归算法是一种直接或者间接地调用自身算法的过程。

在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。

递归算法解决问题的特点:

1)递归就是在过程或函数里调用自身;

2)在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口;

3)递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。

所以一般不提倡用递归算法设计程序;

4)在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。

递归次数过多容易造成栈溢出等。

所以一般不提倡用递归算法设计程序。

(2)去重算法,对一个新的网页,爬虫程序通过网页去重算法,最终决定是否对其索引。

近似重复网页类型,根据文章内容和网页布局格式的组合分为4种形式:

1)两篇文档在内容和布局格式上毫无区别,则这种重复称为完全重复页面;

2)两篇文档内容相同,但布局格式不同,则这种重复称为内容重复页面;

3)两篇文档有部分重要的内容相同,并且布局格式相同,则这种重复称为布局重复页面;

4)两篇文档有部分重要内容相同,但布局格式不同,则这种重复称为部分重复页面。

如果某个网页重复性很高,往往是其内容比较比较受欢迎的一种体现,也预示着该网页相对比较重要。

应予以优先收录。

当用户搜索时,在输出结果排序时,也应给与较高的权重。

3.7流程逻辑

简易爬虫爬取网页的流程如下图所示。

3.8存储分配

本程序在数据库中建立了三张表,分别对应链接数据库、登录账户数据库、原始数据数据库。

具体表字段请查阅数据库设计文档。

程序还建立了本地存储空间,利用序列化和反序列化完成程序的持久配置。

3.9注释设计

本程序采用规范编程方式,在程序中出现有DCS字段样式代表本程序代码;每个模块采用start与end划分边界。

如,//DCSUser_Managerstart与//DCSUser_Managerend;每个源文件的开头必须包含下列信息:

内容作用、编写者、编写时间、云项目组标注。

3.10限制条件

(1)本程序网络爬虫,受限于网络访问环境,带宽、路径、延迟;

(2)爬虫软件对网站规范有特殊的要求,所以流行规范编程,规范设计;

(3)爬虫的递归深度必须设定适合值,否则会导致时间复杂性剧增,程序不能在指定时间进行响应;

(4)网络爬虫难点在于受限访问条件,如今,大部分互联网社交网站都需要登录后实现访问交互,所以模拟登录的成败决定爬虫软件的前进性。

3.11测试计划

本程序有项目组成员曾驿钦进行测试调试,在代码编写过程中使用JUnit进行单元测试,并提前编写好测试用例;对于本子系统来说,我们会编写指定网段的IP进行资源采集,并对资源进行格式检查,保存测试。

3.12尚未解决的问题

图片识别模块中的图片识别算法还未实现。

4数据处理子系统设计说明

DPS数据处理子系统

1)高校信息管理,数据来源于网络爬虫,对应数据库中的高校信息表,为用户提供高校详情信息服务,并提供对高校信息的增加、修改、删除操作;

2)用人单位信息管理,数据来源于网络爬虫,对应数据库中的用人单位信息表,为用户提供用人单位的详情信息,并提供对用人单位信息的增加、修改、删除操作;

3)毕业生信息管理,数据来源于大学毕业生注册,对应数据库中的毕业生信息表,为毕业生提供个人信息记录,系统可以进行自动生成个人简历模板,并提供对个人信息的修改操作;

4)收藏夹管理,收藏夹模块类似于电子商务网站的购物车,用户可以自行收藏自己感兴趣的信息,为下次查询提供快速定位支持;系统还根据用户的收藏进行聚类,推算出用户喜欢类型,并为用户自动推送信息;

5)职位信息管理,数据来源于基础数据服务数据库,并对应数据库中的职位信息表,为用户提供就业岗位信息,有多种查询职位方式,如,按时间、岗位、薪资、工作地点、招聘条件。

并提供对职位信息的增加、修改、删除操作;

6)就业指导信息管理,数据来源于网络爬虫,并对应数据库中的就业指导信息表,为用户提供多类的指导信息,包括法律知识、心理培训、笔试技巧、面试技巧等。

并提供对就业信息的增加、删除、修改操作;

7)分类聚类模块,采用数据挖掘算法实现的子程序。

为原始数据的处理提供分类支持,并为用户推送信息提供筛选服务;

8)语义分析模块,是子系统的核心模块,对原始数据处理过程中提取职位信息提供支持,模块的精准性影响着系统的可用性;

9)审核数据管理,对基础服务数据的发布提供检测与验证机制,保证数据安全性和有效性,并对数据做出三种判定:

通过、不通过、非法数据。

4.1程序描述

DPS数处处理子系统,完成对原始数据的解析处理;数据处理子系统又称数据处理中心,是整个软件的核心部分,涉及多种先进技术,使用智能框架,实现自动化识别、分类、封装。

并开发一套服务管理界面接口,为毕业生、数据审核员提供良好地交互环境。

我们将数据处理子系统分解为下面九个模块:

1)语义分析

2)数据分类

3)高校信息管理

4)用人单位信息管理

5)毕业生信息管理

6)就业指导信息管理

7)职位信息管理

8)收藏夹管理

9)审核管理

数据处理子系统,数据处理基于分布式的运算系统,可以同时接收多个用户的检索事务,为其完成并发服务,在数据处理过程中,通过拦截器进行对数据的校验与检测。

4.2功能

4.3分词

基于字符串匹配的方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。

按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配。

常用的几种机械分词方法如下:

1.正向减字最大匹配法(由左到右的方向);

2.逆向减字最大匹配法(由右到左的方向);

3.最少切分(使每一句中切出的词数最小);

4.双向最大减字匹配法(进行由左到右、由右到左两次扫描);

我们采用其中的正向最大匹配法。

算法描述如下:

输入值为一个中文语句S,以及最大匹配词n;

取S中前n个字,根据词典对其进行匹配,若匹配成功,转3,否则转2;

n=n–1:

如果n为1,转3;否则转1;

将S中的前n个字作为分词结果的一部分,S除去前n个字,若S为空,转4;否则,转1;算法结束。

需要说明的是,在第三步的起始,n如果不为1,则意味着有匹配到的词;而如果n为1,我们默认1个字是应该进入分词结果的,所以第三步可以将前n个字作为一个词而分割开来。

还有需要注意的是对于停用词的过滤,停用词即汉语中“的,了,和,么”等字词,在搜索引擎中是忽略的,所以对于分词后的结果,我们需要在用停用词列表进行一下停用词过滤。

4.4正向索引

4.5倒排索引

4.6算法

(1)归并排序算法

归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。

将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。

若将两个有序表合并成一个有序表,称为二路归并。

(2)神经网络算法

在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能、构作专家系统、制成机器人、复杂系统控制等等。

纵观当代新兴科学技术的发展历史,人类在征服宇宙空间、基本粒子,生命起源等科学技术领域的进程中历经了崎岖不平的道路。

我们也会看到,探索人脑功能和神经网络的研究将伴随着重重困难的克服而日新月异。

它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。

这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

(3)聚类算法

在商业上,聚类可以帮助市场分析人员从消费者数据库中区分出不同的消费群体来,并且概括出每一类消费者的消费模式或者说习惯。

它作为数据挖掘中的一个模块,可以作为一个单独的工具以发现数据库中分布的一些深层的信息,并且概括出每一类的特点,或者把注意力放在某一个特定的类上以作进一步的分析;并且,聚类分析也可以作为数据挖掘算法中其他分析算法的一个预处理步骤。

1)划分法

划分法(partitioningmethods),给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K

而且这K个分组满足下列条件:

1.每一个分组至少包含一个数据纪录;

2.每一个数据纪录属于且仅属于一个分组(注意:

这个要求在某些模糊聚类算法中可以放宽);

对于给定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:

同一分组中的记录越近越好,而不同分组中的纪录越远越好。

使用这个基本思想的算法有:

K-MEANS算法、K-MEDOIDS算法、CLARANS算法;

2)层次法

层次法(,这种方法对给定的数据集进行层次似的分解,直到某种条件满足为止。

具体又可分为“自底向上”和“自顶向下”两种方案。

例如,在“自底向上”方案中,初始时每一个数据纪录都组成一个单独的组,在接下来的迭代中,它把那些相互邻近的组合并成一个组,直到所有的记录组成一个分组或者某个条件满足为止。

代表算法有:

BIRCH算法、CURE算法、CHAMELEON算法等;

3)密度算法

基于密度的方法(density-basedmethods),基于密度的方法与其它方法的一个根本区别是:

它不是基于各种各样的距离的,而是基于密度的。

这样就能克服基于距离的算法只能发现“类圆形”的聚类的缺点。

这个方法的指导思想就是,只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。

代表算法有:

DBSCAN算法、OPTICS算法、DENCLUE算法等;

(3)分词算法

中文分词是指将一个汉字序列切分成一个一个单独的词,从而达到计算机可以自动识别的效果。

中文分词主要有三种方法:

第一种基于字符串匹配,第二种基于语义理解,第三种基于统计。

由于第二和第三种的实现需要大量的数据来支持,所以我们采用的是基于字符串匹配的方法。

分词的结果对于搜索的精准性有着至关重要的影响,好的分词策略经常是由若干个简单算法拼接而成的,所以您也可以试着实现双向最大减字匹配法来提高分词的准确率。

而如果遇到歧义词组,可以通过字典中附带的词频来决定哪种分词的结果更好。

4.7流程逻辑

检索事务流程图如下所示:

4.8存储分配

本程序分六表存储,分别对于数据库中:

基础服务数据、高校信息、用人单位信息、职位信息、毕业生信息、就业指导信息;并建立索引倒排文件,加快程序的查询效率。

4.9注释设计

本程序采用规范编程方式,在程序中出现有DPS字段样式代表本程序代码;每个模块采用start与end划分边界。

如,//DPSUser_Managerstart与//DPSUser_Managerend;每个源文件的开头必须包含下列信息:

内容作用、编写者、编写时间、云项目组标注。

4.10限制条件

(1)语义分析的实现难度;

(2)分词词库字典非常有限,所以对于大互联网网络环境还有待升级;

(3)整个项目资金问题决定着项目进展。

4.11测试计划

本子系统,将由项目组组长何超进行编写和测试,对神经网络进行大量训练后,进行语义识别正确性测试,利用不同类型的文章,让机器自动进行分类。

为满足测试,我们将提前准备大量的各类型文章对系统进行训练。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1