本文将用python实现倒排索引

如下,一个数据表docu_set中有三篇文章的,d1,d2,d3,如下

docu_set={'d1':'i love shanghai','d2':'i am from shanghai now i study in tongji university','d3':'i am from lanzhou now i study in lanzhou university of science  and  technolgy',}

下面用这张表做一个简单的搜索引擎,采用倒排索引
首先对所有文档做分词,得到文章的词向量集合

all_words=[]
for i in docu_set.values():
#    cut = jieba.cut(i)cut=i.split()all_words.extend(cut)set_all_words=set(all_words)
print(set_all_words)

首先对所有文档做分词,得到文章的词向量集合

{'now', 'study', 'shanghai', 'am', 'in', 'university', 'and', 'from', 'tongji', 'i', 'of', 'lanzhou', 'love', 'technolgy', 'science'}

构建倒排索引

invert_index=dict()
for b in set_all_words:temp=[]for j in docu_set.keys():field=docu_set[j]split_field=field.split()if b in split_field:temp.append(j)invert_index[b]=temp
print(invert_index)

倒排索引如下

{'now': ['d2', 'd3'],'study': ['d2', 'd3'],'shanghai': ['d1', 'd2'],'am': ['d2', 'd3'],'in': ['d2', 'd3'],'university': ['d2', 'd3'],'and': ['d3'],'from': ['d2', 'd3'],'tongji': ['d2'],'i': ['d1', 'd2', 'd3'],'of': ['d3'],'lanzhou': ['d3'],'love': ['d1'],'technolgy': ['d3'],'science': ['d3']}

全文搜索 ‘university’

invert_index['university']

‘university’,在文档 ‘d2’, 'd3’中,完成搜索

['d2', 'd3']

代码在git

参考文章

python 实现倒排索引,建立简单的搜索引擎相关推荐

  1. 使用Python+Pandas+Statsmodels建立线性回归模型预测房价

    [综述] 本文通过使用Python+Pandas+Statsmodels建立简单一元线性回归模型.多元线性回归模型来预测房价. 主要内容来源自网页:https://www.learndatasci.c ...

  2. Python Train_出乎意料的简单!10分钟用python建立人工智能预测模型

    介绍 鉴于Python在过去几年中的兴起及其简洁性,对于数据科学领域的Python学家意义重大.这篇文章会用最容易的方式引导你更快地构建第一个预测模型. 出乎意料的简单!10分钟用python进行人工 ...

  3. 一步一步学python爬虫_初学Python之爬虫的简单入门

    初学Python之爬虫的简单入门 一.什么是爬虫? 1.简单介绍爬虫 爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等. 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据 ...

  4. mysql制作搜索引擎_MySQL 实现一个简单版搜索引擎,真是绝了!

    MySQL 实现一个简单版搜索引擎,真是绝了! 前言只有Innodb和myisam存储引擎能用全文索引(innodb支持全文索引是从mysql5.6开始的) char.varchar.text类型字段 ...

  5. python利用Trie(前缀树)实现搜索引擎中关键字输入提示(学习Hash Trie和Double-array Trie)...

    python利用Trie(前缀树)实现搜索引擎中关键字输入提示(学习Hash Trie和Double-array Trie) 主要包括两部分内容: (1)利用python中的dict实现Trie: ( ...

  6. Java爬虫之利用Jsoup自制简单的搜索引擎

      Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据.Jso ...

  7. java爬虫jsoup_Java爬虫之利用Jsoup自制简单的搜索引擎

    内容导读 在上述代码中,url为输入词条(暂时仅限于英文),进入while循环可一直搜索,当输入为'exit'时退出.contentText为该词条的百度百科简介的网页形式,通过正则表达式将其中的文字 ...

  8. python socket编程 实现简单p2p聊天程序

    转载自:https://www.cnblogs.com/wuxie1989/p/7204887.html python socket编程 实现简单p2p聊天程序 目标是写一个python的p2p聊天的 ...

  9. 基于python的百度云网盘资源搜索引擎设计架构

    大家都知道百度云网盘上有很多分享的资源,包括软件.各类视频自学教程.电子书.甚至各种电影.BT种子应有尽有,但百度云却没有提供相应的搜索功能.个人平时要找一些软件.美剧觉得非常蛋疼.于是就尝试开发一个 ...

最新文章

  1. 提升Hadoop计算能力的并行框架
  2. python mean函数_聚类算法 Mean-shift
  3. 【Apache】指定 某一个URL 并进行 Auth 认证
  4. 强化学习note1——马尔科夫奖励过程MRP和马尔科夫决策过程MDP各个函数的定义与区别
  5. 提交成功信息显示_上海居住证积分从提交材料,到打印通知单要多久?
  6. android studio 中使用lambda表达式
  7. linux设备模型深探
  8. [转载] python笔记:4.1.2.1统计量_离散程度_方差和标准差
  9. GenyMotion 配合 Android Studio 的安装
  10. Linux音频驱动-AOSC之Codec
  11. 政府机构网络安全实战
  12. java毕业设计-java SSM超市积分兑换系统
  13. java时间差的百分之二十,java计算时间差及某个时间段数据
  14. CSS中position属性(relative,absolute,fixed)和display中的inline-block
  15. 正则表达式 匹配任意长度的字符
  16. Serverless 技术架构 — 初探传说中的FAAS(Function as a Service)
  17. 整理全网文档管理平台,持续跟更新
  18. EXCEL一般使用技巧总结
  19. 【小学数学出题软件】家长老师必备!训练小孩数学计算能力,可直接生成word打印出题!
  20. PinBlock/PinBuffer的计算方法

热门文章

  1. 基于FPGA的BP神经网络的verilog实现
  2. Centos7 安装 nginx 服务器的两种方式
  3. Hyperic HQ 应用性能管理解决方案
  4. Know more about AWR Parse Statistics
  5. ESFramework网络通信框架介绍之(3)――消息处理器和处理器工厂
  6. C++存储和处理字符串
  7. linux 内核抓包功能实现基础(二) netfilter处理
  8. java怎么创建log4_如何使用log4j记录日志
  9. vue 生命周期_Vue 生命周期
  10. crontab 半小时_?用猫粮诱惑,7名消防员花半小时救出困在夹墙间的喵星人