国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉屏| 蓬安县| 博客| 临沂市| 铜山县| 三都| 英山县| 土默特左旗| 宁海县| 利川市| 永嘉县| 南宫市| 沈阳市| 凤阳县| 通榆县| 冀州市| 海晏县| 墨竹工卡县| 易门县| 嘉义县| 沂水县| 紫金县| 浑源县| 宽甸| 仙游县| 蓬溪县| 深水埗区| 东明县| 上思县| 鹤庆县| 江油市| 象州县| 肥西县| 盖州市| 内江市| 武威市| 丰镇市| 井冈山市| 澄城县| 湖口县| 惠安县|