2017-05-24 1 views
0

J'ai implémenté la recherche de documents similaires basés sur un document particulier en utilisant le modèle LDA (en utilisant Gensim). La prochaine chose que je veux faire est de savoir si j'ai plusieurs documents puis comment obtenir un document similaire en fonction des documents multiples fournis en entrée.comment calculer la similarité de document en utilisant plus d'une requête?

I mis en œuvre à l'aide de cette LDA link

exemple de code pour la requête unique -

dictionary = corpora.Dictionary.load('dictionary.dict') 
corpus = corpora.MmCorpus("corpus.mm") 
lda = models.LdaModel.load("model.lda") #result from running online lda (training) 

index = similarities.MatrixSimilarity(lda[corpus]) 
index.save("simIndex.index") 

docname = "docs/the_doc.txt" 
doc = open(docname, 'r').read() 
vec_bow = dictionary.doc2bow(doc.lower().split()) 
vec_lda = lda[vec_bow] 

sims = index[vec_lda] 
sims = sorted(enumerate(sims), key=lambda item: -item[1]) 
print sims 

Maintenant, si j'ai une autre doc alors comment la mettre en œuvre.

Répondre

0

Vous pouvez utiliser lda.update(corpus_new) pour mettre à jour les modèles LDA existants avec des documents supplémentaires.

Pour plus de détails - https://radimrehurek.com/gensim/models/ldamodel.html

+0

J'ai demandé l'évaluation de plusieurs doc. pas la mise à jour. – abhishek

+0

@abhishek pourriez-vous élaborer votre doute s'il vous plaît, si vous avez plusieurs documents et vous voulez les fournir en entrée à la fois, alors vous pouvez diffuser les entrées en utilisant le générateur. La mise à jour est utilisée lorsque vous devez ajouter des documents après l'entraînement d'un modèle. S'il vous plaît voir le lien que j'ai fourni dans la réponse ci-dessus. J'espère que cela aide –