如何分析sklearn中tfidf矩阵的值?
how to analyze the value of tfidf matrix in sklearn?
我正在按照中的指导使用 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
here 的实现,您会发现有一个名为 norm
的参数。通过默认,此参数设置为l2
,这是用于对获得的数据进行归一化的 L2 范数。
如果您不想规范化您的数据并将其与手动获得的结果进行比较将此参数更改为norm = None
我正在按照中的指导使用 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
here 的实现,您会发现有一个名为 norm
的参数。通过默认,此参数设置为l2
,这是用于对获得的数据进行归一化的 L2 范数。
如果您不想规范化您的数据并将其与手动获得的结果进行比较将此参数更改为norm = None