以下是代码:
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.
它正在正确安装,所以我真的不知道出了什么问题。有没有遇到过这个?
答案 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
来解决:
下载“Visual Studio 构建工具”https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019
运行 .exe 文件并选择安装 C++ 构建工具
检查在建议的安装包中是否也选择了“Windows 10 SDK”(最新版本很好),因为这是关键依赖项
安装完成后,重新打开 PowerShell/命令提示符并使用原始 pip 指令重试安装库
答案 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