Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programmation traducteur mot à mot

Traducteur mot à mot

21 août 2019 à 12:52:42

Bonjour!

J'aurais besoin de votre aide pour développer un petit programme pour faire de la traduction de texte mot à mot. Par de syntaxe, de contexte ou que sais-je comme pour un vrai traducteur, mais faire du mot à mot littéralement :D 

Exemple: Avoir = Have, Je te donne = I you give (l'anglais est prit comme exemple et oui la phrase est fausse mais c'est pour illustrer le mot à mot)

Sachant que je n'y connais pas grand chose, mais je suis prête à faire des recherches/tests/peu importe, pour que cela fonctionne!

S'il y a possibilité de faire ça d'une manière pas trop compliqué?

Merci bien! :D

  • Partager sur Facebook
  • Partager sur Twitter
21 août 2019 à 13:55:00

Salut, avec des hash map.

En clef un mot, en valeur sa traduction.

Voilà :)

  • Partager sur Facebook
  • Partager sur Twitter

Architecte logiciel - Software craftsmanship convaincu.

21 août 2019 à 14:30:24

Mais encore? :p

Quand je dis que je n'y connais rien, ce n'est pas un euphémisme... Je veux bien chercher, mais là c'est trop vague comme explication ^^"

  • Partager sur Facebook
  • Partager sur Twitter
21 août 2019 à 18:41:16

Je ne vais pas te faire un cours :) 

Un hashmap fonctionne comme un dictionnaire, une clef, une définition.

https://en.m.wikipedia.org/wiki/Hash_table

Si tu as Hash(String, String) tu peut faire ton traducteur.

Exemple crystal-lang.org/api/0.30.1/Hash.html

  • Partager sur Facebook
  • Partager sur Twitter

Architecte logiciel - Software craftsmanship convaincu.

21 août 2019 à 20:40:01

Je ne demande pas un cours, mais je ne suis pas sûre que si je te demande de m'expliquer le dadaïsme avec l'arrivée de Fallières au pouvoir tu puisses le faire si tu ne connais rien en histoire de l'art :p Vois-tu ma position de néophyte? :) 

Juste un exemple pour que je puisse me faire un idée ou une source sur laquelle je peux m'appuyer.

  • Partager sur Facebook
  • Partager sur Twitter
21 août 2019 à 21:48:25

L'exemple est dans le 2nd lien ;)
  • Partager sur Facebook
  • Partager sur Twitter

Architecte logiciel - Software craftsmanship convaincu.

22 août 2019 à 20:02:56

Mais diable! Je n'y comprends rien du tout... Ton second lien ne m'aide pas plus que ça :lol:
  • Partager sur Facebook
  • Partager sur Twitter
23 août 2019 à 10:21:23

Salut,

Tu n'as aucune expérience en programmation ?

Apprends les bases d'un langage (Python est généralement conseillé) puis apprends à manipuler les chaînes de caractères, à lire des fichiers, les structures de données de base, en particulier les hashtables. Tu devrais alors avoir tout ce qu'il faut pour ton projet.

Une manière de faire ton programme serait :

- charger les traductions depuis un fichier dans une hashtable ;

- demander à l'utilisateur le texte (soit par console ou dans un autre fichier, ...) ;

- remplacer chaque mot par sa traduction (il faudra peut-être s'assurer de le faire mot à mot pour ne pas être piégé par les mots transprents et faux-amis)

- donner à l'utilisateur le résultat (console ou fichier, ...)

  • Partager sur Facebook
  • Partager sur Twitter
23 août 2019 à 11:56:05

Voila un exemple :

fr2en = {
  "bonjour" => "hello",
  "je" => "I",
  "aurevoir" => "bye",
  "te" => "you",
  "dit" => "say"
}

en2fr = {
  "hello" => "bonjour",
  "I" => "je",
  "bye" => "aurevoir",
  "you" => "toi",
  "say" => "dit"
}

def split_sentence(sentence : String) : Array(String)
  sentence.split(/([ ,.?!])/)
end

def translate_with(dic : Hash(String, String), tokens : Array(String)) : String
  tokens.map { |token| dic[token]? || token }.join
end

string = "Bonjour, je te dit aurevoir"

translate_with(fr2en, split_sentence(string.downcase))
# => "hello, I you say bye"


Une fois que l'on arrive dans l'exemple, on est obliger de choisir un langage, ici j'ai pris Crystal.

Comme tu le vois, c'est pas compliquer, les 2 hash sont un peu repetitif, mais vu que du doit avoir un dictionnaire dans un fichier, tu peut init tes hash au debut du programme par lecture du fichier.

Apres, j'ai bien l'impression que tu manque de competence, je te conseille de te former en CS avant de faire des projets comme celui-ci (meme si son niveau s'apparente aussi a un exercice bateau)

  • Partager sur Facebook
  • Partager sur Twitter

Architecte logiciel - Software craftsmanship convaincu.

23 août 2019 à 12:32:39

@necros211 : Avec Hash#invert pour avoir en2fr à partir de fr2en.

  • Partager sur Facebook
  • Partager sur Twitter
Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs