繁体   English   中英

比较多个字符串与随机起始点之间的相似性

[英]Comparing similarity between multiple strings with a random starting point

我有一堆人名与他们各自的识别号码相关联(例如社会安全号码/国民身份证/护照号码)。 但由于重复,一个身份号码最多可以有100个名称,这些名称可能相似或完全不同。 例如,ID 221可以有Richard Parker, Mary Parker, Aunt May, Parker Richard, M@rrrrryy Richard等等。有些错别字但有些名字完全不同。

最初,我想只显示与其他名称尽可能不同的3个(或类似的小数字)名称,以提醒观众多个名字不能是错别字,但甚至可能是身份盗用的情况或疏忽数据捕获或其他任何东西!

我已经阅读了关于一个算法来检测相似,我目前在看这一个 ,这将允许您以计算得分和1分意味着两个字符串是相同的,而分数较低意味着它们是不同的。 在我的用例中,我如何通过说100个名称并显示最不相似的3个? 这个算法只是逃避了我的想法,因为我觉得我需要一个起点然后查看和比较所有其他人并再次循环等等

如您所述,从https://stackoverflow.com/a/14631287/1082673获取该功能,并迭代列表中的所有组合。 如果您没有那么多条目,这将有效,否则计算时间可以快速增加...

以下是为给定列表生成对的方法:

import itertools

persons = ['person1', 'person2', 'person3']

for p1, p2 in itertools.combinations(persons, 2):
    print "Compare", p1, "and", p2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM