我使用sklearn的KMeans算法进行文档聚类,如中所述http://brandonrose.org/clustering
以下是TFIDF矩阵的计算。我已经理解TFIDF技术背后的概念,但当我打印这个矩阵时,矩阵是这样的:
(0, 11) 0.238317554822
(0, 34) 0.355850989305
(0, 7) 0.355850989305
(0, 21) 0.238317554822
(0, 16) 0.355850989305
(0, 35) 0.355850989305
(0, 8) 0.355850989305
(0, 17) 0.355850989305
(0, 36) 0.355850989305
(1, 11) 0.238317554822
(1, 21) 0.238317554822
(1, 23) 0.355850989305
(1, 0) 0.355850989305
(1, 24) 0.355850989305
(1, 12) 0.355850989305
(1, 22) 0.355850989305
(1, 25) 0.355850989305
(1, 13) 0.355850989305
(2, 2) 0.27430356415
(2, 18) 0.339992197465
(2, 26) 0.339992197465
(2, 39) 0.339992197465
(2, 3) 0.339992197465
(2, 19) 0.339992197465
(2, 27) 0.339992197465
(2, 4) 0.339992197465
(2, 20) 0.339992197465
(3, 2) 0.27430356415
(3, 40) 0.339992197465
(3, 9) 0.339992197465
(3, 1) 0.339992197465
(3, 5) 0.339992197465
(3, 41) 0.339992197465
(3, 10) 0.339992197465
(3, 6) 0.339992197465
(3, 42) 0.339992197465
(4, 11) 0.202877476983
(4, 21) 0.202877476983
(4, 28) 0.302932576437
(4, 31) 0.302932576437
(4, 37) 0.302932576437
(4, 14) 0.302932576437
(4, 29) 0.302932576437
(4, 32) 0.302932576437
(4, 38) 0.302932576437
(4, 15) 0.302932576437
(4, 30) 0.302932576437
(4, 33) 0.302932576437
这个矩阵中的值代表什么?有人能帮助我理解这一点吗?
第一列包含元组(ind_document, ind_word)
,其中ind_document
是数据集中包含的文档的索引(在本例中为string
(,ind_word
是TfidfVectorizer
对象生成的词典中单词的索引。
第二列包含给定word
的TF-IDF值(对应于(ind_document, ind_word)
.的单词
更新
如果您仔细观察这里TfidfVectorizer
的实现,您可以看到有一个名为norm
的参数。默认情况下,此参数设置为l2
,这是用于规范化所获得数据的L2范数。
如果您不想标准化数据并将其与手动获得的结果进行比较,请将此参数更改为norm = None