説明
Skip-Thought Vectorsプロジェクトは、研究論文「Skip-Thought Vectors」から直接派生したSent2Vecエンコーダーおよび関連するトレーニングコードを提供します。このツールは、高品質で密な文のベクトル表現を生成するように設計されています。これらの文埋め込みは、幅広い自然言語処理(NLP)アプリケーションで利用でき、そのパフォーマンスを大幅に向上させます。
実装は主にPythonで行われ、Python 2.7、Theano 0.7、NumPy、SciPy、scikit-learn、NLTK 3などの特定の依存関係が必要です。また、特定の実験にはKerasとgensimがオプションで必要になります。ユーザーは、サイズが大きい事前学習済みモデルファイルと単語埋め込みをダウンロードする必要があり、十分なストレージスペースが必要です。セットアップには、`skipthoughts.py`スクリプト内のこれらのダウンロード済みファイルへのパスの設定と、デバイス選択(CPUまたはGPU)のためのTheanoフラグの設定が含まれます。
セットアップが完了すると、エンコーダーは文のリストを処理して数値ベクトルを生成できます。出力ベクトルは4800次元で、uni-skipモデルとbi-skipモデルを組み合わせており、論文の実験で実証された最適なパフォーマンスのために結合ベクトルが推奨されます。エンコーディングプロセスは冗長性を制御でき、処理中の文の長さに応じて進行状況を表示します。
このリポジトリには、論文で詳述されている実験を再現するためのコードも含まれています。これには、TREC質問タイプ分類、画像-文ランキング(COCOデータセットを使用)、意味的関連性(SICKデータセット)、パラフレーズ検出(Microsoft Research Paraphrase Corpus)、およびさまざまなバイナリ分類ベンチマーク(MR、CR、SUBJ、MPQA)が含まれます。これらの実験スクリプトは、報告された結果を達成するためのデータ準備と実行方法についてユーザーをガイドし、ハイパーパラメータチューニングのためにクロスバリデーションを伴うことがよくあります。
このプロジェクトは、文末(EOS)トークンの重要性を強調しています。これは、特に標準的な句読点がない文の場合、パフォーマンスを向上させるためにエンコーディング中にオプションで使用できます。コードはApache License 2.0の下でリリースされており、コードが有用であると感じた場合は、関連する研究論文を引用することが推奨されます。
Skip-Thought Vectorsのハイライト
Sent2Vecエンコーダーの実装
「Skip-Thought Vectors」論文からのトレーニングコード
密な文ベクトル表現の生成
uni-skipおよびbi-skipモデルのサポート
最高のパフォーマンスのために推奨されるcombine-skipベクトル
TREC分類実験用のコードを含む
画像-文ランキング実験用のコードを含む
意味的関連性実験用のコードを含む
パラフレーズ検出実験用のコードを含む
バイナリ分類ベンチマーク用のコードを含む
エンコーディングのためのオプションのEOSトークン使用
Pythonベースの実装
Skip-Thought Vectorsをはじめる
モデルファイルと単語埋め込みをダウンロードする
skipthoughts.pyでダウンロード済みファイルへのパスを設定する
THEANO_FLAGSをデバイス選択(CPU/GPU)用に設定する
skipthoughtsをインポートし、モデルをロードする
ロードされたモデルでエンコーダーを初期化する
文のリストをエンコードしてベクトルを取得する
特定のNLP実験のために提供されたスクリプトを実行する
Skip-Thought Vectorsの使用例
- 文埋め込み生成
- テキスト分類
- 画像-文ランキング
- 意味的類似性
- パラフレーズ検出
- バイナリ分類







