Cet article décrit la mise en œuvre Java de la fonction de similitude en cosinus du calcul de la matrice clairsemée. Partagez-le pour votre référence, comme suit:
Importer java.util.hashmap; public class myudf {/ ** * udf évaluer l'interface * * udf est un à un au niveau des enregistrements et un à un ou plusieurs à un sur le terrain. La méthode d'évaluation est appelée une fois sur chaque enregistrement, la saisie comme un ou plusieurs champs, et la sortie comme un champ * / double évaluation publique (chaîne A, chaîne B) {// TODO: veuillez modifier les paramètres et les valeurs de retour au besoin, et implémenter votre propre logique ici si (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])); } pour (String temp: temp2) {String t [] = temp.split (":"); Map2.put (t [0], double.parsedouble (t [1])); } double Fenzi = 0; double fenmu1 = 0; pour (String i: map1.KeySet ()) {double valeur = map1.get (i); if (map2.get (i)! = null) {Fenzi + = valeur * map2.get (i); } Fenmu1 + = valeur * valeur; } double fenmu2 = 0; for (double i: map2.values ()) {FenMu2 + = i * i; } double Fenmu = math.sqrt (FenMu1) * Math.Sqrt (FenMU2); retour 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)); }}Résultats en cours:
0.9135468796041984
Pour plus d'informations sur les algorithmes Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Structure de données Java et tutoriel d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.