python – 如何分析sklearn中tfidf矩阵的值?
作者:互联网
我正在使用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是数据集中包含的文档索引(在您的情况下是一个字符串),ind_word是由TfidfVectorizer对象生成的单词字典中单词的索引.
第二列包含给定单词的TF-IDF值(对应于(ind_document,ind_word)的单词).
UPDATE
如果您仔细观察TfidfVectorizerhere的实现,可以看到有一个名为norm的参数.默认情况下,此参数设置为l2,这是用于规范化所获数据的L2范数.
如果您不想标准化数据并将其与手动获得的结果进行比较,请将此参数更改为norm = None
标签:python,k-means,nltk,scikit-learn,tf-idf 来源: https://codeday.me/bug/20190706/1393606.html