问题描述
祝大家圣诞节平安快乐;
我在 Pandas DataFrame 上有嵌入句子的稀疏向量,如下所示;
title_emb text_emb
[[2,6294,4076,346,10231,16068,8654,1191... [[2,11830,18726,16331,4474,4083,2654,41...
[[2,6451,6230,2513,107,12202,6538,4176,... [[2,10082,29402,4039,21982,23,4029,6766...
...
[[2,8403,8569,4234,6706,4482,23033,4136... [[2,145,4136,...
175846 rows × 2 columns
我想使用 scipy.spatial.distance.cdist 库添加不同种类的相似性,并遇到错误,我的给定数据不是二维数组。
看 scipy doc,cdist(XA,XB,'similarity_name') 其中 XA 和 XB 是 2-dim 稀疏向量
train['euclidean'] = cdist(train['title_emb'],train['text_emb'],'euclidean')
train['cosine'] = cdist(train['title_emb'],'cosine')
train['hamming'] = cdist(train['title_emb'],'hamming')
train['jaccard'] = cdist(train['title_emb'],'jaccard')
这给出了错误,但下面没有
print(cdist(train['title_emb'][175846],train['text_emb'][175846],'euclidean'))
print(cdist(train['title_emb'][175846],'cosine'))
print(cdist(train['title_emb'][175846],'jaccard'))
哪种方法应该是计算并将其保存到 DataFrame 的最快方法?
- 使用for循环,保存到列表并放入DataFrame
- 使用 df.iterrow,保存到列表并放入 DataFrame
- 有没有办法修复上面的代码并将其直接保存到DataFrame?
- 其他方式,如 df.apply(function)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)