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

Java Discussion :

Extraction des Traductions


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Doctorante
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Par défaut Extraction des Traductions
    Bonsoir,
    Merci de m'aider avec une simple idée pour resoudre le problème d'extraire les traduction d'un groupe de mots, je vous décrit le problème:
    le fichier1 qui se compose des mots français et leurs traductions en anglais
    fichier1:
    Reprise# Resumption
    de#
    la# the
    session# session
    Je# I
    déclare# declare
    reprise# resumed
    la#
    session# session
    et le deuxieme fichier2:
    reprise
    la session
    session
    ******
    je veux savoir comment faire pour obtenir ce résultat:
    reprise=resumption
    la session= the session
    session= session
    *****
    en fait le problème résiste dans le groupe de mot "la session"
    merci de m'aider je serai reconnaissante

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Bonjour,

    En Java tu as la fonction split() sur un String. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String phraseATraduire = "la session";
    String[] motsATraduire = phraseATraduire.split(" ");
    // motsATraduire[0] = la
    // motsATraduire[1] = session
    Je pense qu'ensuite tu devrais t'en sortir.

    Romain.

  3. #3
    Membre confirmé
    Femme Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Doctorante
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Par défaut
    Bonsoir,

    Je suis novice en java et je n'ai pas bien compris comment. Voilà le code que j'ai développé :
    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
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.*;
     
    public class InsertDansLaListe {
    	public static void main (String [] args ) throws IOException
    	{
    		//contien liste des mots et leurs traductions
    		BufferedReader readerListe = new BufferedReader(new FileReader("C:/Users/HP/workspace/liste.txt"));
    		//contien les NPsFrancais
    		BufferedReader readerNP = new BufferedReader(new FileReader("C:/Users/HP/workspace/listeNP.txt"));
     
    		String ligneNP;
    		String ligneListe;
    		String motF = "";
    		String motE = "";
     
    	   System.out.println("**************NP*************");
    	   ArrayList<String> maListe = new ArrayList<String>();	
     
    			while ( (ligneNP= readerNP.readLine())!=null)
    			{
     
    			 maListe.add(ligneNP);
    	     	 //System.out.println(ListNP);
     
                }
    			 for(int i = 0 ; i < maListe.size(); i++)
    			 {
    				 	String maValeur = maListe.get(i);
    				 	System.out.println(maValeur);
     
    			 }
    			System.out.println("**************Extraction des traductions*************");
     
    		while ( (ligneListe= readerListe.readLine())!=null && ligneListe.contains("#"))
    		{
     
    		   motF  = ligneListe.substring(0, ligneListe.indexOf("#"));
    		   motE =  ligneListe.substring(ligneListe.indexOf("#")+1, ligneListe.length());
    		   ligneListe = ligneListe.substring(ligneListe.indexOf("#")+1, ligneListe.length()); 
     
    		   for(int i=0; i<maListe.size();i++)
    			{	
    			   if(motF.equals(maListe.get(i)))
    				{
    				  System.out.println(motF+motE);
     
     
    				}
     
    			}
    		 }
            }
     
     
     
    }

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Bonjour,

    Voilà Une proposition que tu peux adapter :
    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
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Map.Entry;
     
    public class Traducteur {
    	public static void main(String[] args) throws IOException {
     
    		BufferedReader sourceDictionnaire = new BufferedReader(new FileReader("C:/Users/HP/workspace/listeNP.txt"));
    		BufferedReader fichierATraduire = new BufferedReader(new FileReader("C:/Users/HP/workspace/liste.txt"));
     
    		Map<String, String> dictionnaire = lireDictionnaire(sourceDictionnaire);
    		afficherDictionnaire(dictionnaire);
    		traduire(fichierATraduire, dictionnaire);
    	}
     
    	private static Map<String, String> lireDictionnaire(BufferedReader sourceDictionnaire ) throws IOException {
    		Map<String, String> dictionnaire = new HashMap<String, String>();
     
    		String definition;
    		while ((definition = sourceDictionnaire .readLine()) != null) {
    			String[] contenuDefinition = definition.split("# ");
    			dictionnaire.put(contenuDefinition[0], contenuDefinition[1]);
    		}
    		return dictionnaire;
    	}
     
    	private static void afficherDictionnaire(Map<String, String> dictionnaire) {
    		System.out.println("*************************");
    		System.out.println("Contenu du dictionnaire :");
    		for (Entry<String, String> traduction : dictionnaire.entrySet()) {
    			System.out.println(traduction.getKey() + " = " + traduction.getValue());
    		}
    		System.out.println("*************************");
    		System.out.println("");
    	}
     
    	private static void traduire(BufferedReader fichierATraduire, Map<String, String> dictionnaire) throws IOException {
    		System.out.println("*******************************************************");
    		System.out.println("************** Extraction des traductions *************");
    		String phraseATraduire;
    		while ((phraseATraduire = fichierATraduire.readLine()) != null) {
    			String[] motsATraduire = phraseATraduire.split(" ");
    			StringBuilder traductionPhrase = new StringBuilder();
    			for (int i = 0; i < motsATraduire.length; i++) {
    				String traduction = dictionnaire.get(motsATraduire[i]);
    				traductionPhrase.append(traduction);
    				if (i >= motsATraduire.length - 1) {
    					break;
    				}
    				traductionPhrase.append(" ");
    			}
    			System.out.println(traductionPhrase);
    		}
    		System.out.println("*******************************************************");
    	}
    }
    Je suis parti du principe qu'il y avait toujours une traduction pour un mot. Car j'ai pas bien compris pourquoi dans ton fichier un tu avais ce genre d'entrée :
    de#
    la#
    Voilà le fichier 1 :
    Reprise# Resumption
    de# of
    la# the
    session# session
    Je# I
    déclare# declare
    reprise# resumed
    session# session
    Fichier 2 :
    reprise
    la session
    session
    Romain.

  5. #5
    Membre confirmé
    Femme Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Doctorante
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Par défaut Bonjour,
    Merci beaucoup pour ton aide mais j'ai un erreur qui s'affiche :

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at InsertDansLaListe.lireDictionnaire(InsertDansLaListe.java:25)
    at InsertDansLaListe.main(InsertDansLaListe.java:14)

    Je vais essayer de trouver de quoi il s'agit!!
    et je te met au courant
    T'es Superrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

  6. #6
    Membre confirmé
    Femme Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Doctorante
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Par défaut Bonjour,
    EN fait pour les :

    de# of
    la# the

    c'est moi qui a mis la "#" comme séparateur entre le mot français et sa traduction, j'ai pensé qu'elle va me faciliter la tache!

    WIM.

  7. #7
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Je suis parti du principe qu'il y avait toujours une traduction pour un mot. Car j'ai pas bien compris pourquoi dans ton fichier un tu avais ce genre d'entrée :
    de#
    la#
    A la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dictionnaire.put(contenuDefinition[0], contenuDefinition[1]);
    Si tu ne renseignes pas de traduction pour chaque mot dans ton fichier, contenueDefinition[1] n'existera pas, et donc il va te renvoyer une jolie ArrayIndexOutOfBoundsException pour te le signifier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Analyseur XML : extraction des caracteres spéciaux
    Par abdou.sahraoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 19/07/2005, 15h07
  2. Probleme d'extraction des champs nuls
    Par ETOKA dans le forum SQL
    Réponses: 2
    Dernier message: 17/01/2005, 11h03
  3. Extraction des phrases d'un Texte
    Par LE CHAKAL dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2002, 21h23

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