lsq960124 / News_Search_Engine

Search algorithm use bm25 Recommended news algorithm use Doc2vec

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


新闻搜索引擎


互联网访问地址

http://94.191.125.117:2019

项目文档

如何构建一个新闻搜索引擎

算法使用

搜索引擎功能: 倒排索引+BM25算法
针对每个新闻的推荐新闻: DOC2VEC相似度算法

搜索引擎

推荐新闻

代码介绍

----News_Search_Engine\
    |----db\                                :数据库的db文件
    |    |----ir.db
    |    |----ir.db-journal
    |----data\                              :爬取到的链接数据
    |    |----links.txt
    |----setup.py                           :一键构建项目
    |----images\                               
    |    |----recommend.jpg
    |    |----index.jpg
    |----app.py                             :服务器入口文件
    |----word2vec\                          :word2vec的模型文件
    |----search.py                          :服务器的检索功能
    |----config.py                          :配置参数
    |----static\                            
    |----templates\                         :前端模板
    |    |----Search.html
    |    |----News.html
    |    |----Index.html
    |----readme.md
    |----SinaSpyder\                        :爬虫,建索引,计算每条新闻的推荐
    |    |----bm25_config.py                :BM25的参数
    |    |----CreateBM25Index.py            :建索引
    |    |----SpyderLinksFromSina.py        :爬链接
    |    |----SpyderNewsInfomation.py       :爬详情
    |    |----CountRecommendNews.py         :计算推荐信息

项目流程

准备工作 setup.py

  • 数据收集:
    • 爬连接: 广度优先遍历/深度 SpyderLinksFromSina.py
    • 爬内容: 循环 SpyderNewsInfomation.py
  • 倒排索引:
    • BM25: CreateBM25Index.py
  • 计算每篇新闻的推荐新闻:
    • Doc2Vec:CountRecommendNews.py
  • 创建用户表

开始使用:

  • 启动app
    • 获取用户输入关键词
    • 关键词分词 items for item in items score = {'第一篇文档':0.99, '第二篇文档':0.19, '第n篇文档':0.29,} 加和
    • 排序
    • 返回前n条
  • 点击进入文章:
    • 得到id搜索到文章的内容信息
    • 通过id去推荐表中查对应的推荐文档id
    • 推荐文档id去查推荐文档的标题 返回

联系作者

QQ:470581985

项目启动方式

如果你是第一次启动本项目:
  • 需要重新爬取新的链接,重新构建索引,重新计算推荐情况。
  • step1: 运行pip install -r requirement.txt 安装项目环境
  • step2: 运行 setup.py 会重新构建索引,计算推荐
  • step3: 运行结束后,启动 app.py 即可启动项目
如果你不是第一次启动本项目:

启动 app.py 即可启动项目

About

Search algorithm use bm25 Recommended news algorithm use Doc2vec


Languages

Language:Python 90.4%Language:CSS 9.4%Language:HTML 0.1%Language:Ruby 0.1%Language:Shell 0.0%