Bonjour,
J'aimerais utiliser l'algorithme de Jaccard en Java, au sein de mon application.
Quelqu'un saurait-il m'indiquer comment faire ?
Merci d'avance pour votre aide.
Bonjour,
J'aimerais utiliser l'algorithme de Jaccard en Java, au sein de mon application.
Quelqu'un saurait-il m'indiquer comment faire ?
Merci d'avance pour votre aide.
Bonjour,
As-tu essayé dans Google avec les termes "java jaccard" ? Visiblement, on trouve des choses...
Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).
Merci pour votre orientation Laurent.B
J'ai réussi à trouver le programme en Java, voilà le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92 package jp.ndca.similarity.distance; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; /** * Accumulate Jaccard Similarity * * @author hattori_tsukasa * */ public class Jaccard { public Jaccard(){ super(); } /** * * @param a * @param b * @return */ public double calc(Object[] a, Object[] b){ int alen = a.length; int blen = b.length; Set<Object> set = new HashSet<Object>(alen + blen); set.addAll(Arrays.asList(a)); set.addAll(Arrays.asList(b)); return innerCalc(alen, blen, set.size()); } /** * * @param a * @param b * @return */ public double calc(List<? extends Object> a, List<? extends Object> b){ int alen = a.size(); int blen = b.size(); Set<Object> set = new HashSet<Object>(alen + blen); set.addAll(a); set.addAll(b); return innerCalc(alen, blen, set.size()); } public <K extends Comparable<K>> double calcByMerge( K[] a, K[] b ){ return calcByMerge( a, 0, b, 0 ); } public <K extends Comparable<K>> double calcByMerge( K[] a, int offsetA, K[] b, int offsetB ){ int aLen = a.length - offsetA; int bLen = b.length - offsetB; int overlap = 0; int i = offsetA; int j = offsetB; while( i < a.length && j < b.length ){ if( a[i].equals( b[j] ) ){ overlap++; i++; j++; } else if( a[i].compareTo(b[j]) < 0 ) // a < b i++; else j++; } return overlap / (double)( aLen + bLen - overlap ); } /** * * @param alen * @param blen * @param union * @return */ private double innerCalc(int alen, int blen, int union){ double overlap = alen + blen - union; if( overlap <= 0 ) return 0.0; return overlap / union; } }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager