algorithm - 计算两个对象列表之间的相似度

标签 algorithm similarity information-retrieval cosine-similarity

我想计算两个不同长度列表之间的相似度。特别是,相似性必须考虑不同的条件:

-给定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 表示两个列表相似。

余弦相似度可能与这个问题有关,但我不知道如何使用子集和阈值。

我也发现了不同的方法,但是没有指定阈值参数:

- A Similarity Measure for Indefinite Rankings

- Kendall rank correlation coefficient

最佳答案

我认为您正在寻找某种集合相似性。

两个最突出的措施是 Jaccard IndexSørensen–Dice coefficient

关于algorithm - 计算两个对象列表之间的相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49044480/

相关文章:

string - 查找可能的字符串变体数量的算法

java - 计算标准偏差的在线算法

python-3.x - 如何根据特定标准从一组中找到与我的测试项目最相似的项目?

java - 用 Java 读取大型 XML 文件的最快方法

algorithm - 不使用循环对字符串列表进行排序的伪代码

algorithm - 大O记法——循环的疑惑

python - 如何使用RDKit计算SMILE结构列表的分子指纹和相似度?

Python - 如何通过保持 K 个最大值来减少每行或对称矩阵的条目数

java - 无监督命名实体识别(NER),带有自定义控制的词汇表,用于 Java 中的交联建议

indexing - 如何建立一个简单的倒排索引?