pyLDAvis с реализацией Маллет LDA: объект LdaMallet не имеет атрибута «логический вывод» - PullRequest
0 голосов
/ 15 мая 2018

возможно ли построить pyLDA в виде реализации LDA от Mallet?У меня нет проблем с LDA_Model, но когда я использую Mallet, я получаю:

'LdaMallet' object has no attribute 'inference'

Мой код:

pyLDAvis.enable_notebook()
vis = pyLDAvis.gensim.prepare(mallet_model, corpus, id2word)
vis

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Надеюсь, я помог.

from gensim.models.ldamodel import LdaModel
def convertldaGenToldaMallet(mallet_model):
    model_gensim = LdaModel(
        id2word=mallet_model.id2word, num_topics=mallet_model.num_topics,
        alpha=mallet_model.alpha, eta=0,
    )
    model_gensim.state.sstats[...] = mallet_model.wordtopics
    model_gensim.sync_state()
    return model_gensim
0 голосов
/ 22 мая 2018

Запустите эту строку, чтобы преобразовать класс вашей модели молотка в LdaModel перед pyLDAvis

[Редактировать]: отредактированный код для использования встроенной функции в gensim.Я только что попробовал, но не могу получить значимые результаты с pyLDAvis на преобразованной модели молотка;темы, кажется, содержат случайные термины .. Кто-нибудь сталкивался с этим раньше?

import gensim    
model = gensim.models.wrappers.ldamallet.malletmodel2ldamodel(mallet_model)

Получил это по ссылке ниже, изучите его, строки 565 - 590

https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/wrappers/ldamallet.py#L359

...