为什么gensim.models.ldamodel会报错__init__() got an unexpected keyword argument 'workers
时间: 2023-09-30 11:11:42 浏览: 69
这个错误通常是因为你使用的 gensim 版本太旧,而你在初始化 LdaModel 时使用了参数 `workers`。`workers` 参数是用来指定训练 LDA 模型时使用的线程数的,它需要 gensim 版本至少为 3.6.0 才支持。如果你的 gensim 版本较旧,则会出现这个错误。
你可以通过升级 gensim 来解决这个问题。可以使用以下命令在命令行中升级:
```
pip install --upgrade gensim
```
如果你使用的是 Anaconda,可以使用以下命令升级:
```
conda update gensim
```
如果你希望保留旧版本的 gensim,并且仍然想使用 `workers` 参数,你可以使用 `LdaMulticore` 类代替 `LdaModel`。`LdaMulticore` 是一个多核版本的 LDA 模型,它可以在 gensim 旧版本中使用 `workers` 参数。
相关问题
gensim.models.ldamodel.LdaModel的print_topics可以控制输出的小数点位数嘛?print_topics() got an unexpected keyword argument 'minimum_probability'
可以通过设置format参数来控制输出的小数点位数。例如,设置format='%.3f'可以输出小数点后三位。
示例代码如下:
```
from gensim.models.ldamodel import LdaModel
# 加载LDA模型
lda_model = LdaModel.load('lda_model')
# 输出主题
topics = lda_model.print_topics(num_topics=10, num_words=10, formatted=True, format='%.3f')
for topic in topics:
print(topic)
```
关于`print_topics()`方法中出现`got an unexpected keyword argument 'minimum_probability'`的错误,可能是因为你的gensim版本过低,可以尝试升级到最新版本。另外,`minimum_probability`参数已被弃用,可以使用`minimum_phi_value`代替。
gensim.models.ldamodel.LdaModel的print_topics可以控制输出的小数点位数嘛?
可以的,`print_topics()`方法有一个参数`num_words`,它用于指定每个主题输出的单词数量,默认值为10。此外,`LdaModel`类有一个属性`minimum_probability`,它用于指定输出的小概率阈值,默认值为0.01。你可以通过修改这两个值来控制输出结果的小数位数。例如,以下代码将每个主题输出的单词数量设置为5,输出概率阈值设置为0.001:
```python
from gensim.models.ldamodel import LdaModel
lda = LdaModel(corpus, num_topics=10, id2word=dictionary)
lda.print_topics(num_words=5, minimum_probability=0.001)
```
输出结果将只显示每个主题的5个单词,并且输出的概率值小于0.001的单词将被过滤掉。你可以根据需要修改这两个参数来获得你想要的输出结果。