Traitement des fichier texte

Fermé
faizasadoune Messages postés 2 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 5 mars 2013 - 3 mars 2013 à 16:40
matth_42 Messages postés 2 Date d'inscription mardi 5 mars 2013 Statut Membre Dernière intervention 5 mars 2013 - 5 mars 2013 à 16:04
Bonjour,
voila mon code source qui permet de faire un prétraitement d'un fichier texte puis chargé ce fichier a un tableau ,maintenant, je veut répété ce traitement a un dossier contient plusieurs fichiers textes(répertoire) et après calculer tf*idf
j'espère que vous m'aider dans un temps plus approche svp
merci
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Collections;
public class tableau {
public static void main (String[] args){
pretraitement();
}
public static void pretraitement(){
BufferedReader fi;
String s="";
String r;
String ss[]=null;;
BufferedReader fa;
String d="";
String k;
String dd[];String bb[] = null;
int i,j;
try {
/* lecture du fichier source */
fi = new BufferedReader(new FileReader ("C:\\fichier_texte.txt"));
/* lecture du fichier des stopeurs*/
fa = new BufferedReader(new FileReader ("C:\\stopliste_fr.txt"));
/*former une chaine en s a partir du fichier source */
while((r=fi.readLine()) != null)
s=s+r;
System.out.println("le texte source est:");
System.out.println(s);
System.out.println("---------------------------------------------------------:");
s=s.replaceAll("\\p{Punct}|\\s+|[\\d]", " "); //eliminer les espaces et la ponctuation
System.out.println("le texte source après elimination de la ponctuation est:");
System.out.println(s);
System.out.println("---------------------------------------------------------:");
ss=s.split("\\s+");// transformer la chaine source en tableau de mots
/*former une chaine des stopeur en d a partir du fichier de stopeurs */
while((k=fa.readLine()) !=null)
d=d+k;
d=d.replaceAll("\\p{Punct}|\\s+|[\\d]", " ");
dd=d.split("\\s+");// transformer la chaine des stopeurs en tableau de stopeurs
for( i=0;i<ss.length;i++){
for( j=0;j<dd.length;j++){
if(ss[i].equals(dd[j])){
ss[i]=ss[i].replaceAll(ss[i], " ");}
}
}
}catch (Exception e) { System.err.println("File Not Found ");}
/**former la chaine resultat ***/
String tab[]=null;
String sresultat=ss[0]+" ";
for( i=1;i<ss.length;i++){
if (!ss[i].equals(" "))// si le mot courant n'est pas null
sresultat=sresultat+ss[i]+" ";}
System.out.println("le tableau resultat est:");
tab=sresultat.split(" ");
for( j=0;j<tab.length;j++)
System.out.print(tab[j]+" ");
System.out.println("---------------------------------------------------------:");
System.out.println("le nombre d'occurence des mots est:");
int length = tab.length;
ArrayList<String> arrayList = new ArrayList<String> ();
for ( i = 0; i < length; ++i) {
arrayList.add (tab [i]);
}
Collections.sort (arrayList);
String [] sortedArray = new String [length];
for ( i = 0; i < length ; ++i) {
sortedArray [i] = arrayList.get (i);}
i = 0;
while (i < length) {
System.out.print ("Nombre d'occurence de " + sortedArray [i] +" = ");
int occ = 1;
j = i + 1;
while (j < length) {
if (sortedArray [i].compareTo (sortedArray [j]) == 0) {
++occ;
}
else {
break;
}
++j;
}
System.out.println (occ);
i = j;}
}
}
A voir également:

1 réponse

matth_42 Messages postés 2 Date d'inscription mardi 5 mars 2013 Statut Membre Dernière intervention 5 mars 2013
5 mars 2013 à 16:04
Si j'ai bien compris tu veux executer ce traitement sur plusieurs fichier texte d'un dossier.
Pour récupérer les fichiers d'un répertoire :

File rep = new File("chemin du dossier");
File[] tabFile = rep.listFiles();

Tu obtiens un tableau des fichiers txt contenu dans ton dossier.
0