如何计算php中两个不同长度数组的相似度百分比
我分别从两个数组中的数据库中检索了两个用户的记录。这些记录是那些像在推特上一样关注他人的人。 因为两个用户可能跟踪不同数量的人。所以这两个数组的长度是不同的。我创建了一个新的数组来存储普通人(两个用户后面都是人)。 如何获得两个用户的%相似性。假设两个用户有5个共同的追随者,那么他们的相似性比两个用户有2个共同的追随者要大如何计算php中两个不同长度数组的相似度百分比,php,arrays,compare,percentage,similarity,Php,Arrays,Compare,Percentage,Similarity,我分别从两个数组中的数据库中检索了两个用户的记录。这些记录是那些像在推特上一样关注他人的人。 因为两个用户可能跟踪不同数量的人。所以这两个数组的长度是不同的。我创建了一个新的数组来存储普通人(两个用户后面都是人)。 如何获得两个用户的%相似性。假设两个用户有5个共同的追随者,那么他们的相似性比两个用户有2个共同的追随者要大 foreach($common as $row){ //do events echo $row['name']."<br>"; $count_common++;
foreach($common as $row){
//do events
echo $row['name']."<br>";
$count_common++;
}
echo "total common ".$count_common;
$similarity = (count($common)/(count($user1_follows))*100);
foreach($common as$row){
//举办活动
echo$row['name']。“
”;
$count_common++;
}
回显“共有总额”。$count\u共有;
$similarity=(count($common)/(count($user1_))*100);
上面的公式不能计算正确的结果,因为它基于具有相同长度的数组。
这里有一个与我有关的问题
要获得一个号码:
$perc = 2 * count($similar) / (count($p1) + count($p2)); // 0.5714..
感谢您的快速响应,您已经计算了每个数组的相似性百分比。我想要的是在一个常量中找到两个数组的%相似性。例如,UserA与UserB有75%的相似性,UserC与userd有10%的相似性。就像这样。只需平均两个数字。你也可以做平方平均或对数平均。您选择的方法将取决于基本的数学原理。这超出了我的理解。像这样的答案让stackoverflow如此酷:)谢谢@FritsvanCampenBy平均两个数字,你的意思是平均两个百分比吗$p1_perc和$p2_perc?如果你只是简单地做了“($p1_perc+$p2_perc)/2会怎么样?这样行吗
$perc = 2 * count($similar) / (count($p1) + count($p2)); // 0.5714..