python 实现倒排索引的方法
更新时间:2018年12月25日 09:49:35 作者:涛涛不绝蕾蕾于冬
今天小编就为大家分享一篇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 实现倒排索引的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
matplotlib部件之矩形选区(RectangleSelector)的实现
这篇文章主要介绍了matplotlib部件之矩形选区(RectangleSelector)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-02-02Django 实现 Websocket 广播、点对点发送消息的代码
这篇文章主要介绍了Django 实现 Websocket 广播、点对点发送消息,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-06-06
最新评论