新闻采集系统python_[内附完整源码和⽂档]基于python的新闻
检索系统
1 系统介绍
1.1 系统需求
新闻检索系统:定向采集不少于 4 个中⽂社会新闻⽹站或频道,实现这些⽹站新闻信息及评论信息的⾃动爬取、抽取、索引和检索。本项⽬未使⽤ lucene,Goose 等成熟开源框架。
1.2 系统思路与框架
本系统总体的实现思路如图 1 所⽰:
⼀个完整的搜索系统主要的步骤是:
对新闻⽹页进⾏爬⾍得到语料库
抽取新闻的主体内容,得到结构化的 xml 数据
内存式单遍扫描索引构建⽅法构建倒排索引,供检索模块使⽤
⽤户输⼊查询,得到相关⽂档返回给⽤户
2 设计⽅案
2.1 新闻爬取
2.1.1 算法简述
该模块针对搜狐,⽹易,腾讯三⼤主流新闻⽹站及官⽅的参考消息⽹站进⾏了新闻获取。并基于其⽹站结构,设计了不同的爬取模式。由于⽹站架构两两相似,以下选取两种类型的典型代表进⾏介绍:
(2)⽹易新闻
可以将⽹易新闻及腾讯新闻归结为⼀般类型的新闻主页,我们采⽤了⾃新闻主页开始的⼴度优先的递归爬取策略。注意到新闻的正⽂页往往是静态⽹页.html,因此,我们将⽹页中出现的所有以.html 结尾的⽹页的 URL 均记录下来,在爬取到⼀定量时,进⾏⼀次去重。
对于⼀些不是新闻的错分⽹页,容错处理即通过检查新闻正⽂标签
python中文文档时会被剔除。
新闻正⽂页中我们重点关注内容,时间,评论获取。
2.1.2 创新点
实现了对新闻⽹页动态加载的评论进⾏爬取,如搜狐新闻评论爬取
未借助开源新闻爬取⼯具,⾃⼰实现了对新闻标题,正⽂,时间,评论内容,评论数⽬的⾼效爬取
2.2 索引构建
分词,我们借助开源的 jieba 中⽂分词组件来完成,jieba 分词能够将⼀个中⽂句⼦切成⼀个个词项,这样就可以统计 tf, df 了
去停⽤词,去停词的步骤在 jieba 分词之后完成
倒排记录表存储,词典⽤ B-树或 hash 存储,倒排记录表⽤邻接链表存储⽅式,这样能⼤⼤减少存储空间
倒排索引构建算法使⽤内存式单遍扫描索引构建⽅法(SPIMI),就是依次对每篇新闻进⾏分词,如果出现新的词项则插⼊到词典中,否则将该⽂档的信息追加到词项对应的倒排记录表中。
2.3 检索模块
2.3.1 检索模式
(1)关键词检索
查询即根据⽤户输⼊的关键字,返回其相应的新闻。⾸先根据⽤户的查询进⾏ jieba 分词,记录分词后词项的数量以字典形式进⾏存储。完整的源码和详细的⽂档,上传到了 WRITE-BUG技术共享平台 上,需要的请⾃取:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论