我从两个附加文件中提取了两个数据框。我想计算文件中标记的 JaroWinkler 相似度。我正在使用下面的代码。
from similarity.jarowinkler import JaroWinkler
jarowinkler = JaroWinkler()
df_gt['jarowinkler_sim'] = [jarowinkler.similarity(x.lower(), y.lower()) for x, y in zip(df_ex['abstract_ex'], df_gt['abstract_gt'])]
我面临两个问题:
1. 代币订单未处理。当 token 'can' 和 'interesting' 的位置改变时,相似度指数计算错误!!
Unnamed: 0 abstract_gt jarowinkler_sim
0 0 Bipartite 1.000000
1 1 fluctuations 0.914141
2 2 can 0.474747 <--|
3 3 provide 1.000000 |-- Position swapped in one file
4 4 interesting 0.474747 <--|
5 5 information 1.000000
6 6 about 1.000000
7 7 entanglement 1.000000
8 8 properties 1.000000
9 9 and 1.000000
10 10 correlations 1.000000
2. 数据框的大小可能并不总是相同的。当其中一个数据框包含较少的元素时,我的解决方案会出错。
raise ValueError(ValueError: 值的长度 (10) 与索引的长度 (11) 不匹配
如何解决这两个问题并准确计算相似度?
谢谢 !!
TSV 文件
1.df_ex
abstract_ex
0 Bipartite
1 fluctuations
2 interesting
3 provide
4 can
5 information
6 about
7 entanglement
8 properties
9 and
10 correlations
df_gt
abstract_gt
0 Bipartite
1 fluctuations
2 interesting
3 provide
4 can
5 information
6 about
7 entanglement
8 properties
9 and
10 correlations