所有记录的Python sklearn余弦相似度循环
Posted
技术标签:
【中文标题】所有记录的Python sklearn余弦相似度循环【英文标题】:Python sklearn cosine-similarity loop for all records 【发布时间】:2020-10-25 00:10:18 【问题描述】:我有名为 df 的数据框。 我正在使用下面的代码来获取每一行的余弦相似度:
vectorizer = CountVectorizer()
features = vectorizer.fit_transform(df['name']).todense()
for f in features:
for index, row in df.iterrows():
df['index'+str(index)] = pd.DataFrame(cosine_similarity(features,f))
df
但输出 DataFrame 对我假设它引用最后一条记录的每条记录显示相同的结果:
name index0 index1 index2 index3 index4
0 aaaabbbbbbcccc 0.158114 0.158114 0.158114 0.158114 0.158114
1 ddddffffffgggg 0.204124 0.204124 0.204124 0.204124 0.204124
2 hhhhhhiiiiiijjjjj 0.158114 0.158114 0.158114 0.158114 0.158114
3 kkkkkklllllllmmmm 0.235702 0.235702 0.235702 0.235702 0.235702
4 mmmmmnnnnnnooooooo 1.000000 1.000000 1.000000 1.000000 1.000000
我想要所有记录的输出
【问题讨论】:
【参考方案1】:您只需要IIUC:
for i, f in enumerate(features):
address['index'+str(i)] = pd.DataFrame(cosine_similarity(features,f))
address
【讨论】:
以上是关于所有记录的Python sklearn余弦相似度循环的主要内容,如果未能解决你的问题,请参考以下文章
使用 sklearn 如何计算文档和查询之间的 tf-idf 余弦相似度?