如何使用 R 计算文档 collection/corpus 中出现频率最高的 terms/words?
How to calculate most frequent occurring terms/words in a document collection/corpus using R?
首先,我创建了一个文档术语矩阵,如下所示
dtm <- DocumentTermMatrix(docs)
然后我把每个词向量出现的总和如下
totalsums <- colSums(as.matrix(dtm))
前 7 个元素的总和(R 表示类型 'double')如下所示。
aaab aabb aabc aacc abbb abbc abcc ...
9 2 10 4 7 3 12 ...
我设法使用以下命令对其进行了排序
sorted.sums <- sort(totalsums, decreasing=T)
现在我想提取总和大于值 5 的前 4 个 terms/words。
我可以使用 sorted.sums[1:4]
获得前 4 个最高值,但我如何设置阈值?
我设法使用如下所示的 order
函数做到了这一点,但是除了排序函数或不使用 findFreqTerms
函数之外,还有其他方法可以做到这一点吗?
ord.totalsums <- order(totalsums)
findFreqTerms(dtm, lowfreq=5)
感谢您对此的看法。
您可以使用
sorted.sums[sorted.sums > 5][1:4]
但是如果您有至少 4 个大于 5 的值,则仅使用 sorted.sums[1:4]
也应该有效。
要获取单词,您可以使用 names
。
names(sorted.sums[sorted.sums > 5][1:4])
首先,我创建了一个文档术语矩阵,如下所示
dtm <- DocumentTermMatrix(docs)
然后我把每个词向量出现的总和如下
totalsums <- colSums(as.matrix(dtm))
前 7 个元素的总和(R 表示类型 'double')如下所示。
aaab aabb aabc aacc abbb abbc abcc ...
9 2 10 4 7 3 12 ...
我设法使用以下命令对其进行了排序
sorted.sums <- sort(totalsums, decreasing=T)
现在我想提取总和大于值 5 的前 4 个 terms/words。
我可以使用 sorted.sums[1:4]
获得前 4 个最高值,但我如何设置阈值?
我设法使用如下所示的 order
函数做到了这一点,但是除了排序函数或不使用 findFreqTerms
函数之外,还有其他方法可以做到这一点吗?
ord.totalsums <- order(totalsums)
findFreqTerms(dtm, lowfreq=5)
感谢您对此的看法。
您可以使用
sorted.sums[sorted.sums > 5][1:4]
但是如果您有至少 4 个大于 5 的值,则仅使用 sorted.sums[1:4]
也应该有效。
要获取单词,您可以使用 names
。
names(sorted.sums[sorted.sums > 5][1:4])