有人可以告诉我,这意味着下面的代码和输出?我确实在这里创建了语料库
frequencies = DocumentTermMatrix(corpus)
frequencies
输出
<<DocumentTermMatrix (documents: 299, terms: 1297)>>
Non-/sparse entries: 6242/381561
Sparsity : 98%
Maximal term length: 19
Weighting : term frequency (tf)
稀疏的代码在这里。
sparse = removeSparseTerms(frequencies, 0.97)
sparse
输出
> sparse
<<DocumentTermMatrix (documents: 299, terms: 166)>>
Non-/sparse entries: 3773/45861
Sparsity : 92%
Maximal term length: 10
Weighting : term frequency (tf)
这里发生了什么,非/稀疏条目和稀疏性意味着什么?有人可以帮助我理解这些。
谢谢。
答案 0 :(得分:7)
通过此代码,您创建了语料库的文档术语矩阵
frequencies = DocumentTermMatrix(corpus)
文档术语矩阵(DTM)按文档列出语料库中所有出现的单词。在DTM中,文档由行表示,术语(或单词)由列表示。如果在特定文档中出现单词,则对应于该行和列的矩阵条目为1,否则为0(记录文档中的多次出现 - 即,如果文档中出现两次单词,则为在相关矩阵条目中记录为“2”。
作为一个例子,考虑有两个文件的语料库。
Doc1:香蕉很好
Doc2:香蕉是黄色的
上述语料库的DTM看起来像
banana are yellow good
Doc1 1 1 1 0
Doc2 1 1 0 1
输出
<<DocumentTermMatrix (documents: 299, terms: 1297)>>
Non-/sparse entries: 6242/381561
Sparsity : 98%
Maximal term length: 19
Weighting : term frequency (tf)
输出表示DTM有299个条目,其中有超过1297个条款至少出现过一次。
sparse = removeSparseTerms(frequencies, 0.97)
现在,您要删除数据中不常显示的那些术语。我们将删除任何未出现在至少3%的条目(或文档)中的元素。关于上面创建的DTM,我们基本上删除那些条目为1个文档数量最少的列。
现在,如果你看一下输出
> sparse
<<DocumentTermMatrix (documents: 299, terms: 166)>>
Non-/sparse entries: 3773/45861
Sparsity : 92%
Maximal term length: 10
Weighting : term frequency (tf)
条目(文件)的数量仍然相同,即299,但至少出现一次的条款数量已改为166。
答案 1 :(得分:4)
非稀疏条目:6242/381561
稀疏度:98%
381561
frequencies
0
中的6242
个98%
,381561/(381561+6242)
,removeSparseTerms(frequencies, 0.97)
的值为非零值。所有单元格的frequencies
为零(97%
)
DocumentTermMatrix
删除166
中的那些术语,其中所有单元格中至少45861
为零,即在语料库中非常罕见。因此,您会获得一个新的LogicFileSample
+--- Bulk A
+---- Detail A1
+---- Detail A2
+--- Bulk B
+---- Detail B1
+---- Detail B2
...
+--- ...
LogicFileSample
个术语,只有Bulk
个零个参赛作品。
稀疏是一个常用术语。在文本挖掘中,您经常会得到非常大的矩阵,其中许多单元格为零。将所有单元格逐个存储在内存中可能很聪明,但只需存储少量非零条目+它们的位置以节省内存。您可以通过查找稀疏矩阵来了解更多相关信息。