r - R中具有多个单词和特殊字符的词云
问题描述
我想用 R 创建一个 wordcloud。我想可视化变量名称的出现,它可能包含多个单词以及特殊字符和数字,例如一个变量名称是“标准普尔 500 股利收益率”。
变量名称在文本文件中,它们不再分开。文本文件的每一行都包含一个新的变量名。
我尝试了以下代码,但是变量名被分成不同的字符:
library(tm)
library(SnowballC)
library(wordcloud)
library(RColorBrewer)
# load the text:
text <- readLines("./Overview_used_series.txt")
docs <- Corpus(VectorSource(text))
inspect(docs)
# build a term-document matrix:
tdm <- TermDocumentMatrix(docs)
m <- as.matrix(tdm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
head(d, 10)
# generate the wordcloud:
pdf("Word cloud.pdf")
wordcloud(words = d$word, freq = d$freq, min.freq = 1,
max.words=200, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(8, "Dark2"))
dev.off()
如何处理变量名称,以便它们在 wordcloud 中以文本文件中的原始名称显示?
解决方案
如果您有一个指定的文件,每行有一个变量名,则无需使用 tm. 您可以轻松创建自己的词频表以用作输入。使用 tm 时,它会根据空格分割单词,并且不会尊重您的变量名。
从加载文本开始,只需创建一个频率设置为 1 的 data.frame,然后您就可以聚合所有内容。wordcloud
也接受这样的data.frame,您可以从中创建一个wordcloud。请注意,我稍微调整了比例,因为当变量名称很长时,它们可能不会被打印出来。发生这种情况时,您将收到一条警告消息。
我没有插入生成的图片。
#text <- readLines("./Overview_used_series.txt")
text <- c("S & P 500 dividend yield", "S & P 500 dividend yield", "S & P 500 dividend yield",
"visualize ", "occurence ", "variable names", "visualize ", "occurence ",
"variable names")
# freq = 1 adds a columns with just 1's for every value.
my_data <- data.frame(text = text, freq = 1, stringsAsFactors = FALSE)
# aggregate the data.
my_agr <- aggregate(freq ~ ., data = my_data, sum)
wordcloud(words = my_agr$text, freq = my_agr$freq, min.freq = 1,
max.words=200, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(8, "Dark2"), scale = c(2, .5))
推荐阅读
- python - Python 3 urllib 请求代理隧道标头
- javascript - 为什么在“Hello World”下方显示“未定义”?
- css - 试图用 json "npm run sass" 中的 css 编译我的 sass
- controller - 无法使用 bsDatePicker 在 Angular 中编辑日历月视图
- c# - WPF 在后面的代码中设置 DataTemplate 网格大小(ResourceDictionary)
- javascript - 没有默认滚动行为的 MVC PHP 软件中的 JavaScript SCROLLING 平滑 - 像滚动行为“自动”这样的硬直接跳跃不起作用
- pycharm - 我在 pycharm Interpreter 中找不到安装包
- azure-devops - 如何创建数组 | 在 Azure Pipelines (.yml) 中动态列出
- reactjs - 如何更改我在 ReactJS 中动态状态的余额
- kubernetes - Kubernetes入口到在同一主机上运行的pod?