Python:比较2组数据,得出最佳匹配和匹配%

时间:2017-01-05 02:58:24

标签: python fuzzy-search fuzzy-logic

我在这个主题上看过很多问答,但没有一个包含我正在寻找的输出类型。任何关于此的智慧言论都将非常感激!

  • 我有2个列表......这两个列表包含1列,由全名|大学组成(即名称和大学,连接,并用管道分隔)
  • 由于昵称和大学缩写,并不总是完全匹配。我想将列表1中的每个记录与列表2中的每个记录进行比较,并找到最接近的匹配。
  • 然后我要生成一个包含3列的输出文件:列表1中的每个项目,列表2中最接近的匹配项以及匹配项%。

有没有人可以分享他们可以分享的示例代码?谢谢!

1 个答案:

答案 0 :(得分:0)

为了帮助您入门,这里有一个答案可以提供全名或大学的匹配 - 您可以将其扩展为包含模糊搜索使用像fuzzywuzzy这样的库:

  1. 对于这两个列表,将每个字符串拆分为[全名,大学]列表(如果某些字符串不包含'|'字符,则可能需要将其包装在{{1}中}或try, except语句:

    if

  2. 运行以下命令以匹配任一元素(假设一个列表被调用new_list = [item.split('|') for item in old_list]而另一个列表被称为list1):

    list2