Java实现的计算稀疏矩阵余弦相似度示例

  

本文实例讲述了Java实现的计算稀疏矩阵余弦相似度功能。分享给大家供大家参考,具体如下:

        进口java.util.HashMap;   公开课MyUDF {/* *   * UDF评估接口   *   * UDF在记录层面上是一对一,字段上是一对一或多对一。评估方法在每条记录上被调用一次,输入为一个或多个字段,输出为一个字段   */公共双重评估(字符串,字符串b) {//TODO:请按需要修改参数和返回值,并在这里实现你自己的逻辑   如果(==null | | b==null)   返回0.0;   字符串temp1 []=a.split (", ");   字符串temp2 []=b.split (", ");   如果(temp1==null | | temp2==null) {   返回0.0;   }   Double> HashMap<字符串;map1=new HashMap<字符串,Double> ();   Double> HashMap<字符串;map2=new HashMap<字符串,Double> ();   (字符串临时:temp1)   {   字符串t []=temp.split (“:”);   map1。把(t [0] Double.parseDouble (t [1]));   }   (字符串临时:temp2)   {   字符串t []=temp.split (“:”);   map2。把(t [0] Double.parseDouble (t [1]));   }   双fenzi=0;   双fenmu1=0;   (我:字符串map1.keySet ())   {   双精度值=https://www.yisu.com/zixun/map1.get(我);   如果(map2.get(我)!=null) {   fenzi +=* map2.get价值(我);   }   fenmu1 +=*价值;   }   双fenmu2=0;   (双我:map2.values ())   {   fenmu2 +=*我;   }   双fenmu=Math.sqrt (fenmu1) * Math.sqrt (fenmu2);   返回fenzi/fenmu;   }   公共静态void main (String [] args) {   字符串a=" 12:500、14:100 20:200”;   字符串b=" 12:500、14:100 30:100”;   MyUDF MyUDF=new MyUDF ();   System.out.println (myUDF。评估(a, b));   }   }      之前      

运行结果:

  
  

0.9135468796041984      

更多关于java算法相关内容感兴趣的读者可查看本站专题:《java数据结构与算法教程》、《java操作DOM节点技巧总结》,《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总》

  

希望本文所述对大家java程序设计有所帮助。

Java实现的计算稀疏矩阵余弦相似度示例