Python Gensim: ¿cómo calcular la similitud de documentos utilizando el modelo LDA?

Tengo un modelo LDA entrenado y quiero calcular la puntuación de similitud entre dos documentos del corpus en el que entrené a mi modelo. Después de estudiar todos los tutoriales y funciones de Gensim, todavía no puedo entenderlo. ¿Alguien puede darme una pista? ¡Gracias!

No sé si esto ayudará, pero logré resultados exitosos en la coincidencia de documentos y similitudes al usar el documento real como una consulta.

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 

Tu puntuación de similitud entre todos los documentos que residen en el corpus y el documento que se usó como consulta será el segundo índice de cada sim para sims.

Depende de la métrica de similitud que quieras usar.

La similitud de coseno es universalmente útil e integrada :

 sim = gensim.matutils.cossim(vec_lda1, vec_lda2) 

La distancia de Hellinger es útil para la similitud entre las distribuciones de probabilidad (como los temas de LDA):

 import numpy as np dense1 = gensim.matutils.sparse2full(lda_vec1, lda.num_topics) dense2 = gensim.matutils.sparse2full(lda_vec2, lda.num_topics) sim = np.sqrt(0.5 * ((np.sqrt(dense1) - np.sqrt(dense2))**2).sum())