Bonjour,
en essayant d'insérer des n-grammes dans une ArrayList<int[]>, je me retrouve avec un doublon deux éléments plus loin. Un extrait du résultat :
En effectuant des tests sur un quelconque doublon observé, il s'avère qu'il n'est bien inséré qu'une seule fois (le programme ne passe qu'une seule fois dans le bloc d'insertion pour cet élément).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 1476 3384 2804 1.0 1477 79 323 0.03515625 1477 79 990 1.0 1477 79 323 0.9609375 1477 990 1630 0.23828125 1477 990 1080 1.0 1477 990 1630 0.7578125 1477 1700 4244 0.88671875 1477 1700 388 1.0 1477 1700 4244 0.109375
Ci-dessous la partie critique du code :
Quelqu'un peut-il m'aider ?
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 if (found){ //modify the corresponding value double value = ngramcounts.get(ind); value += Math.pow(2, -d); ngramcounts.set(ind, value); } else if (ind == -1){ //insert the new ngram at the end of the list ngramlist.add(ngram1); ngramcounts.add(Math.pow(2, -d)); } else{ //insert the new ngram at position ind ngramlist.add(ind, ngram1); ngramcounts.add(ind, Math.pow(2, -d)); }
Partager