Este repositorio consiste en el proyecto realizado como parte del curso de procesamiento del lenguaje natural del curso - Avanzado, primavera de 2014. El curso fue instruido por el Dr. Dipti Misra Sharma, el Dr. Ravi Jampani y el Sr. Akula Arjun Reddy
Un informe detallado está disponible aquí
## Requisitos
## Problema En este proyecto, se implementa el modelo basado en frases. Un modelo basado en frases es un modelo simple para la traducción automática que se basa únicamente en la traducción léxica, la traducción de frases. Esto requiere un diccionario que mapea frases de un idioma a otro. Primero encontramos la alineación de la palabra. A continuación, utilizando el corpus de bi-text, entrenamos el modelo y calculamos la probabilidad de traducción. Junto con las probabilidades de traducción, utilizamos el modelo de idioma para reflejar la fluidez en el inglés.
La carpeta de origen consta de los siguientes métodos:
### Funciones principales
Ejecute el siguiente comando para crear un conjunto aleatorio de x oraciones:
Python preprocess.py SourceCorpus TargetCorpus Número de Instalación
Generará cuatro archivos:
TrainingSource.txt TrainingTarget.txt testingSource.txt testTarget.txt
TrainingSource.txt, TrainingTarget.txt: contiene el número dado de oraciones
testingSource.txt, testTarget.txt: contiene 5 oraciones de prueba que usamos más adelante
Luego ejecute la herramienta de alineación de palabras, GIZA ++ para obtener las alineaciones.
Para ejecutar GIZA ++, haga lo siguiente:
./plain2snt.out entrenadoreurce.txt entrenador de thorget.txt
./Giza++ -s entrenamiento.vcb -t entrenador deTarget.vcb -c entrenamientource_trainingTarget.snt
Si el paso anterior da error, entonces hagas:
./snt2cooc.out entrenadoreurce.vcb entrenadorTarget.vcb TrainingingSource_trainingTarget.snt> cooc.cooc
./Giza++ -S entrenamiento.vcb -t entrenadorTarget.vcb -c entrenamientource_trainingTarget.snt -coocurrenceFile cooC.cooc
Esto generará varios archivos. Las alineaciones de palabras están presentes en el archivo A3. Repita este paso intercambiando el entrenamientource.txt y el entrenamiento Target. Luego obtenemos las frases de la siguiente manera:
python fraseExtraction.py SourceLignment.txt TargetAlignment.txt
Las frases se generan en el archivo frases.txt. A continuación calculamos la probabilidad de traducción.
Ejecute el siguiente comando:
Python FindTranslationProbability.py frases.txt
Generará dos archivos:
TradationProbabilitySourCeGivenTarget.txt
TradationProbabilityTargetGivenSource.txt
Python languageModelinput.py TrainSource.txt Trains.txt
Python languageModelinput.py Traenderget.txt Traint.txt
Cree el archivo ZIP para esto que ahora se ingresa para el modelo de idioma. Se ejecuta de la siguiente manera:
./ngt -i = "gunzip -c trenes.gz" -n = 3 -o = Train.www -b = Sí
./tlm -Tr = Train.www -n = 3 -lm = wb -o = trenes.lm
./ngt -i = "Gunzip -c Traint.gz" -n = 3 -o = Train.www -B = Sí
./tlm -Tr = Train.www -n = 3 -lm = wb -o = Traint.lm
Después de obtener la probabilidad de traducción de la matriz de alineación, combina la probabilidad de traducción del modelo de idioma y devuelve la probabilidad FindTranslation.
Ejecute el comando Follwowing para ambas direcciones:
Python final Finalscore.py TradationProbabilityTargetGivenSource.txt TrainSource.lm FinalTranslationProbabilityTargetGivenseurce.txt
python final finalscore.py tradationProbabilitySourCeGiventarget.txt Trainarget.lm finalTranslationProbabilitySourCeGivENtarget.txt
Devuelve las probabilidades de traducción final del archivo
python final -finalcore.py finalTranslationProbabilityTargetGivenSource.txt testingTarget.txt
Python final de finalización.py finalTranslationProbabilitySourCeGivENtarget.txt testingSource.txt
### Función auxiliar:
### Análisis de errores
El método Erroranalysis.py toma como entrada en un formato muy específico. Dada la oración de origen, la oración traducida y la traducción real separada por Newline, devuelve la precisión y el recuerdo del archivo de entrada en Evalution.txt