Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 12 sur 12
  1. #1
    Invité de passage
    Inscrit en
    février 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : février 2012
    Messages : 4
    Points : 0
    Points
    0

    Par défaut Projet de création de traducteur de A à Z

    Bonjours,
    Voilà, cela fait quelques temps que je m'interresse aux IA et logiciels de conversations et finalement je me suis dit que j'allais me donner comme projet de me créer le meilleur traducteur français --> anglais possible (je me rend bien compte que ce n'est pas si simple mais bon, ça sera instructif).

    Bien que j'ai quelques idées sur les moyens à mettre en oeuvre j'aimerais quelques conseils de connaisseurs pour savoir si je suis sur la bonne voix.
    Tout d'abord, quel est le meilleur langage de programmation pour traiter du texte (beaucoups de mots surtout)? Personnellement je travaille pas mal sur VB.net (car il faut bien avouer que c'est facile) mais il est vraiment lent et ne permet pas de gérer assez précisément ce que l'on fait. Je connais aussi un peut le C mais vraiment peut et il me faut chercher sur internet à chaque actions

    Une fois cela choisi j'ai quelques plants sur le fonctionnement du logiciel : il faudra d'abord qu'il sépare chaque mot du texte à traduire et détermine les verbes, noms, sens, etc... Et là, premier problème : où trouver ces listes de mots? J'ai réussis à me créer une liste de verbes rangés par ordre alphabétique après une demis heure de travail mais je ne sais pas comment je vais m'en sortir pour trouver tous les noms etc...

    Donc, si toutes personnes à des conseils ou des liens pour choisir mon langage et/ou commencer à me faire mon étiqueteur grammatical, merci d'avance.

  2. #2
    Membre habitué
    Homme Profil pro Allan
    Étudiant
    Inscrit en
    août 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Nom : Homme Allan
    Âge : 24
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2012
    Messages : 82
    Points : 119
    Points
    119

    Par défaut

    Je pense que vu le niveau que tu as décrit tu te lances dans un projet beaucoup trop ambitieux...

    Je vais prendre plusieurs exemples :
    - Déjà dans ta liste de verbe est ce qu'elle contient toutes les conjugaisons de chaque verbes...?
    - Comment vas tu gérer les temps composés?
    - Comment savoir quel est le type du mot s'il est homonyme? Exemple : si "portions" est le verbe porter ou juste une portion au pluriel?
    - Comment comptes tu gérer ton parseur?
    - As tu pensé aux fautes d’orthographe?
    - Comment vas tu gérer les accords pluriel-féminin?
    - Comment vas tu gérer toutes les exceptions de la langue française?

    Google traduction est un outil qui roxe déjà pas mal et pourtant la traduction est souvent erronée... Je veux dire qu'elle n'est pas à 100% exacte.
    Et toi tu te lances dans un projet qui a pour but d'être meilleur que Google traduction sans avoir une parfaite connaissance du langage dans lequel tu vas te lancer... Je pense que tu t'attaques à beaucoup trop gros...

  3. #3
    Expert Confirmé Sénior Avatar de Graffito
    Inscrit en
    janvier 2006
    Messages
    5 794
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 5 794
    Points : 6 681
    Points
    6 681

    Par défaut

    Je pense que vu le niveau que tu as décrit tu te lances dans un projet beaucoup trop ambitieux...
    +1

    Pour commencer, décomposons un peu le problème:
    1) découpage du texte en mots

    2) identification des mots utilisant règles et dictionnaire qui donne :
    - genre et nombre pour les noms, pronoms et adjectifs,
    - temps et personne pour les verbes,
    - mot d'origine (verbe à l'infinitif, adjectif au masculin singulier, ...)
    - avec parfois des ambiguités (exemple classique : les poules du couvent couvent)

    3) analyse syntaxique qui identifie les différents groupes (groupe verbal, groupe nominal) et leurs fonctions (Verbe, sujet, complément direct, Complément d'objet direct, indirect, circonstanciel, ...)

    4) un peu de sémantique pour résoudre les ambiguités/homonymies

    5) la traduction proprement dite :
    - transposition de la structure syntaxique vers la langue cible,
    - utilisation du dictionnaire de correspondance entre les mots d'origine de la langue cible et ceux de la langue source,
    - en cas de correspondance multiple, choisir le mot cible le plus proche du contexte général du texte,
    - conjugaison et déclinaison des mots cibles en fonction des temps et des personnes des mots sources
    - utilisation d'expression idiomatiques.

    6) générer plusieurs traductions possibles et les comparer à un gros corpus de texte pour déterminer de façon statistique quelle serait la traduction la plus pertinente (technique dite "Meaningful machines") .

    Vaste programme ...

    Pour le langage, VB.net (ou C#) convient parfaitement, y compris en terme de performance.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  4. #4
    Invité de passage
    Inscrit en
    février 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : février 2012
    Messages : 4
    Points : 0
    Points
    0

    Par défaut

    Je suis vraiment désolé pour mon orthographe qui, je le sais, est mauvaise mais je vous jure que je me suis fortement amélioré (je vous dit pas ce que ça donnais avant ).

    Sinon voila ce que j'ai prévue : je crée un dictionnaire (pour l'instant rien de très gros quand même) contenant les verbes, noms etc... les plus utilisés dans la langue française.
    Pour les verbe, je ne pense pas qu'utiliser un dictionnaire contenant toutes les conjugaisons soit très pratique (niveau taille), je vais donc plutôt créer un autre fichier contenant les conjugaisons en fonction de leurs terminaisons (comprenant aussi les irréguliers). De même pour les pluriels des noms etc...
    Je n'ai pas prévue de gérer les fautes car sinon je passerais une grande partie du temps à peaufiner cette partie du logiciel et je préférerais alors spécialiser mon logiciel la-dessus.

    Pour les homonymes, je verrais en fonction des mots présents avant ou autre... Bref, je verrais. Pour l'instant je m'attaque surtout à la création du dictionnaire.

    J'aime bien l'idée d’analyse statistique pour vérifier la traduction, je vais plus me renseigner dessus.

  5. #5
    Expert Confirmé Sénior Avatar de Graffito
    Inscrit en
    janvier 2006
    Messages
    5 794
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 5 794
    Points : 6 681
    Points
    6 681

    Par défaut

    Pour les verbe, je ne pense pas qu'utiliser un dictionnaire contenant toutes les conjugaisons soit très pratique (niveau taille), je vais donc plutôt créer un autre fichier contenant les conjugaisons en fonction de leurs terminaisons (comprenant aussi les irréguliers). De même pour les pluriels des noms etc...
    Par rapport à un dictionnaire complet (conjugaisons, féminin, pluriels) généré automatiquement à partir d'un dico de base (infinitifs, noms, adjectifs) cette approche pénalisera grandement la performance pour une économie en taille mémoire inutile en pratique.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Invité de passage
    Inscrit en
    février 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : février 2012
    Messages : 4
    Points : 0
    Points
    0

    Par défaut

    Vous êtes sur?

    En gros voila ce que je voulais faire : je crée une liste des verbes non conjugués en séparant la partie qui change (par exemple "parler" devient "parl,er", "battre" devient "bat,tre"). Il suffira ensuite de rechercher la liste des conjugaisons relier à la terminaison et comme ça ont économise énormément de place et la recherche n'est finalement pas si lente.

    Après si je suis toujours dans le faux je lâcherais cette idée mais pour le moment j'y crois pas mal

  7. #7
    Expert Confirmé Sénior Avatar de Graffito
    Inscrit en
    janvier 2006
    Messages
    5 794
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 5 794
    Points : 6 681
    Points
    6 681

    Par défaut

    Un même mot peut venir de plusieurs mots de bases différents : ainsi "collant" correspond au participe prèsent de "coller", à l'adjectif "collant" (papier collant) ou au nom "collant" (lingerie).

    Dans l'hypothèse d'un dictionnaire de base + méthodes de dérivations, si dans le texte on a le mot "rivetés", il faudra vérifier successivemement si il peut ètre dérivé de :
    - ri,re
    - riv,er
    - rive
    - rivet
    - rivet,er
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Invité de passage
    Profil pro Georges HALLOIN
    Inscrit en
    septembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Nom : Georges HALLOIN

    Informations forums :
    Inscription : septembre 2010
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    Bonjour.
    j'en suis à ma seconde tentative de programmation d'un traducteur anglais->français.

    Pour ma 1ère tentative, j'ai tenté de ma baser sur LA SYNTAXE.
    Exemple : the black dog is here -> Article Adjectif Nom_commun Verbe Adverbe
    Il y avait une base de données pour le dictionnaire (traduction mot à mot) et une autre pour les syntaxes permettant la translation grammaticale anglais->français.
    Le résultat n'était pas probant.

    Ma 2ème tentative est actuelle et je décide de l'abandonner car je ne pense pas faire mieux que les traducteurs existants.
    Le programme détermine la nature de chaque mot en fonction de leurs positions dans la phrase afin de résoudre les ambiguïtés.
    Par exemple "this" peut être un adverbe, un adjectif ou un pronom.
    S'il est placé devant un nom commun ou devant un adjectif il est logiquement un adjectif.
    Comme pour ma première tentative, le résultat ne me satisfait pas.

    Note : je ne dispose pas de dictionnaire anglais->français prêt à l'emploi (fichier informatique). Je renseigne un dictionnaire personnel au fur et à mesure.
    Note : le langage informatique utilisé pour réaliser ce programme importe peut.
    J'utilise le VB6 pour la qualité de l'environnement de développement.
    Il est suffisamment rapide, je l'ai comparé avec le C (Eclipse) et avec l'ASM (Masm32). Une boucle écrite en ASM sous Windows ne se déroule que 3 fois plus vite qu'en VB6 (à condition de peaufiner les algorithmes).

    Considérant que mes 2 tentatives ont presque échoué, je veux en tenter une 3ème.
    Son principe : extraire chaque proposition d'une phrase et traduire ces propositions en version simplifiée du français (d'autres écriraient " en p'tit nègre").
    Et ensuite formater le résultat.
    Par exemple :
    ["This section is aimed at describing the thermoelectric sensor proposed for use as a thermal radiation detector."]
    serait d'abord traduit en ["section" "vise à" "décrire" "capteur thermoélectrique proposé" "pour l'utilisation" "comme" "détecteur de radiation thermique"] avant d'être formaté en français presque correct.
    Je considère que ce texte avant d'être formaté est déjà explicite.

    Je poste ce message pour dans un premier temps partager une discussion mais si certains ont des idées, je suis preneur et pourquoi pas partant pour une collaboration.

  9. #9
    Invité de passage
    Inscrit en
    février 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : février 2012
    Messages : 4
    Points : 0
    Points
    0

    Par défaut Je commence enfin et vous saurez tout :)

    Voilà, comme je ne voulais pas allonger ce file de discussions inutilement j'ai décidé de me créer un petit blog histoire de vous raconter mon avancée.
    N'hésitez pas à venir ici : http://projets-multiples.blogspot.fr...s-anglais.html
    Pour le moment, il n'y a pas grand-chose, mais je pense que je pourrais en aider pas mal, car je diffuse des listes de verbes et de mots français, des petits bouts de programmes et quelques logiciels si possible. Peut-être même bientôt quelques programmes sur TI.

    Et spécialement pour l'occasion je me suis pris Antidote afin de me corriger et surtout de rechercher toutes les règles de conjugaisons et grammaire.


    #roro_1 : je pense que ta troisième idée est la moins bonne car, en plus de traduire mot à mot, il risque d'y avoir plus d'ambiguïtés et peut être même des mots manquants. Après peut être qu'en la combinant avec la deuxième technique tu pourrais obtenir de bons résultats.

  10. #10
    Expert Confirmé Sénior Avatar de Graffito
    Inscrit en
    janvier 2006
    Messages
    5 794
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 5 794
    Points : 6 681
    Points
    6 681

    Par défaut

    La méthode de traduction que je priviligierai serait basée sur les concepts de base suivants:
    • utiliser un répertoire de règles qui associerait à une suite de fonctions de la langue source la liste correspondante dans la langue cible (exemple de règle : article_défini nom1 "de" article_possesif nom2 ==> article_ possessif nom2 "'s" nom1 pour traduire "la voiture de mon frère" en "my brother's car").
    • quand une phrase ne correspond à aucune règle prédéfinie, trouver un découpage minimisant le nombre de règles à appliquer,
    • Créer des règles par apprentissage lorsque les traductions sont inexactes : soit des règles plus longues, soit des règles plus précises comme par exemple la distinction entre auxilliaires ou le type de préposition.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  11. #11
    Invité de passage
    Profil pro Georges HALLOIN
    Inscrit en
    septembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Nom : Georges HALLOIN

    Informations forums :
    Inscription : septembre 2010
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    Bonjour CCrdz.
    J'ai lu ton chapitre "On commence à programmer".
    Je constate que tu as compris qu'une des difficultés majeures est la détermination de la nature des homonymes.
    Je vais suivre ton blog.

  12. #12
    Membre habitué Avatar de sologne
    Homme Profil pro
    Chargé de missions
    Inscrit en
    mai 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chargé de missions
    Secteur : Service public

    Informations forums :
    Inscription : mai 2011
    Messages : 67
    Points : 108
    Points
    108

    Par défaut

    Bonjour,

    Voici une piste qui pourra peut-être t'aider : le Prolog ...

    C'est un langage de haut niveau qui est particulièrement adapté pour le traitement automatique du langage (TAL).

    voici deux liens utiles :

    http://promethee.philo.ulg.ac.be/eng...ocs/prolog.htm
    http://pauillac.inria.fr/~clerger/Pr...8/handout2.pdf


    Bon courage

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •