首页 > 解决方案 > 包装器的 Genism 模块属性错误

问题描述

我将找到 LDA 的最佳主题数量。为此,我使用 GENSIM 如下:

def compute_coherence_values(dictionary, corpus, texts, limit, start=2, step=3):
    coherence_values = []
    model_list = []
    for num_topics in range(start, limit, step):
        model = gensim.models.wrappers.LdaMallet(mallet_path, corpus=corpus, num_topics=num_topics, id2word=id2word)
        model_list.append(model)
        coherencemodel = CoherenceModel(model=model, texts=texts, dictionary=dictionary, coherence='c_v')
        coherence_values.append(coherencemodel.get_coherence())

    return model_list, coherence_values

    

但是我有一个属性错误:我使用了 spyder。

AttributeError: module 'gensim.models' has no attribute 'wrappers'

标签: pythongensimldatopic-modeling

解决方案


最新的主要 Gensim 版本 4.0 删除了wrappers其他库算法。根据“从 Gensim 3.x 迁移到 4”wiki 页面

15.删除第三方包装

这些 3rd 方库的包装器需要付出太多的努力。在 Gensim 中没有志愿者来适当地维护和支持他们。

如果您的工作依赖于以下任何模块,请随意将其从 Gensim 3.8.3(它们出现的最后一个版本)中复制出来,并自己扩展和维护包装器。

删除的子模块是:

- gensim.models.wrappers.dtmmodel
- gensim.models.wrappers.ldamallet
- gensim.models.wrappers.ldavowpalwabbit
- gensim.models.wrappers.varembed
- gensim.models.wrappers.wordrank
- gensim.sklearn_api.atmodel
- gensim.sklearn_api.d2vmodel
- gensim.sklearn_api.ftmodel
- gensim.sklearn_api.hdp
- gensim.sklearn_api.ldamodel
- gensim.sklearn_api.ldaseqmodel
- gensim.sklearn_api.lsimodel
- gensim.sklearn_api.phrases
- gensim.sklearn_api.rpmodel
- gensim.sklearn_api.text2bow
- gensim.sklearn_api.tfidf
- gensim.sklearn_api.w2vmodel
- gensim.viz

如果您迫切需要旧的支持,您还可以考虑安装和使用旧的 Gensim。(例如,通过pip, pip install gensim==3.8.3。)但一般来说,最新版本将得到最好的支持。


推荐阅读