PHP数据分析引擎计算余弦相似度算法示例_php技巧_脚本之家

PHP数据分析引擎计算余弦相似度算法示例

 更新时间:2017年08月08日 10:52:44   作者:小贝   我要评论

undefined

这篇文章主要介绍了PHP数据分析引擎计算余弦相似度算法,结合具体实例形式分析了php计算余弦相似度的操作步骤与相关实现技巧,需要的朋友可以参考下

本文实例讲述了PHP数据分析引擎计算余弦相似度算法。分享给大家供大家参考,具体如下:

关于余弦相似度的相关介绍可参考百度百科:余弦相似度

?

<?php

/**

* 数据分析引擎

* 分析向量的元素 必须和基准向量的元素一致,取最大个数,分析向量不足元素以0填补。

* 求出分析向量与基准向量的余弦值

* @author yu.guo@okhqb.com

*/

/**

* 获得向量的模

* @param unknown_type $array 传入分析数据的基准点的N维向量。|eg:array(1,1,1,1,1);

*/

function getMarkMod(`$arrParam`){

$strModDouble = 0;

foreach`($arrParam` `as` `$val){`

$strModDouble += $val * $val`;`

}

$strMod = sqrt(`$strModDouble`);

//是否需要保留小数点后几位

return $strMod`;`

}

/**

* 获取标杆的元素个数

* @param unknown_type $arrParam

* @return number

*/

function getMarkLenth(`$arrParam`){

$intLenth = count`($arrParam);`

return $intLenth`;`

}

/**

* 对传入数组进行索引分配,基准点的索引必须为k,求夹角的向量索引必须为 'j'.

* @param unknown_type $arrParam

* @param unknown_type $index

* @ruturn $arrBack

*/

function handIndex(`$arrParam,` `$index` `=` `'k'){`

foreach`($arrParam` `as` `$key` `=>` `$val){`

$in = $index`.$key;`

$arrBack`[$in] = $val`;

}

return $arrBack`;`

}

/**

*

* @param unknown_type $arrMark标杆向量数组(索引被处理过)

* @param unknown_type $arrAnaly 分析向量数组 (索引被处理过) |array('j0'=>1,'j1'=>2....)

* @param unknown_type $strMarkMod标杆向量的模

* @param unknown_type $intLenth 向量的长度

*/

function getCosine(`$arrMark,` `$arrAnaly, $strMarkMod ,$intLenth){`

$strVector = 0;

$strCosine = 0;

for`($i` `= 0;` `$i` `<` `$intLenth; $i`++){

$strMarkVal = $arrMark`['k'.$i];`

$strAnalyVal = $arrAnaly`['j'.$i];`

$strVector += $strMarkVal * $strAnalyVal`;`

}

$arrAnalyMod = getMarkMod(`$arrAnaly`); //求分析向量的模

$strFenzi = $strVector`;`

$strFenMu = $arrAnalyMod * $strMarkMod`;`

$strCosine = $strFenzi / $strFenMu`;`

if`(0 !== (int)$strFenMu){`

$strCosine = $strFenzi / $strFenMu`;`

}

return $strCosine`;`

}

?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》及《PHP数组(Array)操作技巧大全

希望本文所述对大家PHP程序设计有所帮助。


Original url: Access
Created at: 2019-04-12 18:55:35
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论