文档术语矩阵的频率分布图

Posted

技术标签:

【中文标题】文档术语矩阵的频率分布图【英文标题】:Frequency Distribution Plot of Document Term Matrix 【发布时间】:2015-10-16 21:03:02 【问题描述】:

我创建了一个看起来像这样的文档术语矩阵:

inspect(dtm[1:4,1:6])

              allowed allowing almost alone companyunder companywide 
Doc1.txt         1      1         1     0       1             0
Doc2.txt         0      1         1     0       1             1
Doc3.txt         0      0         0     1       0             1
Doc4.txt         1      0         1     0       1             1

在获取它的列总和后,它给了我。

colSums(dtm)

 allowed          2
 allowing         2 
 almost           3
 alone            1
 companyunder     3
 companywide      3

这实质上表明这些词在多少个文档中找到(例如 allowed 2 告诉我在两个文档中找到了 allowed 。)。

我在创建频率分布图时遇到困难,该图将 x 轴作为文档编号,y 轴作为文档包含的单词数。

【问题讨论】:

【参考方案1】:

这是你要找的吗?

dtm = array(c(1,0,0,1,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,1,1,1),dim=c(4,6))
dimnames(dtm) = list(c("Doc1","Doc2","Doc3","Doc4"),c("allowed","allowing","almost","alone","companyunder","companywide"))
print(dtm)
plot(rowSums(dtm))

【讨论】:

类似的东西。但我的语料库为 184 个文档和 39825 个术语。因此,如果我尝试绘制 rowSums,它会给我一个错误'rowSums(dtm) 中的错误:'x' 必须是至少二维的数组' 你没有使用情节,是吗? 哦,我是。我已经意识到我的错误了。但我似乎无法解决它。 如果您需要帮助,您必须提供更多详细信息。您能告诉我您使用的确切绘图命令吗? 所以我在做 dtm

以上是关于文档术语矩阵的频率分布图的主要内容,如果未能解决你的问题,请参考以下文章

来自 CountVectorizer 的术语相对频率矩阵

描述统计学术语

Lucene - 获取文档频率 - termsEnum.docFreq() 总是返回 1

频率分布直方图和累积频率分布图

频率分布直方图,的概念与应用?

NLP系列(三)LDA主题模型