Connaissez vous le Moses decoder
Résolu
Bonjour tout le monde ,
Comment ca marche est mon meilleur forum mais cette fois j'y ai trouvé des questions/réponses a propos de mon sujet mais je vais quand meme tenter ma chance , je travaille sur la traduction automatique statistique un des outils qui "est censé" faciliter la tache est l'outil moses c'est un décodeur qui permet de faire les alignements, de creer les tables de traduction, et beaucoup d'autres taches en se basant sur deux corpus de la langue cible et le langue source bien aligné, je me suis bien documenté et j'ai réussi à l'installer il marche trés bien mais j'arrive plus à avancer l'étape suivante est la construction du modele de traduction mais j'arrive pas à le faire je trouve pas la commande qui le fait surtout que Moses se base sur le corpus EUROPARL dans son apprentissage alors que je veux travailler sur mes propres corpus..je souhaite de tout mon coeur de trouver qlq'un qui pourra m'aider dans ce forum parceque je suis vraiment désespérer :(((
Comment ca marche est mon meilleur forum mais cette fois j'y ai trouvé des questions/réponses a propos de mon sujet mais je vais quand meme tenter ma chance , je travaille sur la traduction automatique statistique un des outils qui "est censé" faciliter la tache est l'outil moses c'est un décodeur qui permet de faire les alignements, de creer les tables de traduction, et beaucoup d'autres taches en se basant sur deux corpus de la langue cible et le langue source bien aligné, je me suis bien documenté et j'ai réussi à l'installer il marche trés bien mais j'arrive plus à avancer l'étape suivante est la construction du modele de traduction mais j'arrive pas à le faire je trouve pas la commande qui le fait surtout que Moses se base sur le corpus EUROPARL dans son apprentissage alors que je veux travailler sur mes propres corpus..je souhaite de tout mon coeur de trouver qlq'un qui pourra m'aider dans ce forum parceque je suis vraiment désespérer :(((
A voir également:
- Connaissez vous le Moses decoder
- Comment decoder un telephone - Guide
- Dvd decoder - Télécharger - Conversion & Codecs
- Comment décoder un code ascii - Guide
- Decoder off ampli yamaha - Forum Cinéma / Télé
- Voici du code ascii : 34 2d 3f 3d 31 décodez-le et résolvez l'énigme trouvée. - Forum Programmation
7 réponses
Bonjour mamiemando, Bonjour Tout le monde voici ce qui manquait :
export SCRIPTS_ROOTDIR=/home/user/moses/scripts
et la commande devient :
$ train-model.perl --scripts-root-dir $SCRIPTS_ROOTDIR --corpus /home/user/work/corpora/txt --f stand --e dia --lm 0:3:/home/user/work/corpora/modele.lm:0
et puis ça y est "I got my moses.ini" et touuuuus les autres fichiers :)))) .j'espere que one day ça aidera qlq1 ;)
export SCRIPTS_ROOTDIR=/home/user/moses/scripts
et la commande devient :
$ train-model.perl --scripts-root-dir $SCRIPTS_ROOTDIR --corpus /home/user/work/corpora/txt --f stand --e dia --lm 0:3:/home/user/work/corpora/modele.lm:0
et puis ça y est "I got my moses.ini" et touuuuus les autres fichiers :)))) .j'espere que one day ça aidera qlq1 ;)
Pense à mettre des points de temps en temps dans tes phrases :-)
Bon soyons clairs, je ne connais pas moses et je n'ai pas la moindre idée de comment ça marche et beaucoup de termes que tu emploies (corpus, alignements, modèle de traduction...) sont assez pointus, ce qui veut dire que ce n'est pas forcément tout le monde qui pourra rentrer dans le problème si tu le formules comme ça.
Dans tes futurs messages, il faudrait que tu te mettes un peu plus à notre portée car à moins d'être du domaine, ça va être compliqué pour nous de t'aider, ou nous donner deux trois références courtes pour rentrer dans le sujet, par exemple en citant ou en résumant :
http://www.statmt.org/moses/?n=Moses.Background
Alors sinon je ne sais pas si c'est la question vu que je n'ai fait que survoler vite fait ce qui est raconté sur le site de mose (on est dimanche :p) mais si j'ai bien compris ce qui est dit ici :
http://www.statmt.org/moses/?n=Moses.Tutorial
... il s'agit de passer une phrase à traduire à l'entrée du processus moses que tu paramètres à ton idée pour apprendre et faire traduire des phrases à moses. Si j'ai bien compris, corrige-moi si je me trompe, ce que tu appelles un corpus est le fichier ".ini" que tu passes en paramètre à moses et qui contient ce qu'il a appris à ce stade. Est-ce bien ça ? Et si j'ai bien compris ton problème, moses utilises un corpus dans une syntaxe donnée et toi tu as un ou plusieurs corpus qui sont dans une autre syntaxe et qu'il faudrait convertir pour qu'ils soient utilisables par moses. C'est ça ? Toutes mes excuses si je suis à côté de la plaque :-)
Bon soyons clairs, je ne connais pas moses et je n'ai pas la moindre idée de comment ça marche et beaucoup de termes que tu emploies (corpus, alignements, modèle de traduction...) sont assez pointus, ce qui veut dire que ce n'est pas forcément tout le monde qui pourra rentrer dans le problème si tu le formules comme ça.
Dans tes futurs messages, il faudrait que tu te mettes un peu plus à notre portée car à moins d'être du domaine, ça va être compliqué pour nous de t'aider, ou nous donner deux trois références courtes pour rentrer dans le sujet, par exemple en citant ou en résumant :
http://www.statmt.org/moses/?n=Moses.Background
Alors sinon je ne sais pas si c'est la question vu que je n'ai fait que survoler vite fait ce qui est raconté sur le site de mose (on est dimanche :p) mais si j'ai bien compris ce qui est dit ici :
http://www.statmt.org/moses/?n=Moses.Tutorial
... il s'agit de passer une phrase à traduire à l'entrée du processus moses que tu paramètres à ton idée pour apprendre et faire traduire des phrases à moses. Si j'ai bien compris, corrige-moi si je me trompe, ce que tu appelles un corpus est le fichier ".ini" que tu passes en paramètre à moses et qui contient ce qu'il a appris à ce stade. Est-ce bien ça ? Et si j'ai bien compris ton problème, moses utilises un corpus dans une syntaxe donnée et toi tu as un ou plusieurs corpus qui sont dans une autre syntaxe et qu'il faudrait convertir pour qu'ils soient utilisables par moses. C'est ça ? Toutes mes excuses si je suis à côté de la plaque :-)
mdrrrrrrrrrrrrrr voyons voyons je vais enseigner mon enseignant :))
1- je m'excuse pour les points je suis tellement désordonnée dans ma tete quand je commence à raconter mes histoires you can't stop me :p
2- oui t's raison j'ai utilisé des termes qui sont pas à la portée de tout le monde
un corpus : ensemble de textes ,d'un domaine précis, qu'on regroupe dans un seul fichier, expl: corpus.txt. le plus connu des corpus et que Moses connait est le corpus EUROPARL (un recueil des discussions parlementaires européennes)
Alignement : paralléliser un texte avec sa traduction : si le corpus1.txt est écrit dans une langue A , le corpus2.txt qui est écrit dans une langue B, est la traduction de Corpus1 sous la contrainte que chaque phrase dans Corpus1 ait sa traduction dans Corpus2 (Si Corpus 1 contient 100 phrases ---> Corpus 2 contient obligatoirement 100phrases)
Moses : c'est un outil qui permet d'entraîner un système de traduction statistique de la maniere suivante :
----> on commence tout d'abord par creer un modele de langue cible ,c'est un fichier cible.LM qui va décider si la qualité de la phrase produite lors de la traduction est bonne par rapport à la langue cible (tout court si ça se dit ou non!!)
----> puis vient l'étape de l'apprentissage: dans cette étape et en se basant sur le modele de langue moses va ,entre autres;creer une table de traduction dans laquelle il indiquera (la probabilité que la phrase A soit une traduction de la phrase B)
bon je t'ai pas raconté toute l'histoire il reste l'ajustement des poid et l'évaluation mais pour l'instant c'est ce qui importe le plus .
A l'issus de tout ça un systeme de traduction de la langue A vers B va procéder de la maniere suivante:
-----> il commence par voir quelle est la phrase la plus proche dans le corpus de la langue source puis il va consulter la table de traduction pour voir quelle était sa meilleure traduction (la plus haute proba) dans le corpus de langue cible et ca sera le resultat de la traduction
voila tout mamiemando, j'espere que cette fois c'est un peu lisible :p
Aaah non pour le moses.ini : c'est un fichier généré à la fin de la phase d'apprentissage voili voilou :)))
1- je m'excuse pour les points je suis tellement désordonnée dans ma tete quand je commence à raconter mes histoires you can't stop me :p
2- oui t's raison j'ai utilisé des termes qui sont pas à la portée de tout le monde
un corpus : ensemble de textes ,d'un domaine précis, qu'on regroupe dans un seul fichier, expl: corpus.txt. le plus connu des corpus et que Moses connait est le corpus EUROPARL (un recueil des discussions parlementaires européennes)
Alignement : paralléliser un texte avec sa traduction : si le corpus1.txt est écrit dans une langue A , le corpus2.txt qui est écrit dans une langue B, est la traduction de Corpus1 sous la contrainte que chaque phrase dans Corpus1 ait sa traduction dans Corpus2 (Si Corpus 1 contient 100 phrases ---> Corpus 2 contient obligatoirement 100phrases)
Moses : c'est un outil qui permet d'entraîner un système de traduction statistique de la maniere suivante :
----> on commence tout d'abord par creer un modele de langue cible ,c'est un fichier cible.LM qui va décider si la qualité de la phrase produite lors de la traduction est bonne par rapport à la langue cible (tout court si ça se dit ou non!!)
----> puis vient l'étape de l'apprentissage: dans cette étape et en se basant sur le modele de langue moses va ,entre autres;creer une table de traduction dans laquelle il indiquera (la probabilité que la phrase A soit une traduction de la phrase B)
bon je t'ai pas raconté toute l'histoire il reste l'ajustement des poid et l'évaluation mais pour l'instant c'est ce qui importe le plus .
A l'issus de tout ça un systeme de traduction de la langue A vers B va procéder de la maniere suivante:
-----> il commence par voir quelle est la phrase la plus proche dans le corpus de la langue source puis il va consulter la table de traduction pour voir quelle était sa meilleure traduction (la plus haute proba) dans le corpus de langue cible et ca sera le resultat de la traduction
voila tout mamiemando, j'espere que cette fois c'est un peu lisible :p
Aaah non pour le moses.ini : c'est un fichier généré à la fin de la phase d'apprentissage voili voilou :)))
STP mamiemado est ce que tu peux m'expliquer la la syntaxe de ce segment
# set varibles to defaults or from options
my $___ROOT_DIR = ".";
$___ROOT_DIR = $_ROOT_DIR if $_ROOT_DIR;
my $___CORPUS_DIR = $___ROOT_DIR."/corpus";
$___CORPUS_DIR = $_CORPUS_DIR if $_CORPUS_DIR;
die("ERROR: use --corpus to specify corpus") unless $_CORPUS || !($STEPS[1] || $STEPS[4] || $STEPS[5] || $STEPS[8]);
my $___CORPUS = $_CORPUS;
et si je veux par exemple changer le chemin de mon corpus est ce que c'est faisable ici ??
d'après les concepteurs de Moses les fichiers de configuration sont facile à lire mais j'ai un problème avec le langage utilisé :((
# set varibles to defaults or from options
my $___ROOT_DIR = ".";
$___ROOT_DIR = $_ROOT_DIR if $_ROOT_DIR;
my $___CORPUS_DIR = $___ROOT_DIR."/corpus";
$___CORPUS_DIR = $_CORPUS_DIR if $_CORPUS_DIR;
die("ERROR: use --corpus to specify corpus") unless $_CORPUS || !($STEPS[1] || $STEPS[4] || $STEPS[5] || $STEPS[8]);
my $___CORPUS = $_CORPUS;
et si je veux par exemple changer le chemin de mon corpus est ce que c'est faisable ici ??
d'après les concepteurs de Moses les fichiers de configuration sont facile à lire mais j'ai un problème avec le langage utilisé :((
Alors j'ai compris ton explication et ça rejoint plus ou moins ce que j'avais cru comprendre. Juste un point qui n'est pas tout à faire claire pour moi, le fichier ".ini" est il généré à l'aide de l'apprentissage que tes différents corpus ont engendré ? Car sinon dans la commande :
... je ne vois pas où le(s) corpus interviennent.
Autre point qui n'est pas très clair pour moi, si j'ai bien compris ton problème initial, je cite :
j'arrive pas à le faire je trouve pas la commande qui le fait surtout que Moses se base sur le corpus EUROPARL dans son apprentissage alors que je veux travailler sur mes propres corpus
... laisse sous entendre que tes deux corpus ne sont pas écrits sous le même format ?
et si je veux par exemple changer le chemin de mon corpus est ce que c'est faisable ici ??
Alors je pense que la première étape, c'est d'apprendre un peu le perl, sinon tu ne poserais pas la question. Merci aussi d'utiliser les balises de code (<>) pour les sections de code car là c'est pas super lisible :-)
Ici on voit que le programme construit un répertoire dans lequel chercher des corpus (./corpus). Personnellement je ne pense pas que ce soit une super idée de charcuter le code existant, c'est le meilleur moyen d'introduire un bug. Ici la bonne approche serait plutôt de placer ton corpus dans le bon répertoire.
Bonne chance
echo 'das ist ein kleines haus' | moses -f moses.ini -t >out
... je ne vois pas où le(s) corpus interviennent.
Autre point qui n'est pas très clair pour moi, si j'ai bien compris ton problème initial, je cite :
j'arrive pas à le faire je trouve pas la commande qui le fait surtout que Moses se base sur le corpus EUROPARL dans son apprentissage alors que je veux travailler sur mes propres corpus
... laisse sous entendre que tes deux corpus ne sont pas écrits sous le même format ?
et si je veux par exemple changer le chemin de mon corpus est ce que c'est faisable ici ??
Alors je pense que la première étape, c'est d'apprendre un peu le perl, sinon tu ne poserais pas la question. Merci aussi d'utiliser les balises de code (<>) pour les sections de code car là c'est pas super lisible :-)
my $___ROOT_DIR = "."; $___ROOT_DIR = $_ROOT_DIR if $_ROOT_DIR; my $___CORPUS_DIR = $___ROOT_DIR."/corpus";
Ici on voit que le programme construit un répertoire dans lequel chercher des corpus (./corpus). Personnellement je ne pense pas que ce soit une super idée de charcuter le code existant, c'est le meilleur moyen d'introduire un bug. Ici la bonne approche serait plutôt de placer ton corpus dans le bon répertoire.
Bonne chance
exemple que t'as cité de moses.ini, ce n'est pas dans une phase d'apprentissage c'est plutôt une traduction "la phrase écrite en allemand " est traduite en anglais en se basant sur les paramètres fournis dans moses.ini (corpus, table de traduction, modèle de langue...)
2. Personnellement je ne pense pas que ce soit une super idée de charcuter le code existant :
je n'aurais pas osé le faire si je ne l'ai pas vu quelque part en plus j'ai déjà spécifié quelques chemins dans d'autres fichiers de ce type pour arriver à installer l'outil
3.laisse sous entendre que tes deux corpus ne sont pas écrits sous le même format ?:
justement c'est ce que je veux comprendre,d'ailleurs je crois que c'est mon problème principal dans les tuto de moses on dit que les corpus doivent avoir des "common stem" c'est à dire une racine commune si je comprends bien y a qlq un qui m'a dit que tu dois faire ceci : --Corpus txt -e stand -f dia
dans ce cas là sous quel format je dois enregistrer mes corpus?? parce que lorsque j'ai essayé la commande :
$ train-model.perl -scripts-root-dir /home/moses/scripts/training --corpus $home/user/work/corpora/txt -e stand -f dia -lm 0:3:/home/user/work/corpora/modele.lm:0
Using SCRIPTS_ROOTDIR: /home/moses/scripts/training
j'ai eu cette erreur :
ERROR: Can't read /user/work/corpora/txt.dia at /cygdrive/C/cygwin/home/user/moses/scripts/training/train-model.perl line 671.
et la meme erreur pour stand.txt aussi
2. Personnellement je ne pense pas que ce soit une super idée de charcuter le code existant :
je n'aurais pas osé le faire si je ne l'ai pas vu quelque part en plus j'ai déjà spécifié quelques chemins dans d'autres fichiers de ce type pour arriver à installer l'outil
3.laisse sous entendre que tes deux corpus ne sont pas écrits sous le même format ?:
justement c'est ce que je veux comprendre,d'ailleurs je crois que c'est mon problème principal dans les tuto de moses on dit que les corpus doivent avoir des "common stem" c'est à dire une racine commune si je comprends bien y a qlq un qui m'a dit que tu dois faire ceci : --Corpus txt -e stand -f dia
dans ce cas là sous quel format je dois enregistrer mes corpus?? parce que lorsque j'ai essayé la commande :
$ train-model.perl -scripts-root-dir /home/moses/scripts/training --corpus $home/user/work/corpora/txt -e stand -f dia -lm 0:3:/home/user/work/corpora/modele.lm:0
Using SCRIPTS_ROOTDIR: /home/moses/scripts/training
j'ai eu cette erreur :
ERROR: Can't read /user/work/corpora/txt.dia at /cygdrive/C/cygwin/home/user/moses/scripts/training/train-model.perl line 671.
et la meme erreur pour stand.txt aussi
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
commune si je comprends bien y a qlq un qui m'a dit que tu dois faire ceci : --Corpus txt -e stand -f dia dans ce cas là sous quel format je dois enregistrer mes corpus?? parce que lorsque j'ai essayé la commande :
Aucune idée, tu comprends bien que ça dépend de comment moses fonctionne et que je ne le sais pas plus que toi :-)
ERROR: Can't read /user/work/corpora/txt.dia at /cygdrive/C/cygwin/home/user/moses/scripts/training/train-model.perl line 671.
As-tu vérifié que ce fichier existe "/user/work/corpora/txt.dia" ?
Bonne chance
Aucune idée, tu comprends bien que ça dépend de comment moses fonctionne et que je ne le sais pas plus que toi :-)
ERROR: Can't read /user/work/corpora/txt.dia at /cygdrive/C/cygwin/home/user/moses/scripts/training/train-model.perl line 671.
As-tu vérifié que ce fichier existe "/user/work/corpora/txt.dia" ?
ls /user/work/corpora/txt.dia
Bonne chance
ls -l ~/work/corpora/txt.dia
-rwxrwxrwx 1 user None 149391 Apr 9 11:21 /home/user/work/corpora/txt.dia
$ whoami
user
$ groups
None Utilisateurs ORA_DBA
-rwxrwxrwx 1 user None 149391 Apr 9 11:21 /home/user/work/corpora/txt.dia
$ whoami
user
$ groups
None Utilisateurs ORA_DBA