我有一个带有5个文档的文本语料库,每个文档之间用/ n分隔。我想为文档中的每个单词提供一个id并计算其各自的tfidf
分数。 例如,假设我们有一个名为“corpus.txt”文本语料库如下: -将文本语料库转换为带有vocabulary_id和tfidf分数的文本文档
“堆栈 过流 文本量化scikit 蟒蛇SciPy的稀疏CSR” 在计算使用
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
输出是
(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
我转换这个scipy.sparse.csr
矩阵成列表的列表删除的文档ID,并且k eeping仅使用vocabulary_id及其相应tfidf
得分:
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
分数以升序排列,没有任何关于文件的输出。
例如,对于上面给出的语料库我的电流输出(我丢到使用文本文件JSON)看起来像:
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
,而我会想我的文本文件,要像如下:
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
任何想法如何完成它?
我已经回答了你的问题,希望他会lp你! –