给出两个python列表,其中包含字符串(人名):
list_1 = ['J. Payne', 'George Bush', 'Billy Idol', 'M Stuart', 'Luc van den Bergen']
list_2 = ['John Payne', 'George W. Bush', 'Billy Idol', 'M. Stuart', 'Luc Bergen']
我想要一张最相似的名字的地图。在
^{pr2}$在python中有没有一种简洁的方法来实现这一点?名单平均包含5到6个名字。有时更多,但很少。有时它只是每个列表中的一个名字,拼写可能略有不同。在
使用此处定义的函数:http://hetland.org/coding/python/levenshtein.py
^{pr2}$你可以利用functools.partial而不是兰姆达
^{pr2}$下面是给定解决方案的一个变体,它还优化了 全局最小距离。它使用Munkres assignment algorithm 以确保弦对是最佳的。在
对于所给出的列表,其中的差异更多地源于备选方案 拼写和昵称而不是拼写错误,这种方法比 使用levenshtein或difflib。munkres模块可以在这里找到: http://software.clapper.org/munkres/
您可以尝试
difflib
:输出:
^{pr2}$相关问题 更多 >
编程相关推荐