我有一个清单:list = ['item1', 'item2', 'item3', 'item4']
我想比较所有项目的相似性。
如果item2
和item3
相似,则结果变为list = ['item1', 'item2', 'item4']
编辑:
抱歉我的困惑问题。
列表项是一组三元组。我想删除列表中的类似项目。
list = [('very','beauty','place'),('very','good','place'),('another','trigram','item')]
通过计算该列表中每个对项的 jaccard 相似度,如果对项的 jaccard 分数 > 0.4,我称之为相似。在此示例中,item1 和 item2 相似。我想要的最后一个输出是:
list = [('very','beauty','place'),('another','trigram','item')]
这是计算jaccard分数的方法:
def compute_jaccard_index(set_1, set_2):
n = len(set_1.intersection(set_2))
return n / float(len(set_1) + len(set_2) - n)