最新公告
  • 欢迎您光临002y资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • PHP数据分析引擎计算余弦相似度算法示例

    正文概述    2022-07-06   54

    本文实例讲述了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程序设计有所帮助。


    002y资源网 » PHP数据分析引擎计算余弦相似度算法示例

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    微信支付
    余额支付
    ×
    微信扫码支付 0 元