Skip to content

Instantly share code, notes, and snippets.

@pn11
Forked from mosmeh/how-to-use-giza-pp.md
Last active July 8, 2022 05:59
Show Gist options
  • Save pn11/d5ec6e9f5f47484e4788f3625a9b47fd to your computer and use it in GitHub Desktop.
Save pn11/d5ec6e9f5f47484e4788f3625a9b47fd to your computer and use it in GitHub Desktop.
GIZA++ の使い方

GIZA++ の使い方

GIZA++ は、統計的機械翻訳に使われるアライメントツールで、 IBM Model 1-5 と HMM を実装しています。今回は、Europarl Parallel Corpus で配布されている英独対訳コーパスのアライメントの尤度を推定させてみます。

セットアップ

# GIZA++ の準備
$ git clone https://github.com/moses-smt/giza-pp.git
$ cd giza-pp
$ make
$ cd GIZA++-v2

# 対訳コーパスを準備
$ wget http://www.statmt.org/europarl/v7/de-en.tgz
$ tar xfz de-en.tgz
$ cd de-en
$ mv europarl-v7.de-en.de german
$ mv europarl-v7.de-en.en english

やってみる

# 前準備
$ ./plain2snt.out german english
$ ./snt2cooc.out german.vcb english.vcb german_english.snt > german_english.cooc

# 実行
$ ./GIZA++ -s german.vcb -t english.vcb -c german_english.snt -coocurrence german_english.cooc

出力の見方

何やらよくわからないファイルがたくさん生成されていますが、見て欲しいのは ~.t3.final~.trn.src.vcb~.trn.trg.vcb です。 ~.trn.src.vcb~.trn.trg.vcb には "単語ID" "単語" "頻度" が、 ~.t3.final には "src の単語ID" "trg の単語ID" "尤度" がそれぞれスペース区切りで書かれています。これらのファイルの情報を統合すれば皆さんの欲しいものが得られます。やったね!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment