Java基于余弦方法实现的计算相似度算法示例
本文实例讲述了Java基于余弦方法实现的计算相似度算法。分享给大家供大家参考,具体如下:
(1)余弦相似性
通过测量两个向量之间的角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。所以,它通常用于文件比较。
相关介绍可参考百度百科:余弦相似性
(2)算法实现的中未使用权重(IDF---逆文档频率),使用词项的出现次数作为向量空间的值。
importjava.util.HashMap; importjava.util.Iterator; importjava.util.Map; publicclassSimilarDegreeByCos { /* *计算两个字符串(英文字符)的相似度,简单的余弦计算,未添权重 */ publicstaticdoublegetSimilarDegree(Stringstr1,Stringstr2) { //创建向量空间模型,使用map实现,主键为词项,值为长度为2的数组,存放着对应词项在字符串中的出现次数 MapvectorSpace=newHashMap (); int[]itemCountArray=null;//为了避免频繁产生局部变量,所以将itemCountArray声明在此 //以空格为分隔符,分解字符串 StringstrArray[]=str1.split(""); for(inti=0;i 更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。