用于在Python中匹配具有类似ID字符串的两个集合的分类器

我有2组数据,它们具有共同的功能集,但ID名称的标签不同.

我想看看是否有一个最佳分类器可以帮助我选择哪些名称匹配是基于这些功能的最佳选择.

第1组看起来像:

Name         ID1           code1          move1        year
Highland     1             nc             st           2002
Highland     4             nc             st           2001
Highland     gt3           nc             st           2002
Highland     gt2           nc             st           2003
Mark         wt1           ns             st           2000
Mark         ws1           ns             st           1945
Mark         ost6          nc             ct           2002
Niko         1             ng             ct           2000
.
.

第2组看起来像:

Name         ID2           code2          move2        year
Highland     gt1           nc             st           2002
Highland     gt3           nc             st           
Highland     2             nc             st           2003
Highland     gt4           nc             st           2001
Mark         t1            ns             st           2000
Mark         s1            nsi            st           
Mark         ost6          nci            ct           2002
Niko         1             ngi            ct           2000
.
.

正如您所看到的,两个集合之间存在一些差异,但Name始终相同 – ID有时几乎匹配,有时完全匹配.其他时候代码或移动匹配或接近,有时几年只缺少一组.

我已经计算出使用Levenshtein距离来模拟这些ID的模糊比率,但它们还不足以让我真正做出很好的匹配.

有没有办法可以使用像SVM这样的东西更好地识别这些ID?

最佳答案 尝试使用fuzz.token_set_ratio()而不是fuzzy.ration().

使用fuzz.token_set_ratio(),您将获得良好的匹配.

有关更多信息,请访问docs.

点赞