基于python构建搜索引擎系列——(一)简介

基于python构建搜索引擎系列——(一)简介 我们上网用得最多的一项服务应该是搜索,不管大事小情,都喜欢百度一下或谷歌一下,那么百度和谷歌是怎样从浩瀚的网络世界中快速找到你想要的信息呢

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

基于python构建搜索引擎系列——(一)简介

我们上网用得最多的一项服务应该是搜索,不管大事小情,都喜欢百度一下或谷歌一下,那么百度和谷歌是怎样从浩瀚的网络世界中快速找到你想要的信息呢,这就是搜索引擎的艺术,属于信息检索的范畴。

这学期学习了《现代信息检索》课程,使用的是Stanford的教材Introduction to Information Retrieval,网上有电子版,大家可以参考。

本课程的大作业是完成一个新闻搜索引擎,要求是这样的:定向采集3-4个新闻网站,实现这些网站信息的抽取、索引和检索。网页数目不少于10万条。能按相关度、时间和热度(需要自己定义)进行排序,能实现相似新闻的自动聚类。

截止日期12月31日,我们已经在规定时间完成了该系统,自认为检索效果不错,所以在此把过程记录如下,欢迎讨论。

网上有很多开源的全文搜索引擎,比如Lucene、Sphinx、Whoosh等,都提供了很好的API,开发者只需要调用相关接口就可以实现一个全功能的搜索引擎。不过既然学习了IR这门课,自然要把相关技术实践一下,所以我们打算自己实现一个搜索引擎。

这是简介部分,主要介绍整个搜索引擎的思路和框架。

上图为本搜索引擎的框架图。首先爬虫程序从特定的几个新闻网站抓取新闻数据,然后过滤网页中的图片、视频、广告等无关元素,抽取新闻的主体内容,得到结构化的xml数据。然后一方面使用内存式单遍扫描索引构建方法(SPIMI)构建倒排索引,供检索模型使用;另一方面根据向量空间模型计算两两新闻之间的余弦相似度,供推荐模块使用。最后利用概率检索模型中的BM25公式计算给定关键词下的文档相关性评分,BM25打分结合时间因素得到热度评分,根据评分给出排序结果。

在后续博文中,我会详细介绍每个部分的实现。

使用方法

  • 安装python 3.4+环境

  • 安装lxml html解析器,命令为 pip install lxml

  • 安装jieba分词组件,命令为 pip install jieba

  • 安装Flask Web框架,命令为 pip install Flask

  • 进入web文件夹,运行main.py文件

  • 打开浏览器,访问 http://127.0.0.1:5000 输入关键词开始测试

如果想抓取最新新闻数据并构建索引,一键运行 ./code/setup.py ,再按上面的方法测试。

本文转载自:http://bitjoy.net/2016/01/04/introduction-to-building-a-search-engine-1

参考文献

  • 分布式Web Crawler系统研究与实现(江西理工大学·胡炜)
  • 基于Lucene的中英文文档全文搜索引擎(电子科技大学·张瑞)
  • 分布式Web Crawler系统研究与实现(江西理工大学·胡炜)
  • 基于领域的网络爬虫技术的研究与实现(武汉理工大学·谭龙远)
  • 基于网络爬虫的搜索引擎的设计与实现(湖北工业大学·冯丹)
  • 基于Lucene的商品垂直搜索引擎研究与实现(东华大学·潘磊宁)
  • 校园网有害信息监测系统设计与实现(西南交通大学·杨亚群)
  • 个性化资讯推荐系统的设计与实现(山东大学·仵贇)
  • 垂直搜索引擎爬虫系统的研究与实现(贵州大学·吴建强)
  • 垂直搜索引擎爬虫系统的研究与实现(贵州大学·吴建强)
  • 面向商品的垂直搜索系统的设计与实现(北京交通大学·王海涛)
  • 基于Lucene的中英文文档全文搜索引擎(电子科技大学·张瑞)
  • 基于Lucene技术搜索引擎设计与实现(吉林大学·张阳)
  • 基于元搜索的Web信息搜索技术研究(吉林大学·张春磊)
  • 基于Web Service的企业搜索引擎的架构及优化(吉林大学·吴学义)

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

相关推荐

  • 基于Python的中文自动分词实验

    中文自动分词实验 实验内容 使用任意分词方法进行分词 实验要求和目的 使用任意分词方法实现汉语自动分词; 给出至少 1000 个句子的分词结果(以附件形式); 计算出分词结果的正确率
    2024年05月14日
    3 1 1
  • JavaWeb实现足球队管理系统

    JavaWeb 毕业设计项目-足球队管理系统(一)系统结构图 + 用例图 系统功能结果图: 管理员(球队经理)用例图: 教练组用例图: 球员组用例图: JavaWeb 毕业设计项目-足球队管理系统(二)成品展示 + 业务介绍 1
    2024年05月14日
    4 1 2
  • 基于JSP和Oracle的网上招聘系统的设计与实现

    基于JSP和Oracle的网上招聘系统的设计与实现 摘 要 随着时代的发展,中国的互联网技术愈加成熟,已经有越来越多的社会群体开始学会使用互联网技术
    2024年05月14日
    11 1 1
  • 教学辅助平台

    这是一个🔥🔥基于SpringBoot框架的教学辅助平台设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    1 1 1
  • 基于java开发教室预约Web

    Class Int—教室资源管理系统 一,需求介绍 1,1 项目前景 近年来,随着高校不断的扩招,在校师生人数不断增加,各级高校都迫切需要提高工作质量和工作效率
    2024年05月14日
    1 1 1
  • Java+SSM学生公寓宿舍寝室管理系统

    这是一个🔥🔥SSM学生公寓宿舍寝室管理系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 学生公寓管理系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业基于SSM框架与mysql技术
    2024年05月23日
    6 1 2
  • 基于springcloud实现的医院信息系统

    项目简介 HIS英文全称 hospital information system(医院信息系统),系统主要功能按照数据流量,流向及处理过程分为临床诊疗,药品管理
    2024年05月14日
    1 1 1
  • 城镇保障性住房管理系统

    这是一个🔥🔥基于SpringBoot框架的城镇保障性住房管理系统设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    2 1 1
  • 基于SSM框架的个人博客系统(源码+论文)

    这是一个🔥🔥基于SSM框架的个人博客系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 个人博客系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业使用spring+springmvc+mybatis实现一个个人博客系统
    2024年05月23日
    10 1 3
  • 基于 JavaWeb 的学院党费缴费系统

    基于 JavaWeb 的学院党费缴费系统 第 1 章绪论 1,1 项目背景 当今互联网发展及其迅速,互联网的便利性已经遍及到各行各业,惠及到每一个人
    2024年05月14日
    29 1 3

发表回复

登录后才能评论