国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java實現的計算稀疏矩陣余弦相似度示例

2024-07-14 08:41:29
字體:
來源:轉載
供稿:網友

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

import java.util.HashMap;public class MyUDF{  /**   * UDF Evaluate接口   *   * UDF在記錄層面上是一對一,字段上是一對一或多對一。 Evaluate方法在每條記錄上被調用一次,輸入為一個或多個字段,輸出為一個字段   */  public Double evaluate(String a, String b) {    // TODO: 請按需要修改參數和返回值,并在這里實現你自己的邏輯    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));  }}

運行結果:

0.9135468796041984

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


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宕昌县| 常熟市| 玛多县| 阳高县| 民县| 隆林| 手游| 扎赉特旗| 昌黎县| 湄潭县| 三门县| 普安县| 石棉县| 横山县| 托克逊县| 绥棱县| 浠水县| 隆德县| 保定市| 封丘县| 宜黄县| 贵南县| 黔西县| 密云县| 陆良县| 宽城| 吴川市| 油尖旺区| 荣成市| 怀安县| 图们市| 康乐县| 留坝县| 临汾市| 莒南县| 乌什县| 成武县| 仁怀市| 宕昌县| 仪陇县| 尉犁县|