ModuleNotFoundError:没有名为“gensim.models.wrappers”的模块

问题描述

我正在尝试使用 LDA MAllet 模型。但我面临“没有名为‘gensim.models.wrappers’的模块”错误

  • 我已经安装了 gensim 并且“gensim.models.Ldamulticore”工作正常。

  • Java 开发人员工具包已安装

  • 我已经下载了 mallet-2.0.8.zip 并将其解压到 c:\ 驱动器上。

  • 这是我要使用的代码

    import os
    from gensim.models.wrappers import Ldamallet
    os.environ.update({'MALLET_HOME':r'C:/mallet-2.0.8/'}) 
    mallet_path = r'C:/mallet-2.0.8/bin/mallet' 
    
    

有谁知道这里出了什么问题?非常感谢!

解决方法

如果您安装了最新的 Gensim 4.0.0(截至 2021 年 3 月下旬),则 LdaMallet 模型以及许多其他仅包含外部工具/API 的工具已被删除。

您可以在 Gensim 迁移指南中查看注释:

https://github.com/RaRe-Technologies/gensim/wiki/Migrating-from-Gensim-3.x-to-4#15-removed-third-party-wrappers

如果该工具的使用对您的项目至关重要,您可以:

  • 安装旧版本的 Gensim,例如 3.8.3 - 当然,您随后会错过您正在使用的任何其他 Gensim 模型的最新修复和优化

  • 提取 ldamallet.py source code from that older version 并将其更新/移动到您自己的代码以供私人使用 - 处理出现的任何问题

,

我在使用 Gensim 的 MALLET 包装器时遇到了同样的问题,但不想降级。这个新包装器似乎可以很好地完成这项工作。

https://github.com/maria-antoniak/little-mallet-wrapper/blob/master/demo.ipynb