• 技术文章 >后端开发 >php教程

    关于php数据分析引擎计算余弦相似度的算法介绍

    黄舟黄舟2017-08-08 13:37:47原创545
    这篇文章主要介绍了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中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:数据分析 php 余弦
    上一篇:php如何实现阳历转换为阴历的实例分析 下一篇:有关php中implements用法的实例详解
    PHP编程就业班

    相关文章推荐

    • PHP中的日期处理方法集锦_PHP教程• 在PHP中使用灵巧的体系结构_PHP教程• 抓取YAHOO股票报价的类_php技巧• Yii中创建自己的Widget实例_PHP• php短址转换实现方法_PHP

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网