pyLDAvis с реализацией Mallet LDA: объект LdaMallet не имеет атрибута «вывод»

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

'LdaMallet' object has no attribute 'inference'

Мой код:

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

person Saguaro    schedule 15.05.2018    source источник


Ответы (3)


Запустите эту строку, чтобы преобразовать класс вашей модели молотка в 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

person klvt    schedule 22.05.2018
comment
Могу подтвердить кажущиеся случайными термины на переделанных молотком темы. Я в настоящее время также изучаю это. - person WolfgangK; 24.05.2018
comment
Я думаю, что проблема была решена в версии gensim 3.7.0 github .com/RaRe-Technologies/gensim/releases/tag/3.7.0 - person Shivam Agrawal; 13.02.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
person Kid Yonatan Valeriano Valdez    schedule 31.01.2019

Я нашел этот сообщение в блоге полезным, непосредственно используя файл состояния, созданный MALLET. который также производится с использованием обертки Gensim's Mallet.

person J.Schneider    schedule 27.04.2021