python 实现倒排索引的方法


Posted in Python onDecember 25, 2018

代码如下:

#encoding:utf-8

fin = open('1.txt', 'r')

'''
建立正向索引:
 “文档1”的ID > 单词1:出现位置列表;单词2:出现位置列表;…………
 “文档2”的ID > 此文档出现的关键词列表。
'''
forward_index = {}
for line in fin:
 line = line.strip().split()
 forward_index[int(line[0])] = {}
 words = line[1].split(',')
 for i, index in enumerate(words):
  if int(index) not in forward_index[int(line[0])].keys():
   forward_index[int(line[0])][int(index)] = [i]
  else:
   forward_index[int(line[0])][int(index)].append(i)
print 'forward_index:', forward_index

'''
建立倒排索引:
 “关键词1”:“文档1”的ID,“文档2”的ID,…………
 “关键词2”:带有此关键词的文档ID列表。
'''
inverted_index = {}
for doc_id, words in forward_index.items():
 for word_id in words.keys():
  if word_id not in inverted_index.keys():
   inverted_index[word_id] = [doc_id]
  elif doc_id not in inverted_index[word_id]:
   inverted_index[word_id].append(doc_id)
print 'inverted_index:', inverted_index

输入(文档id:单词id):

1 3,4 
2 3,4,2,4 
3 2

输出:

forward_index: {1: {3: [0], 4: [1]}, 2: {2: [2], 3: [0], 4: [1, 3]}, 3: {2: [0]}} 
inverted_index: {2: [2, 3], 3: [1, 2], 4: [1, 2]}

以上这篇python 实现倒排索引的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
浅析Python中的序列化存储的方法
Apr 28 Python
使用Python绘制图表大全总结
Feb 11 Python
Python正则表达式知识汇总
Sep 22 Python
Python编程实现蚁群算法详解
Nov 13 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
使用python绘制二元函数图像的实例
Feb 12 Python
python交互界面的退出方法
Feb 16 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
Apr 12 Python
Django 缓存配置Redis使用详解
Jul 23 Python
python数据类型之间怎么转换技巧分享
Aug 20 Python
python的mysql数据库建立表与插入数据操作示例
Sep 30 Python
pycharm 快速解决python代码冲突的问题
Jan 15 Python
python截取两个单词之间的内容方法
Dec 25 #Python
python正则表达式匹配[]中间为任意字符的实例
Dec 25 #Python
python匹配两个短语之间的字符实例
Dec 25 #Python
python读取目录下最新的文件夹方法
Dec 24 #Python
使用Python 正则匹配两个特定字符之间的字符方法
Dec 24 #Python
python实现简单flappy bird
Dec 24 #Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
Dec 24 #Python
You might like
微信公众平台接口开发入门示例
2014/12/24 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
PHP模板解析类实例
2015/07/09 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
AngularJS基础 ng-if 指令用法
2016/08/01 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
python逆序打印各位数字的方法
2018/06/25 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
Python API自动化框架总结
2019/11/12 Python
利用python3 的pygame模块实现塔防游戏
2019/12/30 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
python实现猜拳游戏项目
2020/11/30 Python
python中字符串的编码与解码详析
2020/12/03 Python
先进党支部事迹材料
2014/01/13 职场文书
师德师风自查材料
2014/10/14 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
未中标通知书
2015/04/17 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
python基于tkinter实现gif录屏功能
2021/05/19 Python
golang操作rocketmq的示例代码
2022/04/06 Golang