全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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程序设计有所帮助。


# PHP  # 计算  # 余弦相似度  # 算法  # 总结PHP中数值计算的注意事项  # PHP中浮点数计算比较及取整不准确的解决方法  # php计算函数执行时间的方法  # PHP几个数学计算的内部函数学习整理  # php计算两个整数的最大公约数常用算法小结  # PHP计算加权平均数的方法  # php数字游戏 计算24算法  # php常用字符串String函数实例总结【转换  # 替换  # 截取  # 加密】  # PHP之浮点数计算比较以及取整数不准确的解决办法  # php数值计算num类简单操作示例  # 程序设计  # 求出  # 相关内容  # 感兴趣  # 数据结构  # 给大家  # 几位  # 更多关于  # 所述  # 面向对象  # 素以  # 操作技巧  # 讲述了  # unknown_type  # array  # function  # guo  # okhqb  # param  # foreach 


相关文章: 建站之星会员如何解锁更多建站功能?  如何在新浪SAE免费搭建个人博客?  建站之星与建站宝盒如何选择最佳方案?  如何在IIS7上新建站点并设置安全权限?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  孙琪峥织梦建站教程如何优化数据库安全?  公司网站的制作公司,企业网站制作基本流程有哪些?  建站主机类型有哪些?如何正确选型  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  网站app免费制作软件,能免费看各大网站视频的手机app?  网站制作软件有哪些,制图软件有哪些?  ,sp开头的版面叫什么?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  建站之星安装模板失败:服务器环境不兼容?  如何在云主机快速搭建网站站点?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  如何访问已购建站主机并解决登录问题?  建站之星2.7模板快速切换与批量管理功能操作指南  linux top下的 minerd 木马清除方法  建站之星如何助力企业快速打造五合一网站?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  nginx修改上传文件大小限制的方法  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  建站之星安装后界面空白如何解决?  如何制作一个表白网站视频,关于勇敢表白的小标题?  手机网站制作与建设方案,手机网站如何建设?  建站主机无法访问?如何排查域名与服务器问题  建站主机是否属于云主机类型?  如何基于云服务器快速搭建个人网站?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  建站之星导航如何优化提升用户体验?  怀化网站制作公司,怀化新生儿上户网上办理流程?  平台云上自主建站:模板化设计与智能工具打造高效网站  建站主机选购指南:核心配置优化与品牌推荐方案  如何在Golang中使用replace替换模块_指定本地或远程路径  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  建站之星如何修改网站生成路径?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  高防服务器如何保障网站安全无虞?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  5种Android数据存储方式汇总  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  公司门户网站制作流程,华为官网怎么做?  如何打造高效商业网站?建站目的决定转化率  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何通过虚拟主机空间快速建站?  如何自定义建站之星网站的导航菜单样式?  网站制作网站,深圳做网站哪家比较好? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。