我想计算两个不同长度列表之间的相似度。特别是,相似性必须考虑不同的条件:
-给定2个列表A和B,如果A=B则similarity(A,B)=1
-一般来说,如果B包含A,那么相似度(A,B)->1。但是,相似度的度量还应考虑两个列表的元素数量。 (例如,如果 A 包含 1000 个对象,而 B 仅包含一个对象,且该对象也包含在 A 中,则相似度 (A,B)->0)。
-Similarity(A,B) 还定义了一个阈值 T。相似度值大于 T 表示两个列表相似。
余弦相似度可能与这个问题有关,但我不知道如何使用子集和阈值。
我也发现了不同的方法,但是没有指定阈值参数:
最佳答案
我认为您正在寻找某种集合相似性。
两个最突出的措施是 Jaccard Index和 Sørensen–Dice coefficient
关于algorithm - 计算两个对象列表之间的相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49044480/