基于python构建搜索引擎系列——(六)系统展示及总结

基于python构建搜索引擎系列——(六)系统展示及总结 系统展示 前几个博客已经介绍完搜索引擎的所有功能,为了实现更好的用户体验,需要一个web界面

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

基于python构建搜索引擎系列——(六)系统展示及总结

系统展示

前几个博客已经介绍完搜索引擎的所有功能,为了实现更好的用户体验,需要一个web界面。这一部分是另一个队员做的,我这里借用他的代码。

我们利用开源的Flask Web框架搭建了展示系统,搜索引擎只需要两个界面,一个是搜索界面,另一个是展示详细新闻的页面(实际搜索引擎没有这个页面)。编写好这两个模板页面并调用前面给出的接口,得到数据,展示出来就可以。

这一部分没有太多需要讲解的算法,直接上效果图(点击图片可以查看大图)。

由于数据量不大,只有1000条新闻,所以第一页中后面几个结果相关度就不是很高了。但是经过测试,在大数据量的情况下,不论是搜索的速度、准确率、召回率以及推荐阅读的相关度,都达到了不错的效果。

总结

至此,整个新闻搜索引擎构建完毕,总体效果令人满意,不过还是有很多可以改进的地方。下面总结一下本系统的优点和不足。

优点

倒排索引存储方式。因为不同词项的倒排记录表长度一般不同,所以没办法以常规的方式存入关系型数据库。通过将一个词项的倒排记录表序列化成一个字符串再存入数据库,读取的时候通过反序列化获得相关数据,整个结构类似于邻接表的形式。

推荐阅读实现方式。利用特征提取的方法,用25个关键词表示一篇新闻,大大减小了文档词项矩阵规模,提高计算效率的同时不影响推荐新闻相关性。

借用了Reddit的热度公式,融合了时间因素。

不足

构建索引时,为了降低索引规模,提高算法速度,我们将纯数字词项过滤了,同时忽略了词项大小写。虽然索引规模下降了,但是牺牲了搜索引擎的正确率。

构建索引时,采用了jieba的精确分词模式,比如句子“我来到北京清华大学”的分词结果为“我/ 来到/ 北京/ 清华大学”,“清华大学”作为一个整体被当作一个词项,如果搜索关键词是“清华”,则该句子不能匹配,但显然这个句子和“清华”相关。所以后续可以采用结巴的搜索引擎分词模式,虽然索引规模增加了,但能提升搜索引擎的召回率。

在推荐阅读模块,虽然进行了维度约减,但是当数据量较大时(数十万条新闻),得到的文档词项矩阵也是巨大的,会远远超过现有PC的内存大小。所以可以先对新闻进行粗略的聚类,再在类内计算两两cosine相似度,得到值得推荐的新闻。

在热度公式中,虽然借用了Reddit的公式,大的方向是正确的,但是引入了参数k1k1和k2k2,而且将其简单的设置为1。如果能够由专家给出或者经过机器学习训练得到,则热度公式的效果会更好。

本文转载自:

  • http://bitjoy.net/2016/01/09/introduction-to-building-a-search-engine-6

  • http://bitjoy.net/2016/01/09/introduction-to-building-a-search-engine-7

参考文献

  • 复合规则驱动聚焦爬虫系统的设计与实现(哈尔滨工业大学·刘强)
  • 基于三层体系结构的网络搜索与信息处理系统(广东工业大学·梁继能)
  • 基于JavaEE和XML的分布式信息检索系统设计与实现(山东大学·牛拥军)
  • 面向特定网页的Web爬虫的设计与实现(吉林大学·马慧)
  • 基于B/S结构的新闻发布系统(吉林大学·郭蕊)
  • 主题网络爬虫的研究与设计(南京理工大学·朱良峰)
  • 基于三层体系结构的网络搜索与信息处理系统(广东工业大学·梁继能)
  • 沈阳地铁门户搜索引擎的设计与实现(东北大学·张森)
  • 分布式网络爬虫在农产品搜索系统中的应用与研究(南昌大学·袁龙涛)
  • 面向特定网页的Web爬虫的设计与实现(吉林大学·马慧)
  • 面向特定网页的Web爬虫的设计与实现(吉林大学·马慧)
  • 复合规则驱动聚焦爬虫系统的设计与实现(哈尔滨工业大学·刘强)
  • 面向特定网页的Web爬虫的设计与实现(吉林大学·马慧)
  • 基于Java技术的搜索引擎研究与实现(西南交通大学·何世林)
  • 基于J2EE的多语种元搜索引擎的研究与实现(电子科技大学·冯刚)

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

相关推荐

  • 基于SpringBoot框架的高校教师科研管理系统

    这是一套采用Java语言编写的🔥🔥SpringBoot为核心的大学教师科研管理系统的源代码,该项目利用了SpringBoot框架和Vue技术进行开发,支持在Idea或Eclipse环境下运行
    2024年05月23日
    10 1 4
  • Python程序设计#3作业

    Python程序设计#3作业 作业题目 基于 aiohttp(https://docs,aiohttp,org/en/stable/)实现一个服务查询客户端
    2024年05月14日
    2 1 1
  • 基于SpringBoot框架的校园疫情防控系统

    这是一套采用🔥🔥SpringBoot为核心的校园疫情安全管理系统的源代码,主要编程语言为Java,并结合了SpringBoot和Vue技术进行构建,开发工具可以选择Idea或Eclipse
    2024年05月23日
    6 1 3
  • 基于 Web 的运动社交应用

    基于 Web 的运动社交应用 项目需求 1, 引言 1,1, 目的 本文档描述了健康专家系统的功能和非功能需求,开发人员的软件系统实现与验证工作都以此文档为基础
    2024年05月14日
    5 1 2
  • 基于Web技术实现多人博客平台

    一,需求分析 博客是网络交流的一种重要形式,国内拥有许多专业的博客平台,如 CSDN 等, 为了实现小规模用户之间文章的分享,多人之间的交流互动,熟悉博客平台的开发流程
    2024年05月14日
    3 1 1
  • 基于Python实现情感分析实验

    1, 情感分析综述 情感分析也称为意见挖掘,是自然语言处理(NLP)中的一个领域,它试图在文本中识别和提取意见, 情感分析有很多的应用场景,例如社交媒体监控
    2024年05月14日
    2 1 1
  • 基于Spring+Vue的吾爱理财平台的设计与实现

    基于Spring+Vue的吾爱理财平台的设计与实现 摘 要 截止至2023年6月底,我国投资者数量高达9145,40万,上半年累计为投资者创造收益4172亿元
    2024年05月14日
    5 1 2
  • 基于SSH框架的网上商城毕设全套

    在当今数字化时代,网上商城系统已经成为了商业运作的主流模式之一,基于SSH框架的网上商城系统以其性能优越,可扩展性强以及安全可靠稳定的特点,吸引了越来越多的关注和应用,本论文旨在通过研究和开发一个完整的基于SSH框架的网上商城系统
    2024年05月07日
    7 1 1
  • 基于spring boot实现的宾馆管理信息系统

    一,系统开发平台 题目:宾馆管理信息系统 宾馆管理信息系统是现代商业社会宾馆酒店单位不可缺少的部分,在“互联网+”的影响下,这套网站的使用对于宾馆的决策者和管理者来说都至关重要
    2024年05月14日
    2 1 1
  • 免税商品优选购物商城

    这是一个🔥🔥基于SpringBoot框架的免税商品优选购物商城设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    2 1 1

发表回复

登录后才能评论