私はウェブサイトhttps://www.tidytextmining.comを調べて、Austen books データセットを試しています。6 冊の本のそれぞれで最も頻繁に使用される単語をプロットし、各プロットの個々のバーを降順に並べようとしています。セクション 3.3 に示されている tf-idf をプロットするようにコードを調整しましたが、プロットを同じように表示することができません (単語頻度のバーを降順で取得します)。再現可能なコードと出力を以下に示します。
needed <- c("plyr", "dplyr", "tidytext", "ggplot2", "janeaustenr")
install.packages(needed, dependencies=TRUE)
list = lapply(needed, require, character.only = TRUE)
data(stop_words)
book_words = austen_books() %>%
unnest_tokens(word, text) %>%
anti_join(stop_words) %>%
count(book, word, sort = TRUE) %>%
ungroup()
total_words = book_words %>%
group_by(book) %>%
summarize(total = sum(n))
book_words = left_join(book_words, total_words)
book_words <- book_words %>%
bind_tf_idf(word, book, n)
book_words %>%
arrange(desc(n)) %>%
mutate(word = factor(word, levels = rev(unique(word)))) %>%
group_by(book) %>%
top_n(15, wt = n) %>%
ungroup %>%
ggplot(aes(word, n, fill = book)) +
geom_col(show.legend = FALSE) +
labs(x = NULL, y = "n") +
facet_wrap(~book, ncol = 2, scales = "free") +
coord_flip()