Tensorflow(1.1.0)に実装されている言い換えのためのさまざまなモデルとコード。
私はコードを文書化し、モデル全体のさまざまなステップで自分がしていることを説明するために細心の注意を払っています。うまくいけば、Tensorflowを始めたいと思っている人にとっては、それが教訓的な例コードになるでしょう!
これまでのところ、このリポジトリは次のように実装しています。
Mueller、Jonas、Aditya Thyagarajanのモデルに基づいた基本的なシャムLSTMベースライン。 「文の類似性を学習するためのシャムの再発アーキテクチャ。」 AAAI(2016)。
Liu、Yang et al。 「双方向のLSTMモデルと内部出席を使用した自然言語の推論を学ぶ。」 Corr ABS/1605.09090(2016)。
王、Zhiguo et al。 「自然言語の文のための二国間の多視点マッチング」。 Corr ABS/1702.03814(2017)。
より多くのモデルを追加 /最適化またはパッチするPRは、大歓迎です!モデルコードの大部分は、duplicate_questions/モデルに存在します
多くのデータ処理コードは、Allenai / deep_qaから /触発されている /インスピレーションを受けています。このプロジェクトがどのように構成されているかが好きなら、それらをチェックしてください!
このプロジェクトは開発され、 Python 3.5でテストされています(Pythonの他のバージョンでは動作しない可能性があります)。パッケージ要件はrequirements.txtであります。
要件をインストールするには:
pip install -r requirements.txt
要件をインストールした後、(シェルで)実行して必要なNLTKデータをダウンロードする必要があることに注意してください。
python -m nltk.downloader punkt
requirements.txtファイルは、TensorflowのCPUバージョンであるtensorflow依存関係として指定していることに注意してください。 GPUをお持ちの場合は、このCPU TensorFlowをアンインストールし、実行してGPUバージョンをインストールする必要があります。
pip uninstall tensorflow
pip install tensorflow-gpu
まず、以下を実行して、データ、トレーニングされたモデル、およびログを保存するための補助ディレクトリを生成します。
make aux_dirs
さらに、前処理された手袋ベクトルを使用する場合は、次のことを実行します。
make glove
これは、前処理された手袋ベクトルをdata/external/にダウンロードします。同じディレクトリにファイルを抽出します。
Quora質問ペアデータを使用するには、Kaggleからデータセットをダウンロードします(アカウントが必要になる場合があります)。ダウンロードしたZIPアーカイブをdata/raw/に配置し、同じディレクトリにファイルを抽出します。
次に、実行:
make quora_data
scripts/data/quoraのスクリプトを使用してデータを自動的にクリーニングして処理します。
モデルをトレーニングするか、モデルでロード +予測するには、 scripts/run_model/でスクリプトをpython <script_path>で実行します。 python <script_path> -hを実行することで、彼らが取るパラメーターに関する追加のドキュメントを取得できます
ベースラインシャムビルストの例の実行コマンドは次のとおりです。
python scripts/run_model/run_siamese.py train --share_encoder_weights --model_name=baseline_siamese --run_id=0
これは、マッチングレイヤーを備えたシャムBilstmのランコマンドの例です。
python scripts/run_model/run_siamese_matching_bilstm.py train --share_encoder_weights --model_name=siamese_matching --run_id=0
これは、BIMPMモデルの例の実行コマンドです。
python scripts/run_model/run_bimpm.py train --early_stopping_patience=5 --model_name=biMPM --run_id=0
デフォルトはあなたの使用に理想的ではないかもしれないことに注意してください。そのため、好きなノブを自由に回してください。
このレポを改善する方法についてのアイデアはありますか?機能要求、バグレポート、またはパッチがありますか?問題やPRを自由に開いてください。問題に対処し、プルリクエストを見てください。
├── LICENSE
├── Makefile <- Makefile with commands like `make data` or `make train`
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- Original immutable data (e.g. Quora Question Pairs).
|
├── logs <- Logs from training or prediction, including TF model summaries.
│
├── models <- Serialized models.
|
├── requirements.txt <- The requirements file for reproducing the analysis environment
│
├── duplicate_questions<- Module with source code for models and data.
│ ├── data <- Methods and classes for manipulating data.
│ │
│ ├── models <- Methods and classes for training models.
│ │
│ └── util <- Various helper methods and classes for use in models.
│
├── scripts <- Scripts for generating the data
│ ├── data <- Scripts to clean and split data
│ │
│ └── run_model <- Scripts to train and predict with models.
│
└── tests <- Directory with unit tests.