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

  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.

  8. #8
    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 Salut,
    J'ai pas bien compris ce que tu es entrain de dire
    le fichier des traductions et de cette façon parce qu'il est un résultat d'un outils qui génère les traductions en alignant le texte mot à mot..
    C'est pour cela on remarque qu'il y'a des mots qui n'ont pas des traductions.

    Pas bien compris de quoi il s'agit cet erreur

  9. #9
    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 Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    Je vous remerci mes chers développeurs vous m'avez vraiment sauvé n'on seulement m'aidé


    Mille meci à rg77140

+ 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, 16h07
  2. Probleme d'extraction des champs nuls
    Par ETOKA dans le forum SQL
    Réponses: 2
    Dernier message: 17/01/2005, 12h03
  3. Extraction des phrases d'un Texte
    Par LE CHAKAL dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2002, 22h23

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