【问题标题】:Pickle with modulenotfound未找到模块的泡菜
【发布时间】:2020-12-03 01:29:25
【问题描述】:

我正在尝试重现此存储库中的结果:https://github.com/danielricks/scholar。我没有 Linux,因此无法安装代码使用的 word2vec 包,但无论如何它仅用于加载预训练的 word2vec 模型,因此 Gensim 应该可以完成这项工作。

问题是scholar使用的预训练模型存储在pickle文件中(在“已处理文件”下的Readme提供),postagged_wikipedia_for_word2vec_30kn3kv.pkl

当我尝试打开此文件时,我收到 ModuleNotFoundError No module named 'word2vec'。我进入泡菜文件(在记事本中)并将开头附近的word2vec 更改为gensim.models.word2vec,但后来我得到了ModuleNotFoundError No module named 'gensim.models.word2vec'

我使用 Windows,所以 word2vecnot really feasible 来安装。这就是为什么我在这里尝试想出一种使用 Gensim 的方法。

【问题讨论】:

    标签: python pickle gensim


    【解决方案1】:

    尝试在您尝试加载 pickle 对象的脚本中导入 gensim

    使用pickle时,需要在加载pickle的脚本中导入依赖模块,避免pickle和存储整个模块。

    【讨论】:

      【解决方案2】:

      如果您需要加载此模块的pickle 文件,基于它使用的任何word2vec 包中的类对象,您需要有相同的word2vec 代码可用。 (Gensim 也提供了一些类似的功能这一事实并不意味着它的代码足以根据其他代码解开对象。)

      您可以尝试以下一项或多项:

      • 使用该项目中包含的较大的.bin 文件,这可能是GensimKeyedVectors可以 使用load_word2vec_format(filename, binary=True) 加载的数据形式。 (他们认为太大而不实用,当这段代码在大约 5 年前创建时,在您当前的机器上可能没有问题。您可能需要更新使用旧 word2vec 代码的其他代码行方法。)

      • 切换到 Linux - Python 文本处理和机器学习中涉及的许多库主要是在 Linux 上开发、测试和使用的,因此您通常在 Linux 上遇到的安装/依赖关系/配置问题要少得多

      • 了解如何在 Windows 上安装 word2vec.c 可执行文件 – 另一个答案遇到 'bin\word2vec': doesn't exist 错误,这是因为该本地编译的可执行文件不存在,而且似乎该项目的 Python word2vec 模块依赖于那。某个地方的某个人可能已经想出了如何进行该编译。 (您链接的提问者似乎没有尝试过单独的手动步骤。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-11
        • 2018-04-15
        • 2020-09-28
        • 1970-01-01
        • 2020-09-24
        • 1970-01-01
        • 1970-01-01
        • 2018-10-23
        相关资源
        最近更新 更多