这篇文章主要介绍了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计算余弦相似度算法相关推荐

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

    php 的 PHP数据分析引擎计算余弦相似度算法示例 本文实例讲述了PHP数据分析引擎计算余弦相似度算法.分享给大家供大家参考,具体如下: 关于余弦相似度的相关介绍可参考百度百科: /** * 数据分 ...

  2. pytorch计算余弦相似度

    在pytorch中,可以使用torch.cosine_similarity函数对两个向量或者张量计算余弦相似度.先看一下pytorch源码对该函数的定义: class CosineSimilarity ...

  3. NLP-文本匹配-2016:MaLSTM(ManhaĴan LSTM,孪生神经网络模型)【语句相似度计算:用于文本对比,内容推荐,重复内容判断】【将原本的计算余弦相似度改为一个线性层来计算相似度】

    <MaLSTM原始论文:Siamese Recurrent Architectures for Learning Sentence Similarity> MaLSTM模型(ManhaĴa ...

  4. java计算余弦相似度

    您可以使用以下java代码来计算余弦相似度 import java.util.List;public class CosineSimilarity {public static double cosi ...

  5. 相似度度量:欧氏距离与余弦相似度(Similarity Measurement Euclidean Distance Cosine Similarity)...

    在<机器学习---文本特征提取之词袋模型(Machine Learning Text Feature Extraction Bag of Words)>一文中,我们通过计算文本特征向量之间 ...

  6. java算法(1)---余弦相似度计算字符串相似率

    功能需求:最近在做通过爬虫技术去爬取各大相关网站的新闻,储存到公司数据中.这里面就有一个技术点,就是如何保证你已爬取的新闻,再有相似的新闻 或者一样的新闻,那就不存储到数据库中.(因为有网站会去引用其 ...

  7. python中文相似度_基于TF-IDF、余弦相似度算法实现文本相似度算法的Python应用

    基于TF-IDF算法.余弦相似度算法实现相似文本推荐--文本相似度算法,主要应用于文本聚类.相似文本推荐等场景. 设计说明 使用jieba切词,设置自定义字典 使用TF-IDF算法,找出文章的关键词: ...

  8. 使用Keras计算余弦相似度(Cosine Similarity)

    因为Merge函数在Keras新版本中已经不再使用了,在计算批次余弦相似度时,需要自定义函数.余弦相似度定义如下: 要计算两个向量相似度有如下步骤: 分别计算两个向量l2范式,计算两个向量的点乘 点乘 ...

  9. 从利用gensim 训练好的word2vec模型中取出向量并计算余弦相似度,Levenshtein distance 计算

    1.Levenshtein distance 表示两个字符串之间,由一个转成另一个所需的最少编辑次数,允许的操作有:替换.插入和删除 导入包: import Levenshtein #Levensht ...

最新文章

  1. rm 空间不释放_面试官跟我说rm删除文件之后,空间就被释放了吗?我该怎么答...
  2. C运行时库和标准C++库
  3. Sqoop 1.99.3 hadoop-1.2.1 安装配置
  4. Type TIMESTAMP(3) of table field ‘onSellTime‘ does not match with the physical type TIMESTAMP(6)
  5. Android学习笔记---java实现多线程下载器,30_多线程下载原理介绍和使用
  6. 博士招生 | 北京大学和中山大学博士申请考核还有名额,门槛不高,速来
  7. RubyGems 镜像 -- 淘宝网
  8. Windows10如何彻底卸载MySQL
  9. 小黑课堂c语言题库,未来教育和小黑课堂哪个好 试卷题目是一样的吗
  10. win7 去除快捷方式小箭头
  11. Android平台epub阅读器推荐
  12. 云应用设计模式(三)
  13. GIT提交错误汇总及解决方案
  14. swagger2的全新UI组件Knife4j
  15. 【论文笔记】Learning What Not to Segment: A New Perspective on Few-Shot Segmentation
  16. 第二行代码学习总结 我遇到的BUG汇总
  17. 2d 3d旋转和平移的矩阵分析
  18. 分享FUJITSU铁电存储器FRAM 2MBit SPI MB85RS2MTA
  19. esp01s+blinker WOL远程开机
  20. 武汉理工大学计算机学院专业排名,2018武汉理工大学专业排名及分数线 王牌专业有哪些...

热门文章

  1. ipad air4和ipad air3 的区别
  2. 中国广电出招了,5G套餐低至11元,三大运营商彻底慌了
  3. Python试卷自动生成器
  4. 1 11 21 1211 111221 312211 序列 c语言实现
  5. 计算机桌面常见故障,电脑桌面图标常见问题
  6. C语言基础知识入门【2022】
  7. 如何在Altium Designer设计标志图案
  8. vue实现显示10条数据点击查询看更多
  9. 在Azure上使用SAML方式配置单点登录 SSO
  10. java支付宝开发流程