本章内容
导入停用词
读数据,分词
剔除停用词
导入停用词表
library(dplyr)
stopwords <- readtext::readtext("data/stopwords.txt") %>%
as.character() %>%
stringr::str_split('\n') %>%
unlist()
#显示前50个停用词
head(stopwords, n=50)
## [1] "?" "、" "。" "“" "”" "《" "》" "!" "!" ","
## [11] "," ":" ":" ";" "?" "-" "(" ")" "(" ")"
## [21] "·" "--" "……" "/" "." "|" "——" "‘" "’" "□"
## [31] "【" "】" "A" "B" "C" "D" "啊" "阿" "哎" "哎呀"
## [41] "哎哟" "唉" "俺" "俺们" "按" "按照" "吧" "吧哒" "把" "罢了"
读取数据分词
library(jiebaR)
#告诉worker停用词表的位置
tokenizer <- worker(stop_word = 'data/stopwords.txt')
#读取三体.txt为字符串
text <- readtext::readtext("data/三体.txt") %>% as.character()
#分词
words <- segment(text, tokenizer)
#显示分词结果的前20个词
head(words, n=20)
## [1] "第" "1" "章" "科学" "边界" "1" "恋上你" "看书"
## [9] "网" "630" "bookla" "最快" "更新" "三体" "全集" "最新"
## [17] "章节" "汪淼" "觉得" "来"
剔除停用词
在Python学习使用的过程中养成了for解决问题习惯,但是R里的for真的好慢~
new_words <- c()
for (word in words) {
if (!word %in% stopwords){
new_words <- c(new_words, word)
}
}
head(new_words)
## [1] "1" "章" "科学" "边界" "1" "恋上你"
词频统计
jiebaR有一个freq函数,可以words中每个词的词频,返回的数据类型是data.frame
wordfreqs <- jiebaR::freq(new_words)
wordfreqs
词频按照降序显示
#提前小超纲,用到dplyr中的排序
wordfreqs <- dplyr::arrange(wordfreqs, -freq)
wordfreqs
保存到excel
使用writexl包的write
writexl::write_xlsx(wordfreqs, "output/三体词频统计.xlsx")
R语言相关
R语言 | 读写txt、csv、excel文件
R语言 | 数据操作tidyr包
R语言 | 数据操作dplyr包
R语言 | jiebaR中文分词包
Python相关[更新] Python网络爬虫与文本数据分析
Pingouin: 基于pandas和numpy的统计包
读完本文你就了解什么是文本分析
文本分析在经管领域中的应用概述
综述:文本分析在市场营销研究中的应用
plotnine: Python版的ggplot2作图库
小案例: Pandas的apply方法
stylecloud:简洁易用的词云库
用Python绘制近20年地方财政收入变迁史视频
Wow~70G上市公司定期报告数据集
漂亮~pandas可以无缝衔接Bokeh
YelpDaset: 酒店管理类数据集10+G
后台回复关键词【R词频】获取本文代码和数据
“分享”和“在看”是更好的支持!