0
我使用gensim構建一個LSI語料庫,然後應用以下gensim教程查詢相似(tut1,tut2ñtut3)doc2id測繪在gensim
我問題是,當我嘗試calcualte查詢相似如圖所示下面的代碼我以(docID,simScore)元組的形式得到結果。
我需要使用docID來檢索文檔的字符串表示形式。 (類似於corpora.Dictionary
的token2id映射)
谷歌搜索,我無法找到任何有用的
我的代碼搜索
def search(self):
#Load necessary information
dictionary = corpora.Dictionary.load('dictionary.dict')
corpus_tfidf = corpora.MmCorpus('corpus.mm') # comes from the first tutorial, "From strings to vectors"
#print(corpus_tfidf)
#Generate LSI model
#lsi = models.LsiModel(corpus, id2word=dictionary, num_topics=2)
lsi = LsiModel(corpus_tfidf,num_topics=2)
#construct index
index = similarities.MatrixSimilarity(lsi[corpus_tfidf]) # transform corpus to LSI space and index it
#Construct query vector
doc = "Human machine interface for lab abc computer applications"
vec_bow = dictionary.doc2bow(doc.lower().split())
vec_lsi = lsi[vec_bow] # convert the query to LSI space
#Calcualte similarity
sims = index[vec_lsi] # perform a similarity query against the corpus
sims = sorted(enumerate(sims), key=lambda item: -item[1])
print(sims) # print sorted (document number, similarity score) 2-tuples
結果樣品
[(1, 0.9962855), (4, 0.99420911), (2, 0.98064679), (3, 0.97580492), (0, 0.9755646), (8, 0.34740543), (6, 0.1566827), (7, 0.15566549), (5, 0.13825497)]