Ce référentiel est constitué d'un projet réalisé dans le cadre du cours Natural Language Processing - Advanced, printemps 2014.Le cours a été instruit par le Dr Dipti Misra Sharma, le Dr Ravi Jampani et M. Akula Arjun Reddy
Un rapport détaillé est disponible ici
##Exigences
## Problème Dans ce projet, le modèle basé sur des phrases est implémenté. Un modèle basé sur des phrases est un modèle simple pour la traduction machine qui est basé uniquement sur la traduction lexicale, la traduction des phrases. Cela nécessite un dictionnaire qui mappe des phrases d'une langue à une autre. Nous trouvons d'abord l'alignement du mot. Ensuite, en utilisant le corpus Bi-Text, nous formons le modèle et calculons la probabilité de translation. Parallèlement aux probabilités de traduction, nous utilisons le modèle de langue pour refléter la maîtrise de l'anglais.
Le dossier source se compose des méthodes suivantes:
### Fonctions principales
Exécutez la commande suivante pour créer un ensemble aléatoire de phrases x:
Python Preprocess.py SourceCorpus TargetCorpus Numéro de sentences
Il générera quatre fichiers:
TRACHINGSOURCE.TXT TRACINETTARGET.TXT TESTINGSOURCE.TXT TESTSTARGET.TXT
Trainingsource.txt, TrainingTarget.txt: contient le nombre donné de phrases
Testingsource.txt, testTarget.txt: contient 5 phrases de test que nous utilisons plus tard
Exécutez ensuite l'outil d'alignement du mot, Giza ++ pour obtenir les alignements.
Afin d'exécuter Giza ++, faites ce qui suit:
./Plain2snt.out TRACHINGSOURCE.TXT TRAININGTARGET.TXT
./Giza++ -s TRAPALINGSOURCE.VCB -T TRAPINGTARGET.VCB -C TRACLINGSOURCE_TRAINTTAGETTERGE.SNT
Si l'étape précédente donne une erreur, faites: faites:
./Snt2Cooc.out Trainingsource.vcb TrainingTarget.VCB TRACLINGSOURCE_TRAINTATTARGET.SNT> COOC.COOC
./Giza++ -s TRACLINGSOURCE.VCB -T TRAPINGTARGET.VCB -C TRAPALINGSOURCE_TRAINTTARGET.SNT -COOCURRENCEFILE COOC.COOC
Cela générera plusieurs fichiers. Les alignements du mot sont présents dans le fichier A3. Répétez cette étape en échangeant le formingource.txt et TrainingTarget.txt pour obtenir l'autre alignement de direction. Ensuite, nous obtenons les phrases comme suit:
python phraseextraction.py Sourcedignment.txt TargetAlignment.txt
Les phrases sont générées dans le fichier phrases.txt. Ensuite, nous calculons la probabilité de traduction.
Exécutez la commande suivante:
Python findTranslationProbability.py phrases.txt
Il générera deux fichiers:
traduction ProbabilitySourceGiventarget.txt
traductionProbabilityTargetGivensource.txt
Python LanguageModeLinput.Py Trainsource.txt Trains.txt
Python LanguageModeLinput.py Traintarget.txt Traint.txt
Créez le fichier zip pour cela qui est désormais entré pour le modèle de langue. Il est exécuté comme suit:
./ngt -i = "gunzip -c trains.gz" -n = 3 -o = train.www -b = oui
./tlm -tr = train.www -n = 3 -lm = wb -o = trains.lm
./ngt -i = "gunzip -c trains.gz" -n = 3 -o = train.www -b = oui
./tlm -tr = Train.www -n = 3 -lm = wb -o = trains.lm
Après avoir obtenu la production de la traduction à partir de la matrice d'alignement, il combine la probabilité de traduction du modèle de langue et renvoie la Probabilisation de FindTranslation.
Exécutez la commande Follwowing pour les deux directions:
python finalscore.py traductionProBabilityTargetGivensource.txt Trainsource.lm finalTranslationProbabilityTargetgiVensource.txt
python finalscore.py traductionProbabilitySourceGiventarget.txt Traintarget.lm finalTranslationProbabilitySourceGiventarget.txt
Il renvoie les probabilités de traduction finale du fichier
Python finalscore.py finalTranslationProbabilityTargetGivensource.txt TestingTarget.txt
Python finalscore.py finalTranslationProbabilitySourceGiventarget.txt Testingsource.txt
Fonction d'assistance ###:
### Analyse des erreurs
La méthode ErorLanalysis.py prend en entrée dans un format très spécifique. Compte tenu de la phrase source, de la phrase traduite et de la traduction réelle séparée par Newline, il renvoie la précision et le rappel du fichier d'entrée dans Evaluation.txt