GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

facebookresearch

MUSE – 多言語の教師なしまたは監督下の単語埋め込みのための図書館

投稿日:

多言語の教師なしまたは監督下の単語埋め込みのための図書館

MUSE:多言語非監督および監督付き埋め込み

MUSEは多言語の単語埋め込みのためのPythonライブラリです。その目的はコミュニティに以下のものを提供することです:

  • fastTextに基づく最先端の多言語単語埋め込み
  • 訓練と評価のための大規模な高品質バイリンガル辞書

バイリンガル辞書または同一の文字列を使用する監督者と、パラレルデータを使用しない監督者の 2つの方法があります(詳細については、 パラレルデータなしのワードトランスレーションを参照してください)。

依存関係

  • Python 2/3とNumPy / SciPy
  • PyTorch
  • 高速最近傍探索(CPUまたはGPU)のためのFaiss (推奨)。

MUSEはPython 2または3のCPUまたはGPUで利用できます。FaissはGPUユーザーにとってはオプションですが、Faiss-GPUは最近隣の検索を大幅に高速化し、CPUユーザーに強く推奨します。 Faissは、 “conda install faiss-cpu -c pytorch”または “conda install faiss-gpu -c pytorch”を使用してインストールできます。

評価データセットを取得する

単一言語および複数言語の単語埋め込み評価データセットを取得する:

  • 私たちの110のバイリンガル辞書
  • 6つの言語のための28の単一言語単語の類似性タスク、および英語の類推タスク
  • SemEval2017からのクロスワード単語類似タスク
  • Europarl corporaによる文翻訳検索

単純に(data /で)実行することによって:

./get_evaluation.sh

注意:bash 4が必要です。Europarlのダウンロードはデフォルトでは無効(遅い)ですが、 ここで有効にすることができます

単一言語の埋め込みを取得する

事前に訓練された単一言語の単語の埋め込みについては、 fastText Wikipediaの埋め込みを強くお勧めします。また、 fastTextを使用してコーパスから自分の単語の埋め込みを訓練することもできます。

あなたは英語(en)とスペイン語(es)の埋め込みを次のようにダウンロードできます:

# English fastText Wikipedia embeddings
curl -Lo data/wiki.en.vec https://s3-us-west-1.amazonaws.com/fasttext-vectors/wiki.en.vec
# Spanish fastText Wikipedia embeddings
curl -Lo data/wiki.es.vec https://s3-us-west-1.amazonaws.com/fasttext-vectors/wiki.es.vec

単一言語の単語埋め込みを調整する

このプロジェクトには、クロスリンガル単語の埋め込みを取得する2つの方法があります。

  • 指導 :列車のバイリンガル辞書(またはアンカーポイントと同じ文字列)を使用して、(繰返し) Procrustesアライメントを使用して、ソースからターゲットスペースへのマッピングを学習します。
  • 教師なし :パラレルデータやアンカーポイントがない場合は、反復的なトレーニングと(反復的な)Procrustesの洗練を使用して、ソースからターゲットスペースへのマッピングを学習します。

これらのアプローチの詳細については、こちらをご覧ください。

監視された方法:反復的なProcrustes(CPU | GPU)

ソースとターゲットスペースの間のマッピングを知るには、次のコマンドを実行します。

python supervised.py --src_lang en --tgt_lang es --src_emb data/wiki.en.vec --tgt_emb data/wiki.es.vec --n_refinement 5 --dico_train default

デフォルトでは、 dico_trainは地上真理辞書(上記でダウンロード)を指します。 “identical_char”に設定すると、ソースとターゲット言語の間で同じ文字列を使用してボキャブラリを形成します。 ログと埋め込みは、ダンプされた/ディレクトリに保存されます。

管理されていない方法:敵対的なトレーニングと洗練(CPU | GPU)

敵対的な訓練と反復的なProcrustes改良を使用してマッピングを学習するには、以下を実行します。

python unsupervised.py --src_lang en --tgt_lang es --src_emb data/wiki.en.vec --tgt_emb data/wiki.es.vec --n_refinement 5

デフォルトでは、検証メトリックは、CSLS(クロスドメイン類似性ローカルスケーリング)で構築された合成辞書の単語対の平均余弦です。

単一言語またはクロスリンガルの埋め込みを評価する(CPU | GPU)

また、いくつかのタスクで単一言語またはクロスランゲージ語の埋め込みの質を評価するための簡単なスクリプトも含まれています。

単一言語

python evaluate.py --src_lang en --src_emb data/wiki.en.vec --max_vocab 200000

クロスリンガル

python evaluate.py --src_lang en --tgt_lang es --src_emb data/wiki.en-es.en.vec --tgt_emb data/wiki.en-es.es.vec --max_vocab 200000

ダウンロード

私たちは多言語の埋め込みと真実のバイリンガル辞書を提供しています。

多言語の単語の埋め込み

我々は、 単一のベクトル空間に整列された、 30の言語のためのfastText Wikipedia 監督ワード埋め込みをリリースする。

アラビア語: テキスト ブルガリア語: テキスト カタロニア語: テキスト クロアチア語: テキスト チェコ語: text デンマーク語: テキスト
オランダ語: テキスト 英語: テキスト エストニア語: テキスト フィンランド語: テキスト フランス語: テキスト ドイツ語: テキスト
ギリシャ語: テキスト ヘブライ語: テキスト ハンガリー語: テキスト インドネシア語: テキスト イタリア語: テキスト マケドニア語: テキスト
ノルウェー語: テキスト ポーランド語: テキスト ポルトガル語: テキスト ルーマニア語: テキスト ロシア語: テキスト スロバキア語: テキスト
スロベニア語: テキスト スペイン語: テキスト スウェーデン語: テキスト トルコ語: テキスト ウクライナ語: テキスト ベトナム語: テキスト

真実のバイリンガル辞書

内部翻訳ツールを使用して110の大規模な真偽のバイリンガル辞書を作成しました。 辞書は言葉の多義性をうまく扱います。 私たちは列車を提供し、5000と1500のユニークなソースワードと、100kペアまでのより大きなセットをテストします。 私たちの目標は、クロスランゲージ語の埋め込みと多言語NLPの開発と評価容易にすることです。

あらゆる方向のヨーロッパ言語

src-tgt ドイツ人 英語 スペイン語 フランス語 イタリアの ポルトガル
ドイツ人 フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト
英語 フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト
スペイン語 フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト
フランス語 フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト
イタリアの フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト
ポルトガル フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト フル トレイン テスト

他の言語から英語(例:{fr、es} -en)

アフリカーンス語: 完全な 列車の テスト アルバニア語: フル・ トレイン・ テスト アラビア語: 完全な 列車の テスト ベンガル語: 完全な 列車の テスト
ボスニア語: 完全な 列車の テスト ブルガリア語: 完全な 列車の テスト カタロニア語: 完全な 列車の テスト 中国語: フル・ トレイン・ テスト
クロアチア語: フル・ トレイン・ テスト チェコ: フル トレイン テスト デンマーク語: フル・ トレイン・ テスト オランダ語: フル・ トレイン・ テスト
英語: フル・ トレイン・ テスト エストニア語: 完全な 列車の テスト フィリピン: フル トレイン テスト フィンランド語: フル トレイン テスト
フランス語: フル・ トレイン・ テスト ドイツ語: フル・ トレイン・ テスト ギリシャ語: 完全な 列車の テスト ヘブライ語: 完全な 列車の テスト
ヒンディー語: 完全な 列車の テスト ハンガリー語: 完全な 列車の テスト インドネシア語: フル トレイン テスト イタリア語: フル・ トレイン・ テスト
日本語: フル・ トレイン・ テスト 韓国語: 完全な 列車の テスト ラトビア語: フル・ トレイン・ テスト リトアニア語: 完全な 列車の テスト
マケドニア語: 完全な 列車の テスト マレー語: フル・ トレイン・ テスト ノルウェー語: フル・ トレイン・ テスト ペルシア語: 完全な 列車の テスト
ポーランド語: フル・ トレイン・ テスト ポルトガル語: full train test ルーマニア語: 完全な 列車の テスト ロシア語: フル・ トレイン・ テスト
スロバキア語: 完全な 列車の テスト スロベニア語: 完全な 列車の テスト スペイン語: 完全な 列車の テスト スウェーデン: フル トレイン テスト
タミル語: フル・ トレイン・ テスト タイ語: フル・ トレイン・ テスト トルコ語: フル・ トレイン・ テスト ウクライナ語: 完全な 列車の テスト
ベトナム: フル・ トレイン・ テスト

英語から他の言語へ(例:en- {fr、es})

アフリカーンス語: 完全な 列車の テスト アルバニア語: フル・ トレイン・ テスト アラビア語: 完全な 列車の テスト ベンガル語: 完全な 列車の テスト
ボスニア語: 完全な 列車の テスト ブルガリア語: 完全な 列車の テスト カタロニア語: 完全な 列車の テスト 中国語: フル・ トレイン・ テスト
クロアチア語: フル・ トレイン・ テスト チェコ: フル トレイン テスト デンマーク語: フル・ トレイン・ テスト オランダ語: フル・ トレイン・ テスト
英語: フル・ トレイン・ テスト エストニア語: 完全な 列車の テスト フィリピン: フル トレイン テスト フィンランド語: フル トレイン テスト
フランス語: フル・ トレイン・ テスト ドイツ語: フル・ トレイン・ テスト ギリシャ語: 完全な 列車の テスト ヘブライ語: 完全な 列車の テスト
ヒンディー語: 完全な 列車の テスト ハンガリー語: 完全な 列車の テスト インドネシア語: フル トレイン テスト イタリア語: フル・ トレイン・ テスト
日本語: フル・ トレイン・ テスト 韓国語: 完全な 列車の テスト ラトビア語: フル・ トレイン・ テスト リトアニア語: 完全な 列車の テスト
マケドニア語: 完全な 列車の テスト マレー語: 完全な 列車の テスト ノルウェー語: フル・ トレイン・ テスト ペルシア語: 完全な 列車の テスト
ポーランド語: フル・ トレイン・ テスト ポルトガル語: full train test ルーマニア語: 完全な 列車の テスト ロシア語: フル・ トレイン・ テスト
スロバキア語: 完全な 列車の テスト スロベニア語: 完全な 列車の テスト スペイン語: 完全な 列車の テスト スウェーデン: フル トレイン テスト
タミル語: フル・ トレイン・ テスト タイ語: フル・ トレイン・ テスト トルコ語: フル・ トレイン・ テスト ウクライナ語: 完全な 列車の テスト
ベトナム: フル・ トレイン・ テスト

参考文献

このリポジトリ内のリソースが有用であることがわかった場合は[1]を挙げてください。

パラレルデータのない単語の翻訳

[1] A. Conneau *、G.Lample *、L. Denoyer、MA。 Ranzato、H.Jegou、 パラレルデータなしの単語翻訳

*同じ貢献。 注文はコインフリップで決定されています。

@article{conneau2017word,
  title={Word Translation Without Parallel Data},
  author={Conneau, Alexis and Lample, Guillaume and Ranzato, Marc'Aurelio and Denoyer, Ludovic and J{\'e}gou, Herv{\'e}},
  journal={arXiv preprint arXiv:1710.04087},
  year={2017}
}

MUSEは、単一言語データのみを用いた監督されていない機械翻訳に関する作業の原点にあるプロジェクトである[2]

単一言語データのみによる教師なし機械翻訳

[2] G. Lample、L. Denoyer、MA。 Ranzato非単語機械翻訳による単言語データのみ

@article{lample2017unsupervised,
  title={Unsupervised Machine Translation Using Monolingual Corpora Only},
  author={Lample, Guillaume and Denoyer, Ludovic and Ranzato, Marc'Aurelio},
  journal={arXiv preprint arXiv:1711.00043},
  year={2017}
}

連絡先: gl@fb.com aconneau@fb.com







-facebookresearch

執筆者: