Compter le nombre de bigrammes avec tokeniseur
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************
Code:
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 le parcours des mots**********
Code:
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));
}
}
} |
*********classe pour l'ouverture du fichier contenant les mots*************
Code:
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();
}
} |