簡體   English   中英

R中具有多個單詞和特殊字符的詞雲

[英]Word cloud in R with multiple words and special characters

我想用R創建一個詞雲。我想可視化變量名的出現,變量名可能包含多個單詞以及特殊字符和數字,例如,一個變量名是“ S&P 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時,它將基於空格分割單詞,並且不會尊重您的變量名。

從加載文本開始,只需創建一個data.frame並將頻率設置為1,然后就可以聚合所有內容。 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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM