Python 名称错误:名称';dot';使用word2vec计算相似度时未定义
我使用此函数使用word2vec计算相似性 我用了keras和tensorflowPython 名称错误:名称';dot';使用word2vec计算相似度时未定义,python,tensorflow2.0,word2vec,tf.keras,Python,Tensorflow2.0,Word2vec,Tf.keras,我使用此函数使用word2vec计算相似性 我用了keras和tensorflow def cosine_distance (model, word,target_list , num) : cosine_dict ={} word_list = [] a = model[word] for item in target_list : if item != word : b = model [item]
def cosine_distance (model, word,target_list , num) :
cosine_dict ={}
word_list = []
a = model[word]
for item in target_list :
if item != word :
b = model [item]
cos_sim = dot(a, b)/(norm(a)*norm(b))
cosine_dict[item] = cos_sim
dist_sort=sorted(cosine_dict.items(), key=lambda dist: dist[1],reverse = True) ## in Descedning order
for item in dist_sort:
word_list.append((item[0], item[1]))
return word_list[0:num]
# only get the unique Maker_Model
Maker_Model = list(df.Maker_Model.unique())
# Show the most similar Mercedes-Benz SLK-Class by cosine distance
cosine_distance (model,'Mercedes-Benz SLK-Class',Maker_Model,5)
并收到此错误:
NameError Traceback (most recent call last)
<ipython-input-29-584408bf6259> in <module>
17
18 # Show the most similar Mercedes-Benz SLK-Class by cosine distance
---> 19 cosine_distance (model,'Mercedes-Benz SLK-Class',Maker_Model,5)
<ipython-input-29-584408bf6259> in cosine_distance(model, word, target_list, num)
6 if item != word :
7 b = model [item]
----> 8 cos_sim = dot(a, b)/(norm(a)*norm(b))
9 cosine_dict[item] = cos_sim
10 dist_sort=sorted(cosine_dict.items(), key=lambda dist: dist[1],reverse = True) ## in Descedning order
NameError: name 'dot' is not defined
namererror回溯(最近一次调用)
在里面
17
18#通过余弦距离显示最相似的梅赛德斯-奔驰SLK车型
--->19余弦距离(型号,“梅赛德斯-奔驰SLK级”,制造商型号,5)
余弦距离(型号、单词、目标列表、数值)
6如果项目!=字:
7 b=型号[项目]
---->8 cos_sim=dot(a,b)/(范数(a)*范数(b))
9余弦dict[项目]=余弦sim
10 dist_sort=按描述顺序排序(余弦dict.items(),key=lambda dist:dist[1],reverse=True)
名称错误:未定义名称“dot”
我尝试更新tensorflow和keras,正如网站上的一个答案所建议的那样,但无法修复。我该如何解决这个问题?
请帮帮我。基本上,
dot
不被认为是一种方法
要解决此问题,您需要执行以下操作之一:
dot
方法。像这样:将numpy导入为np
...
np.dot(a,b)/(范数(a)*范数(b))
dot
方法def点(x,y):
...
dot
方法dot
方法调用前面加上模块名,因为您要导入的是方法,而不是模块
来自numpy导入点
这里,我使用numpy作为示例库,但它可以是包含dot
方法的任何库:
- 等