如何分析sklearn中tfidf矩阵的值?

时间:2016-10-18 07:16:16

标签: python scikit-learn nltk k-means tf-idf

我正在使用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

此矩阵中的值代表什么?任何为此工作过的人能帮助我理解这个吗?

1 个答案:

答案 0 :(得分:1)

第一列包含元组(ind_document, ind_word),其中ind_document是您的数据集中包含的文档索引(在您的情况下为string),ind_wordTfidfVectorizer对象生成的单词词典中单词的索引。

第二列包含给定word的TF-IDF值(与(ind_document, ind_word)对应的字词。

<强>更新

如果您仔细观察TfidfVectorizer here的实施情况,可以看到有一个名为norm的参数。通过默认,此参数设置为l2,这是用于规范化所获数据的L2范数。

如果您不想将数据标准化并将其与手动获得的结果进行比较将此参数更改为norm = None