これは、学部試験コースの主要な宿題です。基本的にランダムな方法で書かれていました。当時、私は何も知らなかったし、あらゆる種類のAPIを使用できなかったので、多くの場所での実装は非常に不適切でした。さらに、モデルはトラブルを節約するために最も単純なモデルも選択しており、コードレベルとアカデミックレベルの両方で参照値はありません。
さらに、データを使用する許可がないため、データセットを開示することはできません。理解してください
LSTMに基づく中国のQ&Aシステム
このプロジェクトは、特定の質問に対する答えが双方向の長期および短期メモリネットワークモデルを確立することにより、複数の文に配置されている文を見つける機能を実現します。サードパーティのインターネットリソースを使用するという前提で、Data.Dataを使用してDataを検証できます。Data。 MRRは0.75以上に達する可能性があります。
実行方法
環境への依存
プログラム バージョン Python 3.5.2 Tensorflow 1.2.1 ジーバ 0.38 cuda 8.0(8.0.61.2) cudnn 5.1 CudaとCudnnはどちらもTensorflowの依存関係です。インストール方法を取得するには、公式のTensorflowドキュメントを確認してください。残りは
pip installコマンドを使用してインストールできますサードパーティリソースの使用に関する指示
- 中国のテキストで単語セグメンテーションを実行するとき、Jiebaセグメンテーションが使用されます
- 良い単語をエンコードする場合、1ホットのエンコードによって引き起こされるパフォーマンスの損失を回避するために、単語の埋め込みエンコードが使用されます。単語ベクトルは、中国のウィキペディアでのオフラインデータトレーニングを通じて得られた50次元の単語ベクトルファイルを使用します
プログラムを実行します
依存関係ライブラリをインストールした後、main.pyを直接実行するだけです。トレーニングされたモデルがある場合、プログラムはモデルを直接ロードするか、再びトレーニングを開始するかどうかを促します。
main.pyはパラメーターを受け取りません。構成を変更する必要がある場合は、コードを直接変更してください。ファイルには詳細な中国のコメントがあります。それに応じて変更してください
Taevaluation.pyは、アシスタントのティーチングアシスタントが書いたMRR、MAP、およびACC@1の評価を提供できる評価スクリプトです。入力形式と出力形式にいくつかの変更を加えました
トレーニングについて
トレーニングされたモデルを使用しないことを選択した場合、またはトレーニングされたモデルがない場合、プログラムはTraining.dataおよびDevelop.dataでデータを使用してモデルをトレーニングします。デフォルトのパラメーターを使用する場合、トレーニングは最大8Gメモリ + 2Gビデオメモリを消費します。エラーレポートを防ぐために、コンピューターが事前に十分なハードウェアリソースを持っていることを確認してください。完全なトレーニングプロセスは、GTX 850M+I5 4210H条件下で約12時間かかりました。
さらに、パラメーターを調整した場合、同じパラメーターを使用しても、各トレーニングの結果は、MRRメトリックを使用して最大0.03で変動する可能性があり、その理由は明確ではありません。個人のハードウェアと時間制限により、非常に大まかなパラメーター調整のみが実行されており、ほとんどのパラメーターにはさらに最適化の余地があります。興味があれば、最適化しようとすることもできます。