python - 包装器的 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'
解决方案
最新的主要 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
。)但一般来说,最新版本将得到最好的支持。
推荐阅读
- swift - 将 SCNNode 排列成圆形
- c# - 如何将循环结果添加到列表
- java - Maven 不清理子项目目标文件夹
- java - 方法'布尔 android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)
- php - Yii2 使用 PHP 7 的自定义验证问题
- email - Jenkins 测试电子邮件失败,但发送了构建电子邮件
- bash - 将 GIT 命令的值存储在 Bash 变量中
- python - 当需要多个 groupby() 和 shift() 时,如何在 pandas 数据框中逐行重新计算值?
- javascript - 阅读一次性电子邮件时引发错误 - Javascript
- node.js - gulp:重新安装节点后找不到命令