基于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

相关推荐

  • Web信息处理

    Web信息处理 爬虫的基本原理以及使用的基本方法(如果使用框架,简述参数和各项module的功能) 由于本学院官网上的教师资料信息较为简单,本次作业的信息爬取使用Python的Requests库完成
    2024年05月14日
    2 1 1
  • 基于JSP的美食网站食谱网站、javaweb源码

    这是一个🔥🔥基于JSP的美食网站食谱网站,javaweb源码🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 美食食谱开发技术栈为JSP项目,可以作为毕业设计课程设计作业利用jsp+servlet实现一个类似下厨房的美食食谱网站
    2024年05月23日
    13 1 4
  • 基于JSP和Mysql的码头船只出行及配套货柜码放管理系统

    基于JSP和Mysql的码头船只出行及配套货柜码放管理系统 摘 要 伴随着全球化的发展,码头的物流和客运增多,码头业务迎来新的高峰,然而码头业务的增加
    2024年05月14日
    1 1 1
  • 基于python实现的比价网站

    1,项目简介 1,1你低我低 是什么? (Introduction) 你低我低 致力于建设绝无人工干预的比价网站 现支持淘宝,亚马逊 支持自定义排序方式 1
    2024年05月14日
    2 1 1
  • 基于Java+SpringMVC的图书管理系统

    这是一个🔥🔥基于SpringMVC的图书管理系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 图书管理系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业基于Java+SpringMVC的图书管理系统
    2024年05月23日
    5 1 2
  • 基于Python开发早教管理系统

    金宝贝早教中心管理系统 一,摘 要 近年来,家长对孩子的教育问题愈加重视,倡导启蒙教育,因此,许多早教机构应运而生,而随着就够人员的增多,机构的管理成为重中之重
    2024年05月14日
    1 1 1
  • Java+SSH酒店预订管理网站

    在当前数字化时代,酒店业务管理系统的自动化和高效化已成为了业界的重要趋势,基于Java+SSH技术(Struts2, Spring, Hibernate)的酒店预订管理系统因其灵活性和可扩展性而备受关注
    2024年05月07日
    5 1 1
  • 基于PHP实现的WEB图片共享系统

    基于PHP实现的WEB图片共享系统 摘 要 本系统主要从现代社会电脑化观念出发,通过对现有资料的分析,研究和整理,确定了在基于现存的WEB2,0模式下开发图片共享系统的可行性
    2024年05月14日
    4 1 1
  • 基于SSM架构的网络租车系统

    基于SSM架构的网络租车系统 摘 要 随着网络应用的兴起,人们的生活也因此发生了翻天覆地的变化,人们开始利用计算机来解决我们生活中的实际问题,由此诞生了许多互联网产业
    2024年05月14日
    6 1 1
  • 基于Python实现的验证码识别系统

    基于Python实现的验证码识别系统 1 项目介绍 本项目针对字符型图片验证码,使用tensorflow实现卷积神经网络,进行验证码识别, 项目封装了比较通用的 校验
    2024年05月14日
    4 1 2

发表回复

登录后才能评论