我有一个字典列表,其属性可能与列表中的其他字典重复或相似。我想使用相似度比较函数来唯一化这个列表。如果任何 dicts 对于键“greeting”的值在一定百分比内相似,则只应保留一个。
例如,在此列表中,我只希望保留一个“hello world”:
list = [{"greeting":"HELLO WORLD!", ...}, {"greeting":"Hello Mars", ...}, {"greeting":"Hello World!!!", ...}, {"greeting":"hello world", ...}]
唯一化后,结果将是:
list = [{"greeting":"HELLO WORLD!", ...}, {"greeting":"Hello Mars", ...}
应从列表中删除所有其他具有类似问候语的字典。保留哪些类似的字典并不重要。
这是Nadia Alramli的一个函数:
def similar(seq1, seq2):
return difflib.SequenceMatcher(a=seq1.lower(), b=seq2.lower()).ratio() > 0.9