新闻检索系统思路与框架本系统的实现思路和框架

优采云 发布时间: 2021-08-02 02:26

  新闻检索系统思路与框架本系统的实现思路和框架

  1 系统介绍

  1.1 系统要求

  新闻检索系统:针对采集不少于4个中文社交news网站或频道,实现对这些网站news信息和评论信息的自动抓取、提取、索引和检索。本项目未使用Lucene、Goose等成熟的开源框架。

  1.2 系统思路和框架

  本系统整体实现思路如图1所示:

  

  一个完整的搜索系统的主要步骤是:

  爬取新闻网页获取语料库

  提取新闻主要内容得到结构化xml数据

  内存型单遍扫描索引构造方法构造倒排索引供检索模块使用

  用户输入查询,相关文档返回给用户

  2 设计方案

  2.1 新闻爬取

  2.1.1 算法简述

  本模块抓取搜狐、网易、腾讯三大主流新闻网站的新闻,以及官方参考新闻网站。并基于其网站结构设计了不同的爬取模式。由于网站架构彼此相似,因此选取以下两类典型代表进行介绍:

  (1)搜狐新闻

  搜狐新闻除了普通首页之外,还有隐藏的列表式新闻页面,比如。

  (2)网易新闻

  网易新闻和腾讯新闻可归于一般新闻首页。我们从新闻主页开始采用广度优先的递归爬取策略。请注意,新闻的正文页面通常是静态网页 .html。因此,我们记录所有出现在网页中的以.html结尾的网页的网址,并在达到一定的抓取量后进行去重。

  对于一些误分类的非新闻网页,通过检查新闻正文标签进行容错处理

  将被删除。

  在主新闻页面,我们专注于内容、时间和评论获取。

  2.1.2 创新点

  实现了新闻网页动态加载评论的爬取,如搜狐新闻评论爬取

  在没有借助开源新闻爬虫工具的情况下,实现了对新闻标题、文本、时间、评论内容、评论数的高效爬取。

  2.2 索引构建

  分词,我们使用开源的jieba中文分词组件来完成,jieba分词可以将一个中文句子切割成单独的词条,这样tf,df就可以统计了

  要停用词,在jieba分词后完成停用词步骤

  倒排记录表存储,字典采用B-tree或hash存储,倒排记录表采用相邻链表存储方式,可以大大减少存储空间

  倒排索引构建算法采用基于内存的单遍扫描索引构建方法(SPIMI),即依次对每条新闻进行切分。如果出现新的词条,则将其插入到词典中,否则将文档的信息附加到词条对应的倒排记录表中。

  2.3 搜索模块

  2.3.1 搜索模式

  (1)关键词search

  查询是根据用户输入的关键字返回相应的新闻。首先根据用户的查询进行jieba分词,记录分词后的词条数并以字典的形式存储。

  

  

  

  完整源代码和详细文档上传至WRITE-BUG技术分享平台。有需要的请自取:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线