---
title: "R Notebook"
output:
html_document:
df_print: paged
word_document: default
---
#安装分词、词云包
installpackage('jiebaR','jiebaRD','wordcloud2','tm','tmcn','NLP','readxl')
====================================================================
#导入包、数据及分词
news <- read.csv('C:/Users/Administrator/Desktop/news.csv') #读取csv格式文件
news <- read_excel(''C:/Users/Administrator/Desktop/news.csv'') #读取xls 和 xlsx 格式文件
texts<-news$x #提取文本数据所在列
```{r}
library(readxl)
library(tm)
library(tmcn)
library(NLP)
library(jiebaRD)
library(jiebaR)
library(wordcloud2)
texts = "当然这句话得站在巨人香港特区立法会主席梁君彦会见传媒时说,中央此次从国家层面立法,体现了国家安全属“一国两制”下的中央事权。中央制定香港国安法是要坚持“一国两制”、“港人治港”、高度自治原则,保障香港长远的稳定繁荣,依法保护绝大多数奉公守法的市民一直所享有的权利和自由,同时也令经济得以蓬勃发展,市民安居乐业。制定香港特别行政区维护国家安全法,是贯彻落实党的十九届四中全会精神和十三届全国人大三次会议精神的重要举措、关键步骤和重要的立法任务。这部法律的公布施行将有效地维护国家安全,有效地防范、制止和惩治与香港特别行政区有关的危害国家安全的犯罪,堵塞香港特别行政区在维护国家安全方面存在的制度漏洞。这部法律的公布施行,对于新形势下坚持和完善“一国两制”制度体系,维护国家主权、安全、发展利益,确保香港长治久安和长期繁荣稳定,具有重大而深远的意义。"
# test1 = worker()
# a=as.vector(test1 <= texts)
# a
#分词
mixseg<-worker("mix") #建立模型分词
a<-segment(texts,mixseg) #开始分词
write(a,file = "C:/Users/czliu/Documents/R/a.txt")
```
#去停用词
```{r}
stopwords <- read.table("C:/停用词.txt") #文件内每行一个字、词
stopwords
class(stopwords)
stopwords <- as.vector(stopwords[,1])
stopwords
wordResult <- removeWords(a,stopwords) #导入tm,tmcm,NPLP包,否则出现removeWords()未定义错误
#wordResult
write(stopwords,file ="C:/Users/czliu/Documents/R/tingci.txt")
```
#制作词云
```{r}
#news <- read.csv('C:/Users/czliu/Documents/R/a.txt') #读取csv格式文件
freq<-table(wordResult) #词频统计
#freq #查看词频统计结果
wordcloud2(freq,shape='star') #绘制词云
```
#wordcloud2包,自带词云示例(demo)
```{r}
library(wordcloud2)
wordcloud2(demoFreq, size = 1,shape = 'star')
wordcloud2(demoFreqC, size = 2, fontFamily = "微软雅黑",
color = "random-light", backgroundColor = "grey")
wordcloud2(demoFreq, size = 2, minRotation = -pi/2, maxRotation = -pi/2)
wordcloud2(demoFreq, size = 2, minRotation = -pi/6, maxRotation = -pi/6,
rotateRatio = 1)
```
=======================================================================================
#数据来源:
```{r}
#a.txt是分词后得到的文件
data <- read.csv('C:/Users/czliu/Documents/R/a.txt', sep="," ,header = T)
#读取原始数据
data=table(data)
#检查数据,查看是否存在乱码的情况
#词云函数使用方法
wordcloud2(data, size = 1, shape='star',color = 'random-dark',
backgroundColor = "white",fontFamily = "微软雅黑")
```
#绘制文字云,其中data就是我们读取的数据,size是对应文字大小,shape是绘制形状
#wordcloud2函数说明
wordcloud2(data, size = 1, minSize = 0, gridSize = 0,
fontFamily = NULL, fontWeight = 'normal',
color = 'random-dark', backgroundColor = "white",
minRotation = -pi/4, maxRotation = pi/4, rotateRatio = 0.4,
shape = 'circle', ellipticity = 0.65, widgetsize = NULL)
常用参数:
(1)data:词云生成数据,包含具体词语以及频率;
(2)size:字体大小,默认为1,一般来说该值越小,生成的形状轮廓越明显;
(3)fontFamily:字体,如‘微软雅黑’;
(4)fontWeight:字体粗细,包含‘normal’,‘bold’以及‘600’;;
(5)color:字体颜色,可以选择‘random-dark’以及‘random-light’,其实就是颜色色系;
(6)backgroundColor:背景颜色,支持R语言中的常用颜色,如‘gray’,‘blcak’,但是还支持不了更加具体的颜色选择,如‘gray20’;
(7)minRontatin与maxRontatin:字体旋转角度范围的最小值以及最大值,选定后,字体会在该范围内随机旋转;
(8)rotationRation:字体旋转比例,如设定为1,则全部词语都会发生旋转;
(9)shape:词云形状选择,默认是‘circle’,即圆形。还可以选择‘cardioid’(苹果形或心形),‘star’(星形),‘diamond’(钻石),‘triangle-forward’(三角形),‘triangle’(三角形),‘pentagon’(五边形);
原文链接:https://blog.csdn.net/sinat_26917383/article/details/51620019