词云

作者: ks_c | 来源:发表于2022-04-02 22:38 被阅读0次

文章链接

加载拓展包

  • Rwordseg:分词包,不要试图分太大的文件。本次使用了大概五分钟来给一个1MB左右大概几十万字的小说分词。

  • wordcloud2:词云绘制包

  • RColorBrewer:颜色

library(Rwordseg)
library(wordcloud2)
library(RColorBrewer)

设置颜色

wordcolor <- rep(brewer.pal(n=10,name='Set3'),10) 
#选择Set3颜色包中的10个颜色,每个颜色重复10次

分词

wordcloud2函数的参数

parameter explanation
data 数据
size 字体大小
minSize 副标题
gridSize 网格大小
fontFamily 字体
fontWeight 字体粗细
color 颜色
backgroundColor 背景颜色
minRotation 字体最小旋转角度
maxRotation 字体最大旋转角度(如果两个参数数值相同则旋转角度都相同)
shuffle
rotateRatio 旋转的概率大小
shape 形状
ellipticity 扁平度
widgetsize 小部件的大小
figPath 图画大小

形状的备选项:

  • 'circle' (default), '

  • cardioid' (apple or heart shape curve, the most known polar equation),

  • 'diamond' (alias of square),

  • 'triangle-forward',

  • 'triangle',

  • 'pentagon',

  • 'star'

x <- readLines('data.txt',encoding = 'UTF-8') #读取文件

xx <- segmentCN(x,anaylzer='hmm',return='vector') #用segmentCN函数进行中文分词

xx <- unlist(xx) #如果只有一段话不需要这一句。多段话分词返回结果为列表。

xx <- xx[nchar(xx)>1] #长度大于1的字符串(要用nchar函数而不是length函数)

xx <- xx[xx!='说道'] 
#把‘说道’删去了,30多万字中一共出现了快3000个说道。一百个字就会‘说道’一次吗。

top <- sort(table(xx),decreasing = T)[1:100] # 频率出现前100个,decreasing=T降序排列

wordcloud2(top,color=wordcolor,shape='star')

segmentCN()函数的返回值里面不存在空格。但是以防万一最好运行xx <- xx[nchar(xx)>1],排除空格和单个字的词语

如果需要过滤数字可以使用xx<-xx[!grepl('[1-9]',xx)]

grep(), grepl()函数

  • grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE, fixed = FALSE, useBytes = FALSE, invert = FALSE)

  • 抓取函数

  • 可以抓取字符串

  • 返回结果为规定的字符串的位置

y <- c('a','b','z','g','c','c','d')
grep("[a-d]", y)
[1] 1 2 5 6 7
  • grepl(pattern, x, ignore.case = FALSE, perl = FALSE, fixed = FALSE, useBytes = FALSE)

  • 作用与grep()函数类似,返回结果为逻辑值。

grepl("[a-d]", y)
[1]  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE

m <- as.character(c(1:9))
grepl('[1-5]',m)
[1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE

因此grepl('[1-9]',xx)的返回值为xx中字符串是否为1-9中的任意一个。

!grepl('[1-9]',xx)则是使结果相反,xx[!grepl('[1-9]',xx)]为选择xx中不是1-9的字符串

结果

效果

相关文章

  • 词云

    以前总看到豆瓣知乎上各种晒词云的图片,乍一看高大上,于是今天潜心研究了一下python词云的几个库:wordclo...

  • 词云

    先发感叹:Python真强大,用来做业务,太轻松了。作为一个没怎么接触过Python的小白,我只用了十多行代码,就...

  • 词云

    勤问,不要感觉自己有多厉害,三人行也必有我师,勤学多问是进步的良方

  • 词云

    方文山和林夕都是作词大家,我仅以《青花瓷》和《红豆》两首歌作为例子,来比较一下两者文风的不同。 中文版 英文版

  • 词云

    一、林夕作词的《不要爱他》与方文山作词的《菊花台》词频对比 二、BBC与CNN报道ISIS在摩苏尔战斗的报道

  • 词云

    中文词云 比较搜狐财经和网易财经在“美国总统大选电视辩论”后第二天的相关评论。 英文词云 泰戈尔和狄兰·托马斯诗作...

  • 词云

    一. 中文歌词对比 SHE的《安静了》和周杰伦的《借口》两首歌都是由周杰伦作曲,曲调相同但填词者不同。 1.SHE...

  • 词云

  • 词云

    文章链接[https://www.yuque.com/mchax/rs/etm065] 加载拓展包 Rwordse...

  • Python jieba分词、词云、文件读取、函数调用、匿名函数

    词云的生成 使用wordcloud 库生成词云 安装wordcloud 调用wordcloud类,生成词云对象 词...

网友评论

      本文标题:词云

      本文链接:https://www.haomeiwen.com/subject/xayxsrtx.html