CountVectorizer().fit_transform()的输出是稀疏矩阵.这意味着它只存储矩阵的非零元素.当您执行打印(X)时,只会在图像中显示非零条目.
CountVectorizer在其默认配置中,对给定文档或原始文本进行标记(仅包含其中包含2个或更多字符的术语)并计算单词出现次数.
基本上,步骤如下:
> Step1 – 从fit()中的所有文档中收集所有不同的术语.
对于您的数据,他们是
[u’disk’,u’format’,u’hard’,u’how’,’u’my’,u’problems’,u’to’]
这可以从vectorizer.get_feature_names()获得
> Step2 – 在transform()中,计算fit()中出现的每个文档中的术语数,并在术语 – 频率矩阵中输出它.
在您的情况下,您将两个文档都提供给transform()(fit_transform()是fit()的简写,然后是transform()).所以,结果是
[u’disk’,u’format’,u’hard’,u’how’,’u’my’,u’problems’,u’to’]
首先1 1 1 1 1 0 1
Sec 0 1 1 0 0 1 0
您可以通过调用X.toarray()来获得上述结果.
在您发布的print(X)图像中,第一列表示term-freq矩阵的索引,第二列表示该术语的频率.
< 0,0>表示第一行,第一列,即第一个文档中术语“磁盘”(我们的标记中的第一项)的频率= 1
< 0,2>表示第一行,第三列,即第一个文档中术语“硬”(我们的标记中的第三项)的频率= 1
< 0,5>表示第一行,第六列,即第一个文档中术语“问题”(我们的标记中的第六项)的频率= 0.但是因为它是0,所以它不会显示在图像中.