当前位置: 首页 > 编程笔记 >

python 实现倒排索引的方法

尉迟韬
2023-03-14
本文向大家介绍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 实现倒排索引的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Elasticsearch的倒排索引是什么?相关面试题,主要包含被问及Elasticsearch的倒排索引是什么?时的应答技巧和注意事项,需要的朋友参考一下 面试官:想了解你对基础概念的认知。 解答:通俗解释一下就可以。 倒排索引是搜索引擎的核心。搜索引擎的主要目标是在查找发生搜索条件的文档时提供快速搜索。倒排索引是一种像数据结构一样的散列图,可将用户从单词导向文档或网页。它是搜索引

  • 本文向大家介绍Python搜索引擎实现原理和方法,包括了Python搜索引擎实现原理和方法的使用技巧和注意事项,需要的朋友参考一下 如何在庞大的数据中高效的检索自己需要的东西?本篇内容介绍了Python做出一个大数据搜索引擎的原理和方法,以及中间进行数据分析的原理也给大家做了详细介绍。 布隆过滤器 (Bloom Filter) 第一步我们先要实现一个布隆过滤器。 布隆过滤器是大数据领域的一个常见算

  • 本文向大家介绍Python实现迭代时使用索引的方法示例,包括了Python实现迭代时使用索引的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现迭代时使用索引的方法。分享给大家供大家参考,具体如下: 索引迭代 Python中,迭代永远是取出元素本身,而非元素的索引。 对于有序集合,元素确实是有索引的。有的时候,我们确实想在 for 循环中拿到索引,怎么办? 方法是使用

  • 本文向大家介绍Python实现GIF图倒放,包括了Python实现GIF图倒放的使用技巧和注意事项,需要的朋友参考一下 前言 GIF图现在已经融入了我们的日常网络生活,微信群、QQ群、朋友圈......一言不合就斗图,你怕了吗?不用担心,只要学会了Python之GIF倒放技能,你就是“斗图王”。 咱们直接开始本文的内容! PIL(Python Image Library) 它是python的第三方

  • 本文向大家介绍JavaScript实现数字数组按照倒序排列的方法,包括了JavaScript实现数字数组按照倒序排列的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript实现数字数组按照倒序排列的方法。分享给大家供大家参考。具体如下: 下面的代码演示了JS数组如何通过sort对数字类型的数组进行倒序排序 上面的代码输出结果如下 100,40,25,10,5,1 希望本文

  • 例如,如果一个单词'a'的倒排索引包含10000个文档,在搜索'a'时,如果Lucene搜索了10个结果,那么Lucene会遍历这10000个文档,然后返回10个结果吗?还是当检索到足够的结果时,即使它没有到达倒排索引的末尾,也会返回10个结果?