文本挖掘稀疏/非稀疏意义

时间:2016-07-01 09:22:52

标签: r text-mining

有人可以告诉我,这意味着下面的代码和输出?我确实在这里创建了语料库

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)

这里发生了什么,非/稀疏条目和稀疏性意味着什么?有人可以帮助我理解这些。

谢谢。

2 个答案:

答案 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中的624298%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个零个参赛作品。

稀疏是一个常用术语。在文本挖掘中,您经常会得到非常大的矩阵,其中许多单元格为零。将所有单元格逐个存储在内存中可能很聪明,但只需存储少量非零条目+它们的位置以节省内存。您可以通过查找稀疏矩阵来了解更多相关信息。