このリポジトリは、コース自然言語処理の一環として行われたプロジェクトで構成されています-Advanced、2014年春。このコースは、Dipti Misra Sharma博士、Ravi Jampani博士、Akula Arjun Reddy氏によって指示されました。
詳細なレポートはこちらから入手できます
##要件
##問題このプロジェクトでは、フレーズベースのモデルが実装されています。フレーズベースのモデルは、語彙翻訳、フレーズの翻訳のみに基づいた機械翻訳の単純なモデルです。これには、ある言語から別の言語にフレーズをマップする辞書が必要です。まず、単語のアライメントを見つけます。次に、バイテキストコーパスを使用して、モデルをトレーニングし、翻訳確率を計算します。翻訳確率に加えて、言語モデルを使用して英語の流encyさを反映します。
ソースフォルダーは、次の方法で構成されています。
###メイン関数
次のコマンドを実行して、X文のランダムセットを作成します。
python preprocess.py sourcecorpus targetcorpus of ofsentences for training
4つのファイルが生成されます。
Trainingsource.txt TrainingTarget.txt testingsource.txt testingtarget.txt
trainingsource.txt、trainingtarget.txt:指定された数の文が含まれています
testingsource.txt、testingtarget.txt:後で使用する5つのテスト文が含まれています
次に、アラインメントツールという単語を実行して、アライメントを取得します。
Giza ++を実行するために、次のことを行います。
./plain2snt.out Trainingsource.txt TrainingTarget.txt
./giza++ -s Trainingsource.vcb -t TrainingTarget.vcb -C Trainingsource_TrainingTarget.snt
前のステップでエラーが発生した場合、次のことを行います。
./snt2cooc.out trainingsource.vcb trainingtarget.vcb trainingsource_trainingtarget.snt> cooc.cooc
./giza++ -s Trainingsource.vcb -t TrainingTarget.vcb -C Trainingsource_TrainingTarget.snt -CoocurrenceFile cooc.cooc
これにより、いくつかのファイルが生成されます。アラインメントという単語はA3ファイルに存在します。 TrainingSource.txtとtrainingTarget.txtを交換して、この手順を繰り返して、他の方向Alignment.let sourcealignment.txtとtargetAlignment.txtを2つのファイルにします。次に、次のようにフレーズを取得します。
python fraseextraction.py sourcealignment.txt targetalignment.txt
フレーズは、ファイル句で生成されます。txt。次に、翻訳確率を計算します。
次のコマンドを実行します。
python find translationProbability.py frase.txt
2つのファイルが生成されます。
TranslationProbabilitySourceGiventarget.txt
TranslationProbabilityTargetGivenSource.txt
python languagemodelinput.py trainsource.txt trains.txt
python languagemodelinput.py traintarget.txt traint.txt
このためにzipファイルを作成します。これは、言語モデルに入力されます。次のように実行されます:
./ngt -i = "gunzip -c trains.gz" -n = 3 -o = train.www -b = yes
./tlm -tr = train.www -n = 3 -lm = wb -o = trains.lm
./ngt -i = "gunzip -c traint.gz" -n = 3 -o = train.www -b = yes
./tlm -tr = train.www -n = 3 -lm = wb -o = traint.lm
Alignment Matrixから変換プローブ性を取得した後、言語モデルからの翻訳確率を組み合わせて、Find TranslationProbabilityを返します。
両方向に次のようなコマンドを実行します。
python finalscore.py TranslationProbabilityTargetGivensource.txt TrainSource.lm finalTranslationProbabilityTargetGivensource.txt
python finalscore.py TranslationProbabilitySourceGiventarget.txt traintarget.lm finalTranslationProbabilitySourceGiventarget.txt
ファイルの最終翻訳確率を返します
python finalscore.py finaltranslationprobabilitytargetgivensource.txt testingtarget.txt
python finalscore.py finaltranslationprobabilitysourcegiventarget.txt testingsource.txt
###ヘルパー機能:
###エラー分析
メソッドErroranAlysis.pyは、非常に特定の形式で入力として取得します。ソース文、翻訳された文、およびnewlineで区切られた実際の翻訳が与えられた場合、それは評価の精度とリコールを返します。