Я пытаюсь сделать облако слов из списка фраз, многие из которых повторяются, а не из отдельных слов. Мои данные выглядят примерно так: один столбец моего фрейма данных представляет собой список фраз.
df$names <- c("John", "John", "Joseph A", "Mary A", "Mary A", "Paul H C", "Paul H C")
Я хотел бы создать облако слов, в котором все эти имена рассматриваются как отдельные фразы, частота которых отображается, а не слова, из которых они состоят. Код, который я использовал, выглядит так:
df.corpus <- Corpus(DataframeSource(data.frame(df$names)))
df.corpus <- tm_map(client.corpus, function(x) removeWords(x, stopwords("english")))
#turning that corpus into a tDM
tdm <- TermDocumentMatrix(df.corpus)
m <- as.matrix(tdm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
pal <- brewer.pal(9, "BuGn")
pal <- pal[-(1:2)]
#making a worcloud
png("wordcloud.png", width=1280,height=800)
wordcloud(d$word,d$freq, scale=c(8,.3),min.freq=2,max.words=100, random.order=T, rot.per=.15, colors="black", vfont=c("sans serif","plain"))
dev.off()
Это создает облако слов, но оно состоит из каждого составного слова, а не из фраз. Итак, я вижу относительную частоту «А». «H», «John» и т. д. вместо относительной частоты «Joseph A», «Mary A» и т. д., чего я и хочу.
Я уверен, что это не так сложно исправить, но я не могу понять это! Буду признателен за любую помощь.