python - 如何在gensim中使用cosssim
问题描述
我的问题是关于 cossim 的使用。
我有一个非常大的功能的片段:
for elem in lList:
temp = []
try:
x = dict(np.ndenumerate(np.asarray(model[elem])))
except:
if x not in embedDict.keys():
x = np.random.uniform(low=0.0, high=1.0, size=300)
embedDict[elem] = x
else:
x = dict(np.ndenumerate(np.asarray(embedDict[elem])))
for w in ListWords:
try:
y = dict(np.ndenumerate(np.asarray(model[w])))
except:
if y not in embedDict.keys():
y = np.random.uniform(low=0.0, high=1.0, size=300)
embedDict[w] = y
else:
y = dict(np.ndenumerate(np.asarray(embedDict[w])))
temp.append(gensim.matutils.cossim(x,y))
我得到以下异常:
File "./match.py", line 129, in getEmbedding
test.append(gensim.matutils.cossim(x,y))
File "./Python_directory/ENV2.7_new/lib/python2.7/site-packages/gensim/matutils.py", line 746, in cossim
vec1, vec2 = dict(vec1), dict(vec2)
TypeError: cannot convert dictionary update sequence element #0 to a sequence
你能帮我解释一下这个例外是什么意思吗?
解决方案
gensim.matutils.cossim的参数应该是类型list of (int, float)
,但您使用的是字典。
异常发生在cossim
具有以下cossim 实现的函数中:
vec1, vec2 = dict(vec1), dict(vec2)
使用正确的类型,dict(vec)
可以:
dict([(1, 2.), (3, 4.), (5, 6.)])
但是如果你没有提供正确的类型,它会抛出异常,例如:
dict([1, 2, 3])
推荐阅读
- woocommerce - woocommerce api 创建订单设置行项目价格
- android - 将项目迁移到 Java 8 是否存在任何不兼容问题?
- angular - 无法使用 FileTransfer 将文件上传到服务器
- razor - 您如何订购@HTML.EditorFor 电话?
- python - 计算优化权重以最大化相关性
- c# - 在 Azure 中的 Active Directory 上验证用户身份
- struct - 使用了 unnest(),但仍然无法访问类型为 ARRAY 的值上的字段文本
>、大查询 - loopbackjs - 是否有任何环回 3 功能可以帮助修改然后构建过滤器?
- python - 如何在 django 中显示动态下拉菜单?
- java - 为什么在ios系统中不能处理Android应用程序?