最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)的計算稀疏矩陣余弦相似度示例

 更新時間:2018年07月09日 15:09:30   作者:Bryan__  
這篇文章主要介紹了Java實現(xiàn)的計算稀疏矩陣余弦相似度功能,涉及java基于HashMap的數(shù)值計算相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Java實現(xiàn)的計算稀疏矩陣余弦相似度功能。分享給大家供大家參考,具體如下:

import java.util.HashMap;
public class MyUDF{
  /**
   * UDF Evaluate接口
   *
   * UDF在記錄層面上是一對一,字段上是一對一或多對一。 Evaluate方法在每條記錄上被調(diào)用一次,輸入為一個或多個字段,輸出為一個字段
   */
  public Double evaluate(String a, String b) {
    // TODO: 請按需要修改參數(shù)和返回值,并在這里實現(xiàn)你自己的邏輯
    if(a==null || b==null)
      return 0.0;
    String temp1[]=a.split(",");
    String temp2[]=b.split(",");
    if (temp1==null || temp2==null) {
      return 0.0;
    }
    HashMap<String, Double> map1=new HashMap<String, Double>();
    HashMap<String, Double> map2=new HashMap<String, Double>();
    for(String temp:temp1)
    {
      String t[]=temp.split(":");
      map1.put(t[0], Double.parseDouble(t[1]));
    }
    for(String temp:temp2)
    {
      String t[]=temp.split(":");
      map2.put(t[0], Double.parseDouble(t[1]));
    }
    double fenzi=0;
    double fenmu1=0;
    for(String i:map1.keySet())
    {
      double value=map1.get(i);
      if (map2.get(i)!=null) {
        fenzi+=value*map2.get(i);
      }
      fenmu1+=value*value;
    }
    double fenmu2=0;
    for(double i:map2.values())
    {
      fenmu2+=i*i;
    }
    double fenmu=Math.sqrt(fenmu1)*Math.sqrt(fenmu2);
    return fenzi/fenmu;
  }
  public static void main(String[] args) {
    String a="12:500,14:100,20:200";
    String b="12:500,14:100,30:100";
    MyUDF myUDF=new MyUDF();
    System.out.println(myUDF.evaluate(a, b));
  }
}

運行結(jié)果:

0.9135468796041984

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

最新評論

赤水市| 临泽县| 黔西县| 周口市| 嘉鱼县| 乌苏市| 星子县| 屯留县| 固阳县| 南木林县| 澎湖县| 右玉县| 黎平县| 威信县| 绥宁县| 金阳县| 藁城市| 宜春市| 密云县| 安国市| 阿合奇县| 香港 | 宁安市| 富裕县| 东乡族自治县| 东至县| 开江县| 黄陵县| 宁陵县| 房山区| 河津市| 津南区| 丰镇市| 罗田县| 喀什市| 高唐县| 工布江达县| 华蓥市| 繁昌县| 博罗县| 五家渠市|