テキストの 1 つとテキスト内の単語の頻度の 2 つのマトリックスがあります。単語頻度マトリックスから 1 行を削除します。テキスト番号 (テキスト マトリックスの行インデックス) を使用して、単語頻度マトリックスから行を抽出するにはどうすればよいですか?
例えば:
ステップ 1: テキストのリスト
行にテキストのリストがあり、各テキストは行番号で参照されます。
>>print type(texts)
>>print texts.shape
<type 'numpy.ndarray'>
(53,)
ステップ 2: 行番号に基づいてテキストを選択する
そして、私はこのような範囲を持っています:
>>print train_range
>>[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
51 52]
この範囲は、から行を選択するために使用されますtexts
。train_range
これは基本的に、1 つのテキストを削除することを意味します。. 次の例では、最初の行 (行 0) が削除されます。0 は に含まれていないためですtrain_range
。
texts[train_range]
ステップ 3: テキストの単語頻度を取得する
次に、テキストが (単語の頻度によって) 分析され、スパース行列が返されtrain_X
ます。各テキストは の行であるtexts
ため、各テキストの単語頻度は の行に配置されtrain_X
ます。53texts
行あり、texts[train_range]
52 行あり、train_X
52 行あります。
trainX = get_word_freq_matrix( texts[train_range] )
>>print train_X.shape
(52, 6237)
>>print type(train_X)
<class 'scipy.sparse.csr.csr_matrix'>
ステップ 4: 一部のテキストの単語頻度を取得する
train_X
次のように、新しい範囲を使用して、元のテキスト番号から行を取得したいと思います。
apply_range = [4,7,8]
train_X[apply_range]
apply_range
ただし、 (のような)内の数字はtrain_range
の行を参照していますtexts
。数字は の行を参照していませんtrain_X
。train_X
この範囲を使用して、表示される場所に基づいて正しい周波数を取得するにはどうすればよいtexts
ですか?
別のマトリックスからのインデックスを使用して、マトリックス内の行を参照しようとしました。ただし、どのテキストが から削除されたかを関数が考慮していないため、これがどのように機能するかはわかりませんtexts
。