基于Python的Django框架实现的新闻检索平台

基于Python的Django框架实现的新闻检索平台 1 功能概述 本软件为一个新闻检索平台,实现了检索及显示10000条来自人民网的新闻的功能, 1

本文包含相关资料包-----> 点击直达获取<-------

基于Python的Django框架实现的新闻检索平台

1 功能概述

本软件为一个新闻检索平台,实现了检索及显示10000条来自人民网的新闻的功能。

1.1 主页面

输入127.0.0.1:8000/search后,可得到以下初始界面。

可在本页面上端的搜索框中输入关键词进行搜索,也可通过下方的翻页键浏览新闻。

1.2 搜索结果界面

上图为搜索结果页面,搜索关键词为"习近平 普京 特朗普",搜索引擎会返回所有与关键词部分匹配的页面,且匹配程度越高,排名越靠前。对于出现在标题、摘要中的关键词,会高亮显示。

同时,搜索引擎还支持按时间检索,若搜索关键词中包含用&&包起来的两个日期,则会返回发布时间在这两个日期之间的文章。下图是输入&2017-01-01-2017-01-01&后的返回页面。

1.3 详情界面

点击上述两个页面中的新闻标题后,可进入新闻的详情界面。

详情页面展示了新闻的全文,并推荐3篇数据库中相似性最高的文章。

2 代码实现

2.1 相关配置

爬虫使用python2,其版本号为2.7.13,使用的第三方库有 requeests 2.19.1 , pandas 0.23.4。

其余部分使用python3,其版本号为3.7.0,所使用的第三方库有:Django 2.1.1 , jieba 0.39 , numpy 1.14.5 , pandas 0.23.3 2.2 爬虫 。

从网页 http://world.people.com.cn/n1/2018/0911/c1002-30284709.html 开始,对网页的相关新闻版块进行 bfs,提取每个网页的标题、发表时间、正文,从0开始按爬取时间对所有爬取到的网页进行编号,把标题、发表时间存至' info.csv 文件中,将正文存到以编号命名的txt文件中。爬虫代码位于 scripts/crawler.py 中。

2.3 数据处理

从爬取到的文件中提取文章摘要,存到 info.csv 中。

使用 jieba 的search模式对每篇文章的标题及正文进行分词,记录文中出现的词及出现次数(词在标题中每出现 一次按照5次计入),使用出现次数在2次及以上的词建立倒排索引,在索引表中同时存储出现次数,倒排索引存储于 mix.csv 中。

上述代码主要位于 scripts/segment.py 中。

使用 tf-idf+jaccard similarity 进行相关文章推荐,首先计算每个关键词的 idf 值,导入到 mix.csv 中,再枚举所有文章对,计算每一对文章的相似程度,存到 similarity 文件夹中以文章编号命名的csv文件中。此部分代码位于 scripts/similarity.py 中。

之后,将 info.csv 、mix.csv 、similarity/*.csv 中内容导入Django创建的sqlite3数据库中,此部分代码位于主要位于 database_insert.py 中。

2.4 搜索算法

使用打分的方法进行搜索。

若开启了时间检索,则为位于这个时间区间内的文章加20000分,并将 threshold_time 值设为20000,否则将 threshold_time 值设为0。

若使用了关键词检索,则将 threshold_text 值设为1000,否则设为0。对于检索使用的每个关键词,若在某篇文章中出现,则为该篇文章加 次,其中t表示关键词在文章及标题中的出现次数(标题中每出现一次 按5次计算)。每个关键词有1000分的基础分保证了出现关键词较多的文章得分会较高,使用 log 函数是为了适当平衡出现次数多的关键词和出现次数少的关键词的贡献。

之后,将得分大于等于 threshold_time+threshold_text 的文章返回,返回前将文章按得分从高到低排序。

2.5 服务器搭建

服务器使用Django进行搭建。

前端分为2个页面 index.html 与 article.html ,index.html 用于展示主页面及搜索结果,并使用JavaScript 实现关键词高亮。article.html 用于展示新闻详情及新闻内容。

这两个页面都是在网上下载的网页模板的基础上添加了搜索栏,更改了上部的网站名称而得到的,网站模板位于 template 文件夹中。

后端使用数据库进行交互,当用户点击文章详情时,读取本地静态文件进行显示,当用户进行搜索时,调用2.4中所描述的搜索算法进行搜索。

参考文献

  • 基于Docker的智能云平台系统的设计与实现(华南理工大学·曾圣钊)
  • 基于Docker的智能云平台系统的设计与实现(华南理工大学·曾圣钊)
  • 网络视频监控管理平台的设计与实现(浙江工业大学·王政)
  • 金融信息实时发布系统的设计与实现(东北大学·伦健)
  • 基于B/S的在线新闻平台的设计与实现(西安电子科技大学·王一丁)
  • 基于分布式爬虫的社交媒体灾害信息挖掘系统的设计与实现(华中科技大学·单欣刚)
  • 基于Django和Celery框架的进度管理平台的设计与实现(华中科技大学·吴斌)
  • 基于分布式爬虫的社交媒体灾害信息挖掘系统的设计与实现(华中科技大学·单欣刚)
  • 文本综合处理平台的研究与实现(济南大学·王孟孟)
  • 网络新闻语料库建设及其分布式检索系统研究(华中师范大学·鲁松)
  • 南洋学院网络新闻发布系统(电子科技大学·诸国华)
  • 基于Docker的智能云平台系统的设计与实现(华南理工大学·曾圣钊)
  • 多媒体信息检索实验平台的构建(华南理工大学·唐正)
  • 南洋学院网络新闻发布系统(电子科技大学·诸国华)
  • 基于Lucene技术搜索引擎设计与实现(吉林大学·张阳)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码向导 ,原文地址:https://m.bishedaima.com/yuanma/35443.html

相关推荐

  • 新手python简单的飞机游戏

    game 一个新手做的python简单的飞机游戏 参考文献 基于Java EE的个人博客管理系统的设计和实现(内蒙古大学·闫伟光) 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语) 航空订票服务器爬虫检测技术研究(杭州电子科技大学·陈万烤) 主题爬虫关键技术研究(哈尔滨工程大学·黄正德) 机票票价预测系统设计与实现(大连理工大学·陈岩松) 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 机票票价预测系统设计与实现(大连理工大学·陈岩松) 山东航空货运业务管理系统的设计与实现(山东大学·高辉) 飞行情报资料管理信息系统设计与实现(中国地质大学(北京)·张晓琴) 山东航空货运业务管理系统的设计与实现(山东大学·高辉) 豆玩手机游戏平台的设计与实现(吉林大学·李天明) 面向高职信息技术教育的严肃游戏设计与实施(大连理工大学·王晓姝)
    2024年05月14日
    1 1 1
  • 基于python制作一个打砖块小游戏

    基于 python 制作一个打砖块小游戏 导语 想起来好久没更这个系列的文章了,周末过来补一波好了,本期我们将利用 python 制作一个打砖块小游戏
    2024年05月14日
    1 1 1
  • 基于python实现的电梯调度

    基于python实现的电梯调度 1 项目说明 1,1 项目目的 通过实现电梯调度,体会操作系统调度过程 学习特定环境下多线程编程方法 学习调度算法 1
    2024年05月14日
    5 1 3
  • 基于JSP的校园论坛BBS网站的设计与实现

    基于JSP的校园论坛BBS网站的设计与实现 1 概述 开发校园论坛系统的目的是提供一个供我校学生交流的平台,为我校学生提供交流经验,探讨问题的社区,因此
    2024年05月14日
    21 1 1
  • 基于SSM框架实现的员工信息管理系统

    1,项目简介 这是完整使用SSM框架开发的第一个项目,项目来源于北京动力节点的SSM框架整合教程,其中加入了一些自己的理解,增加了一个搜索功能的页面,这个项目总体来说对于新手是很友好的
    2024年05月14日
    2 1 1
  • 基于JSP的聊天器

    基于JSP的聊天器 1 可行性研究 1,1 技术条件方面的可行性 系统:Windows 8,1 Update 服务器环境:nodejs 0
    2024年05月14日
    7 1 1
  • 基于SpringBoot框架的在线互动学习网站

    这是一套采用Java语言,基于SpringBoot框架构建的在线教育互动平台的源代码,项目采用了SpringBoot和Vue技术栈,开发工具为Idea或Eclipse
    2024年05月23日
    5 1 3
  • 解谜类游戏之Python

    解谜类游戏 一,摘要 作者:霍禹佳,高铭星,朱子仪,梁鞍華 [摘要] 本作融合了企鹅,史诗英雄故事,解谜和游戏这四种元素,创造出一款全新的解谜类游戏,通过对故事
    2024年05月14日
    1 1 1
  • 基于Python制作愤怒的小鸟小游戏

    基于 Python 制作愤怒的小鸟小游戏 导语 小伙伴们周末愉快呀~楼主又好久没更新公众号的样子,为了避免继续被某些小伙伴吐槽,还是上来更新一波吧,既然是周末
    2024年05月14日
    6 1 2
  • 基于SpringBoot框架的网页时装购物系统

    这是一套采用Java语言开发的🔥🔥SpringBoot为核心的电商时装网站项目源代码🔥🔥,该项目运用了SpringBoot框架和Vue技术,支持在Idea或Eclipse开发环境中运行
    2024年05月23日
    10 1 2

发表回复

登录后才能评论