即使我刚刚安装了pyemd也会出错

时间:2017-11-03 23:47:35

标签: python installation word2vec gensim

以下是代码:

from pyemd import emd

print("sentence 1:")
print(input_document_lower[0])
print("sentence 2:")
print(input_document_lower[1])
print("similarity:")
model_w2v.wmdistance(input_document_lower[0], input_document_lower[1])

这是错误:

sentence 1:
incorrect batch number printed primary label pbn
sentence 2:
unconfirmed oos met vial washing qualification sample per 
similarity:

ImportErrorTraceback (most recent call last)
<ipython-input-201-50af089a2354> in <module>()
      4 print(input_document_lower[1])
      5 print("similarity:")
----> 6 model_w2v.wmdistance(input_document_lower[0], input_document_lower[1])

C:\ProgramData\Anaconda2\lib\site-packages\gensim\models\word2vec.pyc in wmdistance(self, document1, document2)
   1308         Refer to the documentation for `gensim.models.KeyedVectors.wmdistance`
   1309         """
-> 1310         return self.wv.wmdistance(document1, document2)
   1311 
   1312     def most_similar_cosmul(self, positive=None, negative=None, topn=10):

C:\ProgramData\Anaconda2\lib\site-packages\gensim\models\keyedvectors.pyc in wmdistance(self, document1, document2)
    386 
    387         if not PYEMD_EXT:
--> 388             raise ImportError("Please install pyemd Python package to compute WMD.")
    389 
    390         # Remove out-of-vocabulary words.

ImportError: Please install pyemd Python package to compute WMD.

它正在正确安装,所以我真的不知道出了什么问题。有没有遇到过这个?

7 个答案:

答案 0 :(得分:2)

我有同样的错误,对我来说解决方案是交换:

from gensim.similarities import WmdSimilarity
from pyemd import emd

进入

from pyemd import emd
from gensim.similarities import WmdSimilarity

不要问我为什么起作用。

答案 1 :(得分:1)

解决了以下问题-

如果您的pip安装无法正常工作,请使用conda安装,而不要使用此命令

conda install -c conda-forge pyemd

我相信现在您已经成功安装了pyemd。现在,即使成功导入后,仍要解决错误问题,请执行以下操作- 在任何pyemd之前导入gensim module。我的意思是pyemd应该放在最上面。

from pyemd import emd
from gensim.similarities import WmdSimilarity
from gensim.models.doc2vec import LabeledSentence
from gensim.models.doc2vec import TaggedLineDocument

我希望您已经解决了这个问题:)

答案 2 :(得分:0)

我遇到了一些问题,我在虚拟环境中安装了这个软件包,但它不起作用。然后我重新启动了我的电脑,之后就可以了。

答案 3 :(得分:0)

添加如下所示的行

global PYEMD_EXT

在try上方:除了代码块

try:
    from pyemd import emd
    PYEMD_EXT = True
except ImportError:
    PYEMD_EXT = False

答案 4 :(得分:0)

转到keyedvectors.py文件并删除try catch块。

此:

  try:
        from pyemd import emd
        PYEMD_EXT = True
    except ImportError:
        PYEMD_EXT = False

删除导入错误提示

if not PYEMD_EXT:
            raise ImportError("Please install pyemd Python package to compute WMD.")

添加此

from pyemd import emd

要了解有关错误检查的更多信息,https://github.com/RaRe-Technologies/gensim/pull/2229/files

即使在此代码引发错误之后。一个可能的问题是您将在jupyter中运行,因此重新启动整个内核将起作用!

答案 5 :(得分:0)

在 Mac 和 Linux 上,pip install pyemd 工作正常。

但是,在 Windows 上,您可能会在安装时遇到问题。

这个错误是由于

<块引用>

pyemd 在构建期间需要一些 C++ 依赖项。

这可以通过如下安装 Build Tools for Visual Studio 2019 来解决:

答案 6 :(得分:-1)

检查wmdistance方法的文档

警告     --------     仅当安装了pyemd <https://pypi.org/project/pyemd/> _时,此方法才有效。

If one of the documents have no words that exist in the vocab, `float('inf')` (i.e. infinity)
will be returned.

Raises
------
ImportError
    If `pyemd <https://pypi.org/project/pyemd/>`_  isn't installed.

因此在使用wmdistance安装包pyemd之前

pip安装pyemd