R语言 | 词频统计

Python网络爬虫与文本数据分析

本章内容

  1. 导入停用词

  2. 读数据,分词

  3. 剔除停用词

导入停用词表

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词频】获取本文代码和数据
  • 分享”和“在看”是更好的支持!

  • 10
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值