我正在玩弄一些文本分析,并尝试使用逆文档频率(数值)显示每本书的顶部单词。我一直在跟随TidyText采矿,但使用哈利波特。使用重复因子绘制ggplot组的顺序
某些书籍之间的顶部词(使用IDF)是相同的(例如羽扇豆或拉环),并且在绘图时,顺序使用该词的最大IDF。例如,泥手是魔法石和死亡圣器中的关键词。它在死亡圣器中的价值为.0007,但只有.0002,但被命令为魔法石的最高价值。
hp.plot <- hp.words %>%
arrange(desc(tf_idf)) %>%
mutate(word = factor(word, levels = rev(unique(word))))
##For correct ordering of books
hp.plot$book <- factor(hp.plot$book, levels = c('Sorcerer\'s Stone', 'Chamber of Secrets',
'Prisoner of Azkhaban', 'Goblet of Fire',
'Order of the Phoenix', 'Half-Blood Prince',
'Deathly Hallows'))
hp.plot %>%
group_by(book) %>%
top_n(10) %>%
ungroup %>%
ggplot(aes(x=word, y=tf_idf, fill = book, group = book)) +
geom_col(show.legend = FALSE) +
labs(x = NULL, y = "tf-idf") +
facet_wrap(~book, scales = "free") +
coord_flip()
而且here's数据框,供您参考的图像。
我试过预先分类,但似乎并没有工作。有任何想法吗?
编辑:CSV is here
谢谢你给它看看。这个大问题是简·奥斯汀书中没有共同的词汇。你的解决方案似乎首先迫使它出现一个单词,但当下一次单词出现在列表中时,它就会出现在错误的地方。我附加了一个带有数据的csv以便与之一起使用。 – GeorgeR90
啊,我现在看到问题了。我不确定如何为每个方面制定不同的因子顺序,但是如果您按书籍分割数据框,则可以使用此答案为每本书制作单独的图。 – jdb
谢谢@jdb,知道搜索的实际语言让我找到一个可行的答案! – GeorgeR90