約 500 の異なる段落で構成されるデータセットがあります。各段落について、他の段落へのリンクがあるかどうかを確認しようとしています。これに基づいて、段落ペアを作成しました。以前は、この問題をバイナリの問題 (0 または 1、リンクがあるかどうか) としてアプローチしようとしましたが、今度はランキング (各段落ペアに確率を割り当てる) を試してみたいと思います。
私の問題は次のとおりです: テストとトレーニング セットをランダムに分割し、各段落のすべての段落ペアを同じセットに保持するにはどうすればよいですか? たとえば、段落 1 の場合、関連するすべてのペア (1-2、1-3、1-4、1-5...1-500) をテスト セットまたはトレーニング セットに含めたいとします。たとえば、ペアの半分がトレーニング セットにある場合、ランキングは機能しません。これは、テスト セットのランキングにいくつかのペアが欠けているためです...
フォーマット
パラグラフA | パラグラフB | ラベル | 特徴...
パラグラフ 1 | パラグラフ 4 | 1 | ...
パラグラフ 2 | パラグラフ 6 | 1 | ...
パラグラフ 6 | パラグラフ 8 | 0 | ...
パラグラフ 10 | パラグラフ 2 | 1 | ...
私はsklearn train_test_splitを使用しています:
import pandas as pd
from sklearn.model_selection import train_test_split
feature_headers = ['tfidf_cosine', 'count_vec_cosine', 'lda_50topics_cosine', 'lda_200topics_cosine']
target_header = ['label']
train_x, test_x, train_y, test_y = train_test_split(result[feature_headers], result[target_header],
train_size=0.7)