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

时间:2019-01-15 02:18:30

标签: python python-3.x dataframe machine-learning scikit-learn

我有两组数据,这些数据具有相同的功能集,但其ID名称带有不同的标签。

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

Set 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
.
.

Set 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有时几乎匹配,有时完全匹配。其他时间codesmoves匹配或接近时,有时年份通常只缺少一组。

我已经计算出fuzzy ratios,这些ID使用Levenshtein Distances作为ID,但不足以使我真正匹配。

是否可以使用SVM之类的方法更好地标识这些ID?

1 个答案:

答案 0 :(得分:1)

尝试使用fuzz.token_set_ratio()而不是fuzzy.ration()。 使用fuzz.token_set_ratio(),您将获得很好的匹配。

有关更多信息,请访问docs