Dieses Repository besteht aus Projekt, das im Rahmen der Kurs -Verarbeitung natürlicher Sprache - Fortgeschrittene, Frühjahr 2014 durchgeführt wurde
Hier ist ein detaillierter Bericht verfügbar
##Anforderungen
## Problem In diesem Projekt wird das phrasebasierte Modell implementiert. Ein Phrase -basiertes Modell ist ein einfaches Modell für die maschinelle Übersetzung, das ausschließlich auf der lexikalischen Übersetzung, der Übersetzung von Phrasen, basiert. Dies erfordert ein Wörterbuch, das Phrasen von einer Sprache zur anderen abbilt. Wir finden zuerst die Ausrichtung des Wortes. Als nächstes trainieren wir mit dem BI-Text-Korpus das Modell und berechnen die Translationswahrscheinlichkeit. Zusammen mit den Übersetzungswahrscheinlichkeiten verwenden wir das Sprachmodell, um die Fließfähigkeit in Englisch widerzuspiegeln.
Der Quellordner besteht aus den folgenden Methoden:
### Hauptfunktionen
Führen Sie den folgenden Befehl aus, um einen zufälligen Satz von X -Sätzen zu erstellen:
python preprocess.py Sourcecorpus targetCorpus numberofsentcesFortraining
Es generiert vier Dateien:
trainingSource.txt trapyTarget.txt testingSource.txt testingarget.txt
TrainingSource.txt, TrainingTarget.txt: Enthält die angegebene Anzahl von Sätzen
testingSource.txt, testingTarget.txt: Enthält 5 Testsätze, die wir später verwenden
Führen Sie als nächstes das Wort ausgerichtet, Giza ++, um die Ausrichtungen zu erhalten.
Um Giza ++ auszuführen, machen Sie Folgendes:
./plain2snt.out trainingSource.txt TrainingTarget.txt
./Giza++ -s trainingSource.vcb -t trapyTarget.vcb -c trainingSource_trainingTarget.snt
Wenn der vorherige Schritt Fehler angibt, dann tun Sie:
./snt2cooc.out trainingSource.vcb TrainingTarget.vcb TrainingSource_TrainingTarget.snt> cooc.cooc
./Giza++ -s trainingSource.vcb -t TrainingTarget.vcb -c trainingSource_trainingtarget
Dies generiert mehrere Dateien. Die Wortausrichtungen sind in der A3 -Datei vorhanden. Wiederholen Sie diesen Schritt, indem Sie die trainingSource.txt und trapyTarget.txt austauschen, um die andere Richtungsausrichtung zu erhalten. Dann erhalten wir die Phrasen wie folgt:
python phrasenextraction.py Sourcealignment.txt targetalignment.txt
Die Phrasen werden in der Datei phrasen generiert.txt. Als nächstes berechnen wir die Übersetzungswahrscheinlichkeit.
Führen Sie den folgenden Befehl aus:
python findtranslationProbability.py phrasen.txt
Es generiert zwei Dateien:
translationProbabilitySourcegiventarget.txt
translationProbabilityTargetGivenSource.txt
Python LanguagemodelInput.Py TrainSource.txt Trains.txt
python languagemodelinput.py straintarget.txt traint.txt
Erstellen Sie die ZIP -Datei dafür, die jetzt für das Sprachmodell eingegeben wird. Es wird wie folgt ausgeführt:
./ngt -i = "Gunzip -c Trains.gz" -n = 3 -o = Train.www -b = Ja
./tlm -tr = train.www -n = 3 -lm = wb -o = trains.lm
./ngt -i = "Gunzip -c traint.gz" -n = 3 -o = train.www -b = Ja
./tlm -tr = train.www -n = 3 -lm = wb -o = traint.lm
Nachdem die Übersetzungsverträglichkeit aus der Ausrichtungsmatrix erhalten wurde, kombiniert sie die Übersetzungswahrscheinlichkeit aus dem Sprachmodell und gibt die findTranslationProbability zurück.
Führen Sie den Follwowing -Befehl für beide Richtungen aus:
Python Finalscore.py translationProbabilityTargetGivenSource.txt TrainSource.lm FinaltranslationProbabilityTargetGivenSource.txt
Python Finalscore.py translationProbabilitySourcegiventarget.txt traintarget.lm FinaltranslationProbabilitySourcegiventarget.txt
Es gibt die endgültige Übersetzungswahrscheinlichkeiten zurück
Python Finalscore.py FinaltranslationProbabilityTargetGivenSource.txt testingTarget.txt
Python Finalscore.py FinaltranslationProbabilitySourcegiventarget.txt testingSource.txt
### Helfer -Funktion:
### Fehleranalyse
Die Method -Fehleranalyse.py nimmt als Eingabe in einem sehr spezifischen Format an. Angesichts des Quellsatzes, des übersetzten Satzes und der tatsächlichen Übersetzung, die durch Newline getrennt ist