文本挖掘 sparse/Non-sparse 含义

text mining sparse/Non-sparse meaning

有人可以告诉我,下面代码和输出的含义吗?我确实在这里创建了 Corpus

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)

这里发生了什么,Non-/sparse 个条目和稀疏性是什么意思?有人可以帮助我理解这些。

谢谢。

通过这段代码,您已经创建了语料库的文档术语矩阵

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。

Non-/sparse entries: 6242/381561
Sparsity : 98%

这看起来像 frequencies 中的 381561 个单元格是 06242 具有非零值。 98% 个单元格为零(即 381561/(381561+6242)

removeSparseTerms(frequencies, 0.97) 删除了 frequencies 中的那些术语,所有单元格中至少 97% 为零,即在语料库中很少见。因此,您会得到一个新的 DocumentTermMatrix,其中包含 166 个术语,并且只有 45861 个零条目。

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