私は5つの文書を持つテキストコーパスを持っています。すべての文書は/ nでお互いに分かれています。私は文書内のすべての単語にidを与え、それぞれのtfidf
のスコアを計算したいと考えています。 例えば、私たちは次のように「corpus.txt」という名前のテキストコーパスを持っているとします -テキストコーパスをvocabulary_idとそれぞれのtfidfスコアでテキスト文書に変換する
mylist =list("corpus.text")
vectorizer= CountVectorizer
x_counts = vectorizer_train.fit_transform(mylist)
tfidf_transformer = TfidfTransformer()
x_tfidf = tfidf_transformer.fit_transform(x_counts)
を使用してTFIDFを計算しながら 「スタック は流れの上に テキストベクトル化scikit PythonがまばらなCSRのscipyのダウンロード」
出力
(0,12) 0.1234 #for 1st document
(1,8) 0.3456 #for 2nd document
(1,4) 0.8976
(2,15) 0.6754 #for third document
(2,14) 0.2389
(2,3) 0.7823
(3,11) 0.9897 #for fourth document
(3,13) 0.8213
(3,5) 0.7722
(3,6) 0.2211
(4,7) 0.1100 # for fifth document
(4,10) 0.6690
(4,2) 0.0912
(4,9) 0.2345
(4,1) 0.1234
Iは、文書IDを削除するリストのリストにこのscipy.sparse.csr
行列を変換し、Kでありますのみvocabulary_idとそれぞれtfidf
スコア使っeeping:
m = x_tfidf.tocoo()
mydata = {k: v for k, v in zip(m.col, m.data)}
key_val_pairs = [str(k) + ":" + str(v) for k, v in mydata.items()]
をしかし、問題は、私はvocabulary_idとそれぞれtfidf
スコアは昇順で、ドキュメントを参照せずに配置された出力を取得していますということです。次のように私は私のテキストファイルは次のようになりたいだろう一方
1:0.1234
2:0.0912
3:0.7823
4:0.8976
5:0.7722
6:0.2211
7:0.1100
8:0.3456
9:0.2345
10:0.6690
11:0.9897
12:0.1234
13:0.8213
14:0.2389
15:0.6754
:たとえば
は、上記のコーパスのために私の現在の出力は、(私はJSONを使用してテキストファイルにダンプしている)のようになります。
12:0.1234
8:0.3456 4:0.8976
15:0.1234 14:0.2389 3:0.7823
11:0.9897 13:0.8213 5:0.7722 6:0.2211
7:0.1100 10:0.6690 2:0.0912 9:0.2345 1:0.1234
どうすればいいですか?
Iをあなたの質問に答えました、うまくいけばそれは彼になりますあなた! –