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

Langage Java Discussion :

Lemmatisation et Text summarizer


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Points : 15
    Points
    15
    Par défaut Lemmatisation et Text summarizer
    Bonjour,

    Dans le cadre d'un projet d'informatique, je dois réaliser un summarizer de texte assez basique.
    Pour ce faire, j'ai besoin d'une méthode qui lemmatise un texte.
    En cherchant sur google code je suis tombé sur celle-ci :

    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
    package indexer;
     
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
     
    public class Lemmatisation {
    	// scan des dossiers
    	private File			dirCourant;
    	private File[]			dossiers;
    	private File[]			fichiers;
    	// ouverture du fichier
    	private BufferedReader 	lecteur = null;
    	private BufferedWriter	writer = null;
    	private FileWriter 		fw;
    	private String			ligne;
    	private Process			procCourant;
     
    	public Lemmatisation() {
    		dossiers = null;
    		fichiers = null;
    		dirCourant = new File("./corpus/");
    		dossiers = dirCourant.listFiles(); 
     
    		// parcours du corpus
    		for (File d : dossiers) { 
    			System.out.println("d = " + d.toString());
    			dirCourant = new File(d.toString());
    			fichiers = dirCourant.listFiles();
     
    			// parcours d'un theme du corpus
    			if (d.isDirectory()) {
    				for (File f : fichiers) {
    					// on travail sur les .txt
    					if (f.getName().endsWith(".txt")) {
    						// on clean le texte des caractères superflus
    						try {
    							lecteur = new BufferedReader(new FileReader(f.toString()));
    							fw = new FileWriter(f.toString().replaceAll(".txt", ".clean"), false);
    							writer = new BufferedWriter(fw);
    							while ((ligne = lecteur.readLine()) != null) {
    								//ligne = ligne.replaceAll("[.?,!:_()/'\"]", " ");
    								ligne = ligne.replaceAll("\\p{Punct}+", " ");
    								writer.write(ligne);
    								writer.newLine();
    							}
    							writer.flush();
    							writer.close();
    							lecteur.close();
    						} catch (FileNotFoundException e1) {
    							e1.printStackTrace();
    						}catch (IOException e1) {
    							e1.printStackTrace();
    						}
    						// on lemmatise le fichier
    						String cmd = "./TreeTagger/bin/tag-english.bat " + f.toString().replaceAll(".txt", ".clean") + " " + f.toString().replaceAll(".txt", ".lem");
    						System.out.println(cmd);
     
    						try {
    							procCourant = Runtime.getRuntime().exec(cmd);
    							procCourant.waitFor();
    						} catch (IOException e) {
    							e.printStackTrace();
    						} catch (InterruptedException e) {
    							e.printStackTrace();
    						}
    					}
    				}
    			}
    		}
    	}
     
    	public static void main(String[] argv) {
    		new Lemmatisation();
    	}
     
    }

    Cependant je ne comprend pas le fonctionnement de la dernière partie, celle qui m'intéresse vraiment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // on lemmatise le fichier
    String cmd = "./TreeTagger/bin/tag-english.bat " + f.toString().replaceAll(".txt", ".clean") + " " + f.toString().replaceAll(".txt", ".lem");
    System.out.println(cmd);
     
    try {
          procCourant = Runtime.getRuntime().exec(cmd);
          procCourant.waitFor();
         } catch (IOException e) {
    	   e.printStackTrace();
         } catch (InterruptedException e) {
    	   e.printStackTrace();
         }
    Qu'est-ce que le fichier .bat et la commande (cmd) font exactement ?
    Je suis conscient que ce code dépasse mon niveau de programmation en java, mais j'ai absolument besoin d'une méthode lemmatizer pour mon projet, et ce assez rapidement.



    Merci d'avance pour vos réponses.

    PS: j'espère ne pas avoir posté dans la mauvaise section du forum

  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
    Citation Envoyé par OrangeAmps Voir le message
    Qu'est-ce que le fichier .bat et la commande (cmd) font exactement ?
    Ben ça, on ne peux pas le deviner, faut que t'aille voir ce qu'il y a dans ce .bat. Tout ce que fait le code, c'est lancer ce .bat avec des arguments (le fichier.clean et le fichier.lem).

Discussions similaires

  1. afficher du texte
    Par Mau dans le forum OpenGL
    Réponses: 10
    Dernier message: 24/06/2003, 15h31
  2. taille du texte dans un viewport
    Par pitounette dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/07/2002, 12h06
  3. combobox->text
    Par clovis dans le forum C++Builder
    Réponses: 18
    Dernier message: 21/06/2002, 15h43
  4. fichier binaire ou texte
    Par soussou dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/06/2002, 13h39
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

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