【发布时间】:2018-11-26 14:25:06
【问题描述】:
您好,我有一个文档术语矩阵,我使用tidy() 函数对其进行了转换,它运行良好。我想根据单词的频率绘制一个词云。所以我的转换表如下所示:
> head(Wcloud.Data)
# A tibble: 6 x 3
document term count
<chr> <chr> <dbl>
1 1 accept 1
2 1 access 1
3 1 accomplish 1
4 1 account 4
5 1 accur 2
6 1 achiev 1
我有 33,647,383 个观察值,因此它是一个非常大的数据框。如果我使用max() 函数,我会得到一个非常高的数字(64116),但我的数据框中没有一个词的频率为 64116。此外,如果我用 wordcloud() 绘制闪亮的数据框,它会多次绘制相同的词。此外,如果我想对我的列进行排序 count 它不起作用 - sort(Wcloud.Data$count,decreasing = TRUE)。所以有些事情是不正确的,但我不知道,什么以及如何解决它。有人知道吗?
这是我的文档术语矩阵的摘要,在将其转换为数据框之前:
> observations.tf
<<DocumentTermMatrix (documents: 76717, terms: 4234)>>
Non-/sparse entries: 33647383/291172395
Sparsity : 90%
Maximal term length: 15
Weighting : term frequency (tf)
更新:我添加了我的数据框的图片
【问题讨论】:
-
您能否向我们提供数据子集
Wcloud.Data(可能使用dput),以便我们可以在您的数据集上重现问题?我想我有一个解决方案给你,但需要在当地确认。谢谢:) -
同一个词出现是正常的,因为您有多个文档 (76717),如果一个词出现在多个文档中的频率很高,它会被打印多次。如果您想要仅包含单词的 wordcloud,请删除文档并汇总每个单词的数字。
-
@phiver 感谢您的回答。我怎样才能自动解决这个问题?我不希望它有多个。
-
@mysteRious 我不知道为什么,但输出 dput 有问题。或者 R 正在计算,它需要一些时间。你的想法是什么?
-
任何可以使用 100-1000 行
Wcloud.Data的东西都会有所帮助。
标签: r dataframe dataset transformation word-cloud