モーゼス(mosesdecoder)&BPEデータ前処理

データの前処理mosesdecoder&BPE

データの前処理モーゼス

ソースリンク:

https://github.com/moses-smt/mosesdecoder

小さな機械翻訳パートナーはモーセに非常に精通している必要があります、これは長年にわたって使用された、前処理データのための非常に強力なツールですが、まだ非常に人気があります。

多くの人々は、アルゴリズムは、辞書内のほとんど3万サブワードすべての単語、BPE、強すぎるBPEアルゴリズムを使用される前処理データを実行します。しかし、我々は、単語レベルを変換したい場合は、その辞書は機械翻訳辞書の場合には、大きすぎるが制限され、多くの単語は未知語になります。辞書は複数の単語を含めることができる可能にするために、あなたは、前処理しなければならないバイリンガルコーパスの動作を制御します。

前処理の中国は、前処理に比べて、良いの多くは、単語に加えて、行うことはあまりないですんBPEサブ単語辞書のように、英語をたくさん複雑になる、と私たちはアメリカのを見ることができますアメリカの辞書に存在し、英語の句読点や単語はスペースで区切られていない間、英語がスペースに直接言葉、猫と猫だったので場合。辞書内の2つの単語の位置を占めることができる、これらはそうではありません合理的な、場所は、廃棄物の辞書になります。だから、英語の取り扱いが必要です。

前処理方法を使用したツールとしてmosesdecoder統計的機械翻訳次のとおりです。

ノーマライズ:句読点標準化。

perl dir_name/mosesdecoder/scripts/tokenizer/normalize-punctuation.perl -l en < data/train.en > data/train.norm.en

デ同様の言語-l ENを、選択することがどれ

トークン化:単語

perl dir_name/mosesdecoder/scripts/tokenizer/tokenizer.perl -a -l en < data/train.norm.en > data/train.norm.tok.en

同様のデ

清掃:長い文章と空の文がそう明らかに整合していない文章を削除し、削除し、トレーニング中に問題を引き起こす可能性があります。 - 文の長さの制御1-80。

perl path/to/mosesdecoder/scripts/training/clean-corpus-n.perl data/train.norm.tok en de data/train.norm.tok.clean 1 80

また、これはバイリンガルコーパスを操作し、2つの処理train.norm.tok.clean.en train.norm.tok.clean.deファイルを生成します。

小文字からTruecaseの異なるが、小文字内のすべてのデータの同等の小文字、およびtruecaseは、変換時間を向上させる、などの文章大文字の名前、場所、内容を決定し、残りを小文字にそれを保持するために、トレーニングデータを学びます。truecasingデータスパース性の問題を減らすことができます精度、。

  1. モデルを訓練するTruecase必要。注:のみを使用してトレーニングセットトレーニングtruecaseモデル。
perl path/to/mosesdecoder/scripts/recaser/train-truecaser.perl -corpus data/train.norm.tok.clean.en -model path/to/truecase-model.en
  1. アプリケーションが適用されます:英語モデルのトレーニングは、トレーニングセット、検証セットと英語のテストセットに適用されてtruecase。
perl dir_name/mosesdecoder/scripts/recaser/truecase.perl -model path/to/truecase-model.en < data/train.norm.tok.clean.en > data/train.norm.tok.clean.tc.en

同じドイツ人もtruecaseモデルを訓練する必要があります。

BPE単語

あなたが単語にサブワードを押します、BPEはアルゴリズムを使用する必要があります、それはモーセを使用するのが最善であるアルゴリズムを前処理BPEデータを使用する前に、その後、BPEアルゴリズムに処理されたデータの入力をMOSESありません。

プロジェクトリンク:

https://github.com/glample/fastBPE

BPEの言葉は、一般的に以下の4つのステップ(第四使用されていない)を持っています:

learnbpe nCodes input1 [input2]           从1到2个文件中学习 BPE codes 
applybpe output input codes [vocab]    应用 BPE codes 对输入文件做分词
getvocab input1 [input2]                       从1到2个文件中抽取词汇
applybpe_stream codes [vocab]           apply BPE codes to stdin and outputs to stdout
  1. コードを学びます
./fast learnbpe 40000 train.de train.en > codes

BPEは、train.deからコードを学習し、ファイル内のファイルに2つのコードと出力をtrain.en、40,000はコードBPE(40,000を取る前にランクサブワード)の数です。

神経質機械翻訳モデルの基本単位としてサブワードの訓練のために、最初のステップは、コードに従ってBPEのリソースを生成したトレーニングコーパスで、英語では、例えば、リソースは、文字に応じて、文字の分割にトレーニングコーパスになります組み合わせ、及び全ての組み合わせの結果が発生、頻度の頻度に従ってソートされるように、より高いより前方に現れるランキング、最初にサブワードの最高周波数です。図に示すように:最高周波数サブワードが現れるが、S </ w>が文字などの単語の末尾を表す、21090192回発生E S </ w>が、22968671回現れます。トレーニングプロセスは、ファイルには、コードが生成されます、完了です。40000のBPEコードの数、そう40,000行の合計コードファイル。次のようにコードのドキュメントを読み取ります。

ここに画像を挿入説明
電車にコードを適用します。2.

./fast applybpe train.de.40000 train.de codes
./fast applybpe train.en.40000 train.en codes

train.deのために、コードファイルを生成することにより、train.enワード、train.de.40000を生成し、train.en.40000ファイル。
次のようにtrain.en.40000文書が読み取ります。

ここに画像を挿入説明
列車の語彙を取得します。3.

./fast getvocab train.de.40000 > vocab.de.40000
./fast getvocab train.en.40000 > vocab.en.40000
./fast getvocab train.de.40000 train.en.40000  > vocab.de-en.40000

語彙がtrain.de.40000から引き出されにvocab.de.40000に保存します。
語彙がtrain.en.40000から引き出されにvocab.en.40000に保存します。
train.de.40000から、train.en.40000共通語彙が抽出され、中vocab.de-en.40000に保存されました。
次のようにvocab.en.40000文書が読み取ります。

ここに画像を挿入説明

公開された52元の記事 ウォン称賛7 ビュー40000 +

おすすめ

転載: blog.csdn.net/weixin_38937984/article/details/103995209