信息检索与搜索引擎课程报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息检索与搜索引擎课程报告
《信息检索搜索引擎技术》期末考试报告
学期: 2016-2017学年第一学期
任课教师:毛存礼
专业年级:计科133
学号: 201310405339、 201310405326、
201310405330、 201310405325 学生姓名:李然、毛子铭、张倩、黄枫
目录
一、系统概述
随着互联网的迅猛发展、WEB信息的增加,用户要在信息海洋里查找自己所需的信息,就像大海捞针一样,搜索引擎技术恰好解决了这一
难题。搜索引擎是指互联网上专门提供检索服务的一类网站,这些站点
的服务器通过网络搜索软件或网络登录等方式,将Intenet上大量网站
的页面信息收集到本地,经过加工处理建立信息数据库和索引数据库,
从而对用户提出的各种检索做出响应,提供用户所需的信息或相关指针。
用户的检索途径主要包括自由词全文检索、关键词检索、分类检索及其他特殊信息的检索。本系统基于HTMLUNIT框架,构建爬虫,基于
LUCENE框架,构建索引,利用向量空间模型向量化表示文档间的相关性,利用LUCENE给相关文档打分。
二、系统需求分析
2.1功能需求分析
该系统分为四个功能模块:
(1)爬虫模块
(2)索引模块
(3)向量化表示模块
(4)打分模块
具体实现分工如下:
①爬虫模块:该模块采用Htmlunit框架,主要负责爬取网页内容,
在本地建立文档库,以便于索引功能模块,将文档库里的文档内容建立
成索引。(毛子铭所做)
②索引模块:该模块采用Lucene框架,功能分为两块:一是建立索
引,将爬取的内容建立成索引。二是检索索引,即提供给用户检索索引。
(张倩所做)
③向量化表示模块:该模块采用向量空间模型,其功能是将查询文
本和文档向量化表示,以一种直观的表示方法,展示出文档间的相似度。
(李然、黄枫合做)
④打分模块:该模块采用Lucene打分系统,计算查询文本和文档的
相似度,并对其文档打分。(李然、黄枫合做)
三、程序实现
3.1 爬虫的实现
3.1.1 对网页进行分析
(1)我们首先,对网页进行分析,昆工新闻上每一则新闻,都有相应的链接,通过点击链接查看相应的新闻。
<1> 昆工新闻网页截图
<2> 新闻内容截图
(2)在浏览器中,查看新闻网的代码,确定我们所需要的内容并用XPATH表达式定位其内容。
<3> 新闻代码截图
3.1.2编写爬虫
(1)在这里,我们使用了HtmlUnit作为我们爬虫的框架,并指定内容,对昆工新闻网进行爬取。
<4> 部分代码展示
(2)编写XPATH表达式,定位所抓取的内容,在爬取过程中,首先要找到新闻的标题,然后,再模拟点击标题的动作,进入新闻页面。
(3)爬取内容,并将其写入文本文档中。
<5> 写入文档
<6>爬取内容
3.2索引的实现
3.2.1分词的实现
(1)在建立索引之前,分词是必不可少的步骤,我们所采用的是基于Lucene 框架的IK分词技术分词。
<7> 部分代码展示
(2)对爬取的内容,进行分词测试。
<9>测试
3.2.2索引的建立
(1)索引的建立,我们也是基于Lucene框架建立的倒排索引,分词技术的不同索引的差别也是很大,因此,分词技术的选取一定要合理。
<10> 部分代码展示
3.2.3检索索引
(1)在这里,我们对爬取好的内容,已经建立好了索引,我们分别测试了“宇宙”、“人民”这两关键词进行检索。可以看见,符合“人民”这个关键词的文档有2个,符合“宇宙”这个关键词的文档不存在。
<12> 索引
<13> 索引结果3.3向量空间模型的实现
3.3.1向量空间模型概述
向量空间模型将文档映射为一个特征向量V(d)=(t
1,ω
1
(d);…;t
n
, ω
n
(d)),
其中t
i (i=1,2, …,n)为一列互不雷同的词条项,ω
i
(d)为t
i
在d中的权值, 一
般被定义为t
i 在d中出现频率tf
i
(d)的函数,即。
在信息检索中常用的词条权值计算方法为 TF-IDF 函数,其中N为所有文档的数目,ni为含有词条ti的文档数目。TF-IDF公式有很多变种,下面是一个常用的TF-IDF公式:
根据TF-IDF公式,文档集中包含某一词条的文档越多,说明它区分文档类别属性的能力越低,其权值越小;另一方面,某一文档中某一词条出现的频率
越高,说明它区分文档内容属性的能力越强,其权值越大。两文档之间的相似度可以用其对应的向量之间的夹角余弦来表示,即文档di,dj的相似度可以表示为:
进行查询的过程中,先将查询条件Q进行向量化,主要依据布尔模型:当ti 在查询条件Q中时,将对应的第i坐标置为1,否则置为0,即:
从而文档d与查询Q的相似度为:
根据文档之间的相似度,结合机器学习的一些算法如神经网络算法,K-近邻算法和贝叶斯分类算法等,可以将文档集分类划分为一些小的文档子集。
在查询过程中,可以计算出每个文档与查询的相似度,进而可以根据相似度的大小,将查询的结果进行排序。
向量空间模型可以实现文档的自动分类和对查询结果的相似度排序,能够有效提高检索效率;它的缺点是相似度的计算量大,当有新文档加入时,则必须重新计算词的权值。
3.3.2建立向量空间模型
(1)将文档的前十五个关键字作为key并将文件的内容作为value存Treemap 中