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 相关文章推荐
pyqt4教程之messagebox使用示例分享
Mar 07 Python
Python自定义函数的创建、调用和函数的参数详解
Mar 11 Python
使用Python编写简单网络爬虫抓取视频下载资源
Nov 04 Python
浅谈Python中的闭包
Jul 08 Python
python简单猜数游戏实例
Jul 09 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
python实现朴素贝叶斯分类器
Mar 28 Python
Python统计单词出现的次数
Apr 04 Python
Python 移动光标位置的方法
Jan 20 Python
详解Python中的测试工具
Jun 09 Python
详解numpy.meshgrid()方法使用
Aug 01 Python
python APScheduler执行定时任务介绍
Apr 19 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
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
jquery 手势密码插件
2017/03/17 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
Vue组件化通讯的实例代码
2017/06/23 Javascript
详解Vue路由钩子及应用场景(小结)
2017/11/07 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
理解Python中的类与实例
2015/04/27 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python中什么是面向对象
2020/06/11 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
学院书画协会部门职责
2013/11/28 职场文书
执行总经理岗位职责
2014/02/03 职场文书
园艺师求职信
2014/04/27 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
效能风暴心得体会
2014/09/04 职场文书
2015新学期家长寄语
2015/02/26 职场文书
2016春节慰问信范文
2015/03/25 职场文书
升职自荐信范文
2015/03/27 职场文书
2016年入党心得体会范文
2016/01/23 职场文书