Bonjour,
J'ai fait un tokeniseur qui compte le nombre de fois ou un mot apparait dans un texte(cas unigramme). J'aimerais continuer pour compter le nombre de bigramme aussi pour àprès pour estimer les log probabilités. Est-ce que quelqu'un peut m'expliquer comment continuer sinon me donner un petit coup de main. Voici mon code :
*****classe pour compter le nombre d'occurence************
*********classe pour le parcours des mots**********
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 package fil; public class Element { private String mot; private int nbOcc; public Element(String mot) { this.mot = new String(mot); nbOcc=1; } public String getMot() { return mot; } public void setMot(String mot) { this.mot = mot; } public int getNbOcc() { return nbOcc; } public void setNbOcc(int nbOcc) { this.nbOcc = nbOcc; } public boolean equals(String unMot){ return mot.equals(unMot); } public void inc(){ nbOcc++; } public void afficher(){ System.out.println (mot+ "->" +nbOcc); } }
*********classe pour l'ouverture du fichier contenant les mots*************
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 package fil; public class ListeC { int queue; int max; Element[] tab; public ListeC(){ max=1000000; tab= new Element[max]; queue=-1; } public void adjq(Element v){ tab[queue+1]=v; queue=queue+1; } public void supq(){ queue=queue-1; } public void afficher(){ for(int i=0; i<queue+1; i++){ tab[i].afficher(); } } public void ajouter (String mot){ int p=0; boolean trouve = false; while (p<=queue && !trouve){ if (tab[p].equals(mot)){ trouve=true; } else{ p=p+1; } } if (trouve) { tab[p].inc(); } else { adjq(new Element(mot)); } } }
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 package fil; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import java.util.StringTokenizer; import javax.swing.JFileChooser; public class tester { public static void main(String [] t){ lirefichier(); } public static void lirefichier(){ ListeC l = new ListeC(); try { JFileChooser dialogue = new JFileChooser("lexique.fr"); File fichier; if (dialogue.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { fichier = dialogue.getSelectedFile(); } else{ fichier = new File("exemple"); //attention si le fichier n'existe pas !! } Scanner sc = new Scanner(fichier); while (sc.hasNext()) { String uneligne = sc.nextLine(); StringTokenizer st = new StringTokenizer(uneligne); while (st.hasMoreTokens()) { l.ajouter(st.nextToken()); } } } catch (FileNotFoundException e) { System.out.println("pas de fichier"); e.printStackTrace(); } l.afficher(); } }
Partager