gpt4 book ai didi

r - tidytext——如何做共性和对比词云

转载 作者:行者123 更新时间:2023-12-02 01:47:30 26 4
gpt4 key购买 nike

让我从 Introduction to tidytext @ CRAN 中的以下完全工作的代码开始

library(janeaustenr)
library(dplyr)
library(stringr)

original_books <- austen_books() %>%
group_by(book) %>%
mutate(linenumber = row_number(),
chapter = cumsum(str_detect(text, regex("^chapter [\\divxlc]",
ignore_case = TRUE)))) %>%
ungroup()

original_books

library(tidytext)
tidy_books <- original_books %>%
unnest_tokens(word, text)

tidy_books

data("stop_words")
cleaned_books <- tidy_books %>%
anti_join(stop_words)

到目前为止一切都很好。我有六本简·奥斯汀小说,其中标准的垃圾词已被删除。

unique(cleaned_books$book)

这让我很感动:《理智与情感》、《傲慢与偏见》、《曼斯菲尔德庄园》、《艾玛》、《诺桑觉寺》、《劝说》

所以如果我想做一个包含所有六个的标准 TF 词云,没问题。就像这样(添加颜色):

library(wordcloud)
library(RColorBrewer)
dark2 <- brewer.pal(8, "Dark2")

cleaned_books %>%
count(word) %>%
with(wordcloud(word, n, color = dark2, max.words = 100))

效果很好。但是我该如何对所有六本小说执行 commonality.cloud() 操作,以及对相同的小说执行 comparison.cloud() 操作呢?

我需要的所有数据都在cleaned_books中——但我不知道如何 reshape 它。感谢您的帮助!

明白了。谢谢。

如果其他人遇到类似问题,我会离开。

上面的代码&

set1 <- brewer.pal(8, "Set1") ## a second color just for other cloud type

library(reshape2)

# title size and scale optional, obviously
cleaned_books %>%
group_by(book) %>%
count(word) %>%
acast(word ~ book, value.var = "n", fill = 0) %>%
comparison.cloud(color = dark2, title.size = 1, scale = c(3, 0.3), random.order = FALSE, max.words = 100)


cleaned_books %>%
group_by(book) %>%
count(word) %>%
acast(word ~ book, value.var = "n", fill = 0) %>%
commonality.cloud(color = set1, title.size = 1, scale = c(3, 0.3), random.order = FALSE, max.words = 100)

效果很好。

最佳答案

明白了。谢谢。运行上面的代码。然后

set1 <- brewer.pal(8, "Set1") ## a second color just for other cloud type
library(reshape2)

颜色是可选的。 reshape2 必不可少。然后按书分组就可以了。

cleaned_books %>%
group_by(book) %>%
count(word) %>%
acast(word ~ book, value.var = "n", fill = 0) %>%
comparison.cloud(color = dark2, title.size = 1, scale = c(3, 0.3), random.order = FALSE, max.words = 100)

cleaned_books %>%
group_by(book) %>%
count(word) %>%
acast(word ~ book, value.var = "n", fill = 0) %>%
commonality.cloud(color = set1, title.size = 1, scale = c(3, 0.3), random.order = FALSE, max.words = 100)

一切都好!

关于r - tidytext——如何做共性和对比词云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47281927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com