После обучения модели LDA на модели Gensim LDA я преобразовал модель в a с молотком Gensim с помощью функции malletmodel2ldamodel
, предоставляемой с оберткой.До и после конвертации тематическое распределение слов совсем другое.Версия для молотка возвращает очень редкое распределение тематических слов после преобразования.
ldamallet = gensim.models.wrappers.LdaMallet(mallet_path, corpus=corpus, num_topics=13, id2word=dictionary)
model = gensim.models.wrappers.ldamallet.malletmodel2ldamodel(ldamallet)
model.save('ldamallet.gensim')
dictionary = gensim.corpora.Dictionary.load('dictionary.gensim')
corpus = pickle.load(open('corpus.pkl', 'rb'))
lda_mallet = gensim.models.wrappers.LdaMallet.load('ldamallet.gensim')
import pyLDAvis.gensim
lda_display = pyLDAvis.gensim.prepare(lda_mallet, corpus, dictionary, sort_topics=False)
pyLDAvis.display(lda_display)
malletmodel2ldamodel ">
Вот результат оригинальной реализации gensim:
Я вижу, что в этой проблеме была ошибка, которая была исправлена в предыдущих версиях gensim.Я использую gensim = 3.7.1