python 倒排索引 性能_python 实现倒排索引的方法
代码如下:
#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 实现倒排索引的方法相关推荐
- python 爬虫性能_Python 爬虫性能相关总结
这里我们通过请求网页例子来一步步理解爬虫性能 当我们有一个列表存放了一些url需要我们获取相关数据,我们首先想到的是循环 简单的循环串行 这一种方法相对来说是最慢的,因为一个一个循环,耗时是最长的,是 ...
- python js 性能_Python Json使用,Json库性能测试
介绍 官网:https://www.json.org/json-zh.html 中文介绍:https://www.json.cn/wiki.html 中文介绍:https://developer.mo ...
- [转载] python histogram函数_Python numpy.histogram_bin_edges函数方法的使用
参考链接: Python中的numpy.ceil numpy.histogram_bin_edges numpy.histogram_bin_edges(a, bins=10, range=None, ...
- python字符串截取_Python容器类型公共方法汇总
以下公共方法支持列表,元组,字典,字符串. 内置函数 Python 包含了以下内置函数: 函数描述备注len(item)计算容器中元素个数del(item)删除变量del 有两种方式max(item) ...
- python ctime函数_Python中的ctime()方法使用教程
ctime()方法转换,因为历元到表示本地时间的字符串表示以秒为单位的时间.如果不设置秒时或None,所返回的时间的当前time()被使用.使用asctime(localtime(secs)).不使用 ...
- python保存数据_Python 保存数据的方法(4种方法)
Python 保存数据的方法: open函数保存 使用with open()新建对象 写入数据(这里使用的是爬取豆瓣读书中一本书的豆瓣短评作为例子) import requests from lxml ...
- python 创建子类_python创建子类的方法分析
本文实例讲述了python创建子类的方法.分享给大家供大家参考,具体如下: 如果你的类没有从任何祖先类派生,可以使用object作为父类的名字.经典类的声明唯一不同之处在于其没有从祖先类派生---此时 ...
- python迭代器使用_python迭代器的使用方法实例
什么是迭代器?迭代器是带有next方法的简单对象,当然也要实现__iter__函数.迭代器能在一序列的值上进行迭代,当没有可供迭代时,next方法就会引发StopIteration 的异常.pytho ...
- python画正方体_python绘制立方体的方法
本文实例为大家分享了python绘制立方体的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # This is (almost) a direct C++ to Pyt ...
最新文章
- 【JUC并发编程03】线程间通信
- android 开发中的常见问题
- ios点击大头针气泡不弹出_画家双手抖不停,画不了画丢了工作,却迎合抖动创造出一个个奇迹...
- python 递归函数与循环的区别_提升Python效率之使用循环机制代替递归函数
- 深入了解Delphi 7中的四种消息框
- Python精确指南——第四章-部署和技巧
- Tomcat学习总结(15)—— Apache Tomcat各版本比较
- java获取响应网页源代码
- mineData地图添加自定义Maker图标
- php 网贷 源码,thinkphp仿百度钱包网贷借款源码
- VBA系列(1)——VBA基础知识
- 江苏省淮安市谷歌高清卫星地图下载
- Codesys学习调试笔记2
- docker装LibreELEC_如何在LibreELEC上安装Entware?
- win10 不小心卸载产品密钥
- 微信小程序扫一扫和微信自带的扫一扫 获取二维码的url包括参数数据
- LDPC译码:和积译码算法(SPA)、最小和算法(MSA)、分层译码算法(LBP)、动态信息更新策略IDS(含RBP、NW-RBP、SVNF-RBP)的MATLAB实现
- 2022年自考专业考试(英语)英语翻译练习题
- 机器学习基础——先验概率、后验概率和似然估计的讲解;频率派和贝叶斯派之分;以及MLE和MAP方法的解析
- 大厂HR:我让你测试一个(电梯、杯子、笔、桌子、洗衣机),你会怎么测试它?
热门文章
- 第四节:EF Core的并发处理
- javaScript今日总结
- Jenkins配置与使用
- NSMapTable
- javaweb(三十八)——mysql事务和锁InnoDB(扩展)
- js 对已知数组数据的导出EXCEL
- eclispe设置workspace text file encoding
- 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
- 训练(线段树+树状数组) poj——3264
- 系统带你学习 WebAPIs 第一讲