**如下:
#iasnkkvyxyencoding: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('www.cppcns.com,')
for i, index in enumerate(words):
if int(index) not in forward_iwww.cppcns.comndex[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: , 2: , 3: www.cppcns.com}
inverted_index:
本文標題: python 實現倒排索引的方法
本文位址: /jiaoben/python/248449.html
實現倒排索引
倒排索引就是反向索引,一般索引指的是根據記錄位置來查詢值,而倒排索引的原理是 根據屬性的值來查詢記錄位置。比如說,現在有這些文章以及文章中含有的單詞。以英文為例,下面是要被索引的文字 文字0 it is what it is 文字1 what is it 文字2 it is a banana 我們就...
python 實現倒排索引,建立簡單的搜尋引擎
本文將用python實現倒排索引 如下,乙個資料表docu set中有三篇文章的,d1,d2,d3,如下 docu set 下面用這張表做乙個簡單的搜尋引擎,採用倒排索引 首先對所有文件做分詞,得到文章的詞向量集合 all words for i in docu set.values cut jie...
倒排索引C 實現
file3 單詞1,單詞a,單詞3,單詞d.那麼建立的倒排索引就是這個樣子 單詞1 file1,file3 單詞2 file1 單詞3 file1,file3 單詞a file2,file3 下面是我對於倒排索引的乙個簡單的實現。該程式實現了某目錄下的檔案單詞統計,並建立了倒排索引。標頭檔案 inv...