IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

L'algorithme de Jaccard


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 8
    Points
    8
    Par défaut L'algorithme de Jaccard
    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.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Bonjour,

    Qu'est-ce qui te bloque dans ton implémentation ?

  3. #3
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    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).

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 8
    Points
    8
    Par défaut
    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;
        }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  2. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo