新闻信息检索系统设计

来源 :科技资讯 | 被引量 : 0次 | 上传用户:shizhijian
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘  要:模拟百度、谷歌等搜索工具,利用爬虫和大数据来实现一个简单的新闻信息检索系统。此系统大致分为5个模块:先是利用爬虫来爬取网页的信息;利用2-gram分词来将获取到的网页建立索引;将索引排序;利用hadoop分布式存取索引;最后搭建前后端实现界面交互。五个环节关系紧密,核心环节就是索引的建立,利用2-gram分词提取关键字,再利用TF-IDF矩阵对关键字打分,得到矩阵之后,就可以利用K-means来讲关键字分类了。然后再按照评分将索引排序就可以得到用户所需要的信息。
  关键词:爬虫  Hadoop  2-gram  分词  K-means
  中图分类号:G64                                    文献标识码:A                          文章编号:1672-3791(2019)03(c)-0006-02
  1  系统内容
  1.1 Web网页信息抽取
  以山东大学新闻网为起点进行网页信息的循环爬取,保持蜘蛛在view.sdu.edu.cn之内。
  1.2 索引构建
  对上一步爬取到的网页进行结构化预处理,包括分字段解析、分词、构建索引等。
  1.3 索引排序
  对上一步构建的索引库进行查询,对于给定的查询,给出检索结果,明白排序的原理及方法。
  1.4 数据库构建
  利用爬取的新闻内容以及构建的索引建立数据库
  1.5 前后端实现
  基于数据库利用Java及HTML语言实现前后端交互,提供用户使用页面。
  2  系统设计
  2.1 爬虫部分
  通过观察分析新闻主页可以发现我们需要的最终URL是:
  http://www.view.sdu.edu.cn/info/1207/104940.htm
  在信息爬取的过程中,所使用的工具为:
  Python3+requests+bs4+collections。
  实现过程如下:
  (1)以http://www.view.sdu.edu.cn为种子URL,获取此网页中所有的以“.html”结尾的URL,并且把它加入到列表中避免重复访问。
  (2)通过分析网页的源码可以发现有些URL省略了前缀,因此我们在处理这样的URL之前要先将其补全。
  (3)找到每一个满足条件的URL(保持蜘蛛在view.sdu.edu.cn之内),并将其加入到队列中(这里采取BFS爬取策略)。
  (4)之后依次从队列中取出队首的URL,如果是目标URL,则获取标题及正文信息,并存到文件中。如果不是目标URL,则依次进行(2)、(3)、(4)步骤。
  (5)在爬虫的过程中维护一个目录文件,记录下每篇新闻的索引、URL、标题。
  2.2 词项词典构建
  词典构建时分词系统采用叠词方式,也就是将语句ABCDE分割成AB,BC,CD,DE四个单词。
  这里使用了一个假设,即“与文档内容有关的词语不会只出现一次”,通过这个假设,我们可以排除绝大多数噪音词项。
  比如“今天去济南”,“今天”“济南”这两个词项如果在文档中占据重要地位,那么会出现不止一次,而“天去”“去济”这两个干扰词项在绝大多数情况下只会出现一次,可以轻松除去。
  基于以上假设,将所有文档遍历一遍之后就可以得到一个去除了大多数干扰项和部分有效实词的有损词典。但是考虑到最后的目的是制作一个有序搜索引擎,被损耗掉的部分实词往往在排序中所占据的得分份额也非常小,因此这个词典就可以被认为是有效的词典。
  2.3 倒排索引构建、TF-IDF矩阵和特征矩阵构建
  有了词典之后,就可以进行倒排索引操作了。
  倒排索引操作时仍然使用叠加分词方式,但是只有存在于上一步产生的词典中的词语才会进入下一步操作。倒排索引的结果会生成一个类似二维链表的结构,每个链表头保存了词项名称,链表中间项保存了文档ID和词频,链表尾保存了文档频率和词语总频率。
  利用链表尾保存的信息和文档长度信息,遍历一遍倒排索引即可直接生成TF-IDF矩阵。
  考虑到最高频的词语在绝大多数文档中都出现,对特征影响小的原因,选取其中词频第100~400共300个词语进行SVD分解,这样就得到了特征矩阵。
  2.4 文档聚类
  在有了特征矩阵之后,直接使用UT矩阵,直接生成对参与到分类的文档的特征向量。
  由于特征矩阵的计算和K-means迭代在大量数据的情况下单机运行十分缓慢,因此聚类被分成两步,第一步随机选择了一部分向量进行完整的K-means算法,这样就可以得√N个聚类中心;第二步对剩余的信息直接寻找和它们最近的聚类中心,直接视为这一聚类的追随者。
  因为单机环境下推荐系统使用较少数据的效果更明显,第一步使用的部分向量在后面将用来实现推荐系统。
  同时,根据聚类结果,将原始的TF-IDF矩阵分割成了数个较小的矩阵。每个聚类中最接近聚类中心的一个作为矩阵第一列的数据。
  3  前后端实现
  3.1 前端实现
  使用JSP、JS、Java语言实现界面。
  (1)大致划分:title检索栏、content内容新闻块。
  (2)基本功能:输入检索自然语言,查询相关新闻,获取相关新闻标题URL信息,进一步跳转详细信息。
  3.2 后端實现
  自然语言处理,实现2-gram分词。
  (1)单关键词查询:检索该关键词相关文档,利用tf值取其中前十位的文档ID,构建NEWS数据结构,生成结果。
  (2)多关键字查询:将关键词拆分,利用tf*idf乘积作为每篇文档得分,最后将所有文档排序,取出TOP10。
  4  结语
  此系统不同于简单的前端调取数据库内容,这次数据库更多的只作为系统实现中的一小部分,清晰地了解了一个完整的信息检索系统的构成,从信息采集、信息处理、信息入库到信息利用和展示,一步又一步,让这个过程复杂又清晰。也通过对于信息检索的学习,逐步了解了真正的搜索引擎背后实现原理以及强大的技术支持。尽管在我们的系统中仅仅使用了python爬虫爬取、基于2-gram的分词以及索引构建、数据库的简单应用、TF-IDF得分计算、前后端实现这些技术,但已经得到了良好的效果。
  此系统还有很大的完善空间,但是通过自己的努力基本实现了搜索引擎系统的基本要求,完成了包括关键词和复杂语言的查询操作,并且实现了良好的效果。
  参考文献
  [1] 李俊华.基于Python的数据分析[J].电子技术与软件工程,2018(17):167.
  [2] 马明阳,郭明亮,魏留强.网络爬虫的专利技术综述[J].科技世界,2018(12):12-13.
  [3] 陈丽,黄晋,王锐.Hadoop大数据平台安全问题和解决方案的综述[J].计算机系统应用,2018(1):1-9.
  [4] 邱均平,方国平.基于知识图谱的中外自然语言处理研究的对比分析[J].现代图书情报技术,2014,30(12):51-61.
  [5] 何晓兵,容金凤.基于层次目标分解法构建的认知信息检索模型[J].情报理论与实践,2014(2):14-18.
其他文献
2011年奥斯卡奖的大幕早已落下,在大获成功的《国王的演讲》背后是一干失意的影片,其中就有获十项提名却没有拿到任何奖项的西部片《大地惊雷》(True Grit)。《大地惊雷》翻拍自1
拍电影难,拍一部好看的历史体栽电影更难---不仅在拍摄过程中要历经千锤百炼,在上映后还要勇于承受舆论的评判:艺术的演绎到底在多大程度上符合史实呢?第83奥斯卡的大赢家《国王
摘 要:大型基础设施使得群桩基础得以广泛应用,而群桩基础的承载力计算、群桩效应系数的影响因素以及群桩基础沉降等主要问题成为研究群桩的关键。现实情况中会出现地基承载力设计变更,因此要对原有地基进行补桩处理。本文以弹性力学和应力叠加为基础进行理论公式推导,计算补桩后群桩效应系数以及群桩承载力;同时以实际工程群桩基础承载力为依据验证理论公式的正确性。  关键词:群桩基础 承载力 补桩 群桩效应系数  中
有一种影片总能把抽象的大道理诠释得浅显易懂,让大人和孩子都能接受,比如《猫头鹰王国:守卫者传奇》(Legend of the Guardians:The Owls of Ga'Hoole)。这部以猫头鹰为主角的动画片
桥梁是由纵横梁及桥面板组成的复杂空间结构,由于纵横梁刚度不同,荷载作用位置不同,桥梁不同部位受力就不同,因此横向分布实际上是一个空间计算问题,实际工作大都采用引入荷载横向
在变电运行工作中,母线倒闸操作是非常重要的工作之一。若是在实施母线倒闸操作过程中没有完全准备好,或者操作过程中违反相应规程就非常可能影响整个电力系统的稳定运行。本
构建高效课堂是每位教师追求的必要教学目标,在初中英语教学过程中,构建高校教学课堂,不仅有利于学生更好的学到知识,锻炼本领,还能有效提高教师课堂的教学质量,提高教学效果
2009年盛夏,激动又有点迷惘的我拖着大大小小的行李箱,从炎热的北京来到风光旖旎、气候温和的加利福尼亚州圣迭戈市(SanDiego),开始了我的留美生涯。如今我顺利地拿到了硕士学位,又
目的探讨糖尿病急性并发症应用微量泵输注胰岛素的效果.方法将58例糖尿病急性并发症病人随机分为两组,观察组(27例)采用微量泵输注小剂量胰岛素,对照组(31例)采用静脉滴注小