如何使用 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 个术语/单词。 我可以使用 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])

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...