如何用R语言找出数据集title变量中出现最频繁的词汇
如何用R找出数据集中title变量的高频词汇
嘿,我来帮你搞定这个问题!要找出title变量里出现频率最高的词汇,用R的文本处理工具就能轻松实现,咱们一步步来:
首先,得先准备好必备的工具包——tidytext专门用来处理文本数据,dplyr负责数据操作,如果想可视化结果再加个ggplot2。先安装并加载它们:
# 首次使用先安装包 install.packages(c("tidytext", "dplyr", "ggplot2")) # 加载包 library(tidytext) library(dplyr) library(ggplot2)
接下来,把你的one数据集里的长文本title拆分成单个词汇(也就是“分词”)。unnest_tokens()函数会帮你自动处理大小写、标点,把每个单词单独放进新列里:
# 从数据集中提取title并分词 title_words <- one %>% select(title) %>% # 可选:只保留title列,减少处理量 unnest_tokens(input = title, output = word) # 把title拆成word列的单个词汇
然后,英语里那些像the、a、an这类的停用词,频率很高但没啥实际分析价值,得去掉。tidytext自带了一个stop_words数据集,直接用anti_join过滤就行:
# 过滤掉停用词 title_words_clean <- title_words %>% anti_join(stop_words)
现在就可以统计每个词汇的出现次数,按频率从高到低排序了:
# 统计高频词汇并排序 top_words <- title_words_clean %>% count(word, sort = TRUE) # count统计次数,sort=TRUE让结果按次数降序排列 # 查看前10个高频词 head(top_words, 10)
如果想更直观地看到结果,用ggplot2画个条形图就一目了然:
# 可视化前20个高频词 top_words %>% head(20) %>% mutate(word = reorder(word, n)) %>% # 按出现次数重新排序词汇 ggplot(aes(x = word, y = n)) + geom_col(fill = "#4A90E2") + coord_flip() + # 翻转坐标轴,方便显示长单词 labs(title = "Title变量中频率最高的词汇", x = "词汇", y = "出现次数") + theme_minimal()
要是你的title里有特殊情况(比如包含非英语词汇、自定义停用词),还可以自己调整过滤规则,比如手动添加要排除的词汇列表~
内容的提问来源于stack exchange,提问作者Alan Wallace
相关产品推荐
相关产品推荐

