R语言文本数据挖掘(四)
文本分词,就是对文本进行合理的分割,从而可以比较快捷地获取关键信息。例如,电商平台要想了解更多消费者的心声,就需要对消费者的文本评论数据进行内在信息的数据挖掘分析,而文本分词是文本挖掘的重要步骤。R语言中,对中文分词支持较好的包有RWordseg包和jiebaR包,这里学习jiebaR包。
一、jiebaR中文分词
加载中文分词包
library(jiebaR)
library(wordcloud2)
library(dplyr)
以《笑傲江湖》这篇小说做示例。读取文本文件,注意编码格式,不然会出错。这篇文本的编码为 ANSI。
words <- readLines('XiaoAoJiangHu.txt',encoding = 'ANSI')
mixseg <- worker()
dic <- c('令狐冲', '任盈盈', '岳灵珊', '林平之', '岳不群',
'左冷禅', '任我行', '辟邪剑谱', '葵花宝典',
'日月神教', '华山派')
new_user_word(mixseg, dic)
seg <- segment(words, mixseg)
初始化分词引擎,并建立专业词词库。专业词词库中,我放了一些人物的姓名、武功秘籍和帮派名称。
停用词词库是我从网上搜到,直接导入进去!注意文本编码。
#停用词词库
stopwords <- readLines('stopwords.txt',encoding = 'UTF-8')
seg <- filter_segment(seg, stopwords)
#至此,分词这一步就做好了。
二、jiebaR词频统计
统计词频,并将其出现次数由高到低排列,让我们看看前二十个词语是什么。
wordfreqs <- jiebaR::freq(seg) # 统计词频
wordfreqs <- dplyr::arrange(wordfreqs, -freq) # 将词频由高到低展示
head(wordfreqs,20) # 看看前20个词频是什么!
head(wordfreqs,20)
char freq
1 林平之 264 2 田伯光 218 3 林震南 206
4 师父 167 5 说道 165 6 令狐大哥 161
7 青城派 148 8 师哥 147 9 定逸 138
10 余沧海 124 11 镖局 124 12 弟子 122
13 笑道 116 14 令狐冲 100 15 劳德诺 98
16 剑法 96 17 众人 82 18 曲非烟 80
19 尼姑 80 20 仪琳 80
可以看到,不愧是主角,“令狐冲”这个名词出现了。
三、词云图
绘制词云图也很简单,我们用到 wordcloud2 包中的函数。
colnames(wordfreqs)[1] <- 'word'
row.names(wordfreqs)<-wordfreqs$word
my_graph <- wordcloud2(
data=wordfreqs,size=0.5
)
my_graph
四、 完整R程序
library(jiebaR)
library(wordcloud2)
library(dplyr)
textfile<- "2021.txt"
# 一行一行地读取文本数据
words <- scan(textfile, character(0), sep='\n',fileEncoding = "UTF-8")
s<-''
for(i in words) {s<-paste0(s,i) }
mixseg <- worker()
seg<- segment(s, mixseg)
stopwords <- readLines('stopwords.txt',encoding='utf8')
seg<- filter_segment(seg, stopwords)
seg=seg[nchar(seg)>1]
wordfreqs <- jiebaR::freq(seg) # 统计词频
wordfreqs <- dplyr::arrange(wordfreqs, -freq) # 将词频由高到低展???
index <- order(-wordfreqs[,2])
order2<-wordfreqs[index, ]
head(order2,20) # 看看???20个词频是什么!
colnames(wordfreqs)[1] <- 'word'
row.names(wordfreqs)<-wordfreqs$word
my_graph <- wordcloud2(
data=wordfreqs,size=0.5
)
my_graph

参考文献
(R语言:jiebaR 包实现中文分词、统计词频及绘制词云图)[https://zhuanlan.zhihu.com/p/499935064]
R语言文本数据挖掘(四)的更多相关文章
- R语言︱文本(字符串)处理与正则表达式
处理文本是每一种计算机语言都应该具备的功能,但不是每一种语言都侧重于处理文本.R语言是统计的语言,处理文本不是它的强项,perl语言这方面的功能比R不知要强多少倍.幸运的是R语言的可扩展能力很强,DN ...
- R语言实战(四)回归
本文对应<R语言实战>第8章:回归 回归是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量.效标变量或结果变量)的方法.通常,回归分析可以用来 ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- R语言中的四类统计分布函数
R语言中提供了四类有关统计分布的函数(密度函数,累计分布函数,分位函数,随机数函数).分别在代表该分布的R函数前加上相应前缀获得(d,p,q,r).如: 1)正态分布的函数是norm,命令dnorm( ...
- R语言数据管理(四):数据导出
与read.*函数对应,导出函数为write.*函数. 比较常见的为write.csv和write.table. 一般格式: setwd("D:\\") write.table(y ...
- 【R语言进行数据挖掘】回归分析
1.线性回归 线性回归就是使用下面的预测函数预测未来观测量: 其中,x1,x2,...,xk都是预测变量(影响预测的因素),y是需要预测的目标变量(被预测变量). 线性回归模型的数据来源于澳大利亚的C ...
- [读书笔记] R语言实战 (四) 基本数据管理
1. 创建新的变量 mydata<-data.frame(x1=c(2,2,6,4),x2=c(3,4,2,8)) #方法一 mydata$sumx<-mydata$x1+mydata$x ...
- R语言实战(四)—— 基本数据管理
一.基础操作 1.根据数据信息,创建数据框 > manager <- c(1,2,3,4,5) > date <- c("10/24/08","1 ...
- 【R语言进行数据挖掘】决策树和随机森林
1.使用包party建立决策树 这一节学习使用包party里面的函数ctree()为数据集iris建立一个决策树.属性Sepal.Length(萼片长度).Sepal.Width(萼片宽度).Peta ...
- 大数据时代的精准数据挖掘——使用R语言
老师简介: Gino老师,即将步入不惑之年,早年获得名校数学与应用数学专业学士和统计学专业硕士,有海外学习和工作的经历,近二十年来一直进行着数据分析的理论和实践,数学.统计和计算机功底强悍. 曾在某一 ...
随机推荐
- MySQL innodb存储引擎的数据存储结构
InnoDB存储引擎的数据存储结构 B+ 树 为什么选择B+树? 因为B+树的叶子节点存储了所有的data,所以它的非叶子节点可以存储更多的key,使得树更矮:树的高度几乎就是I/O的次数,所以选择更 ...
- uniapp中使用AntV F6 + table表格插件使用
首先看页面效果: AntV官网下载F6文件到项目中与uViewUI插件 <template> <view class="page"> <!-- 导航栏 ...
- MySql 错误:建表时出错1067 - Invalid default value for 'id'
问题描述: 建表时报错无效的默认值: CREATE TABLE `product`( `id` INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ...
- 网易二面-Arthas的底层原理
众所周知,阿里开源的Arthas已经成为Java开发中调优的基本工具,其功能在于监控JVM运行情况,并对CPU.内存状况生成报告或者是火炬图. 从JDK5开始,java.lang.instrument ...
- vue多图片上传组件
<template> <!-- 上传控件 用法: <upload-widget v-model="imgUrl"></upload-widget ...
- Day02 差点水掉 欸呀呀
Java狂神6.17星期四 知识行 冯诺依曼+图灵 软件+硬件 .......... 快捷键 ctrl+a 全选 ctrl+x 剪切 alt+F4 关闭窗口 win+r 运行 +cmd命令行 win+ ...
- SQL SERVER 导入EXCEL表 报错 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
1 已经正确安装了 accessdatabaseengine 2 使用 Microsoft SQL Server Management Studio 里面的数据库 右键-->导入数据 解决方案 ...
- IDEA设置编码为UTF-8编码
IntelliJ IDEA 统一设置编码为utf-8编码 问题一: File->Settings->Editor->File Encodings 网上的方法大部分都是错的,上图的单选 ...
- Undelivered Mail Returned to Sender
电子邮件是使用电子邮件地址application@sample.com从Application发送的. 出于业务原因我们无法在此应用程序中更新/删除无效的外部电子邮件地址,因此响应出站电子邮件会生成许 ...
- Serverless 架构演进与实践
Serverless 架构演进与实践 1. 介绍 Serverless 并不仅仅是一个概念,很多地方都已经有了它的影子和思想,本文将给大家介绍最近比较火的 Serverless. 首先放出官方对 Se ...