如何计算JavaScript中两个列表的相似度

benh80

我有一个包含8个项目的主列表,然后有多个列表与主列表具有相同的项目,但是其中的项目以不同的顺序出现。如何找到每个列表与主列表之间的百分比相似度?

例如,主列表可能是:

[8,7,6,5,4,3,2,1];

我想与之比较的列表之一可能是:

[8,6,4,2,7,5,3,1];

我知道我可以遍历主列表并检查是否匹配,但是有一种优雅的方法可以计算出列表中的每个数字与主列表中的相同数字有多接近?

例如:

位置0:'8'匹配位置0;0个位置差异(100%),第1个位置:“ 7”与第4个位置匹配;位置2:3位差异(57.1%),位置1匹配为“ 6”;2个职位差(71.4%)

ETC。

最终结果将是两个列表之间的百分比相似度。

杰夫·赖特

您可以使用Arraymapreduce函数:

function getSimilaritry(a, b) {
  return a.map(function(val, index) { 
    //calculate the position offset and divide by the length to get each 
    //values similarity score
    var posOffset = Math.abs(b.indexOf(val) - index); 
    return posOffset/a.length
  }).reduce(function(curr, prev) {
    //divide the current value by the length and subtract from 
    //one to get the contribution to similarity 
    return (1 - curr/a.length) + prev;
  });
}

如果不能保证列表具有相同的值,则需要为此添加处理。

另外请注意,你传递参数的顺序a,并bgetSimilarity功能会影响结果。不清楚这是否是您的应用程序遇到的问题。

PS:我认为您的问题被否决了,因为它不包含您已经尝试解决此问题的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Python中计算两个包含字符串的列表的Jaccard相似度?

如何计算两个向量的余弦相似度?

如何计算两个张量之间的余弦相似度?

计算R中两个单词的余弦相似度?

列表中两个词之间的余弦相似度

如何计算PySpark中两个向量的余弦相似度?

如何计算两个字符串列表之间的jaccard相似度距离

计算两个向量之间的相似度

合并两个 CountVectorizers 并计算余弦相似度

如何计算两个文本文档之间的相似度?

如何使用特征向量计算两个图像之间的相似度得分?

如何调试这段代码计算两个unicode文件的余弦相似度?

计算Keras中两个张量之间的余弦相似度

计算 lambda 层中两个张量向量之间的余弦相似度?

仅获取两个相似度最高的列表

计算JavaScript中两个字符串相似度的算法

如何计算两个数组之间的相似度?

如何从python中的两个一维数组绘制相似度的热图?

MATLAB:如何计算两个信号的相似度并获得正确的一致性或相干性度量

为什么gensim.word2vec中两个词袋之间的相似度以此方式计算?

如何计算两个树状图中两个个体之间或两种聚类方法之间的同位相似度?

两个RDD列表中相似键的for循环

Python,从两个列表中删除相似的值

比较两个列表中Elixir的相似性

.index() 显示列表中两个相似元素的索引

如何计算JavaScript中两个时区的时差?

Quanteda:按两个DFM之间的行计算文本相似度

我有两个公式计算“余弦相似度”,有什么区别?

如何合并两个相似的JavaScript代码块?