美文网首页大数据程序员
R语言 wordCloud2词云

R语言 wordCloud2词云

作者: 花生花二三说 | 来源:发表于2017-11-26 10:32 被阅读114次

    我做的是中文词云
    总的步骤大致如下:

    1. 分词

    2. 除去停用词

    3. 统计词频

    3. 画出词云

    主要代码如下:

    setwd("E:\\自己学习")
    library(jiebaR)
    cutter=worker()
    setWords<- scan('一个用户1',sep='\t',what='',encoding="UTF-8",quote = "") #读取需要分词文件
    setWords<-segment(f,cutter)
    

    使用的是结巴分词
    结巴分词比较好用,分词速度较快
    但是好像有时会因为编码问题,读取错误。(该问题)

    f<-readLines('stopword.txt')###读取停止词
    stopwords<-c(NULL)
    for(i in 1:length(f))
    {
      stopwords[i]<-f[i]
    }
    setWord<-filter_segment(setWords,stopwords)#去除中文停止词
    
    segWords<-gsub("[0-9a-zA-Z]+?","",setWord)###去除数字和英文
    library(stringr)#加载stringr包
    segWords<-str_trim(segWords)#去除空格
    segWords <- segWords[nchar(segWords)>1] #去除字符长度小于2的词语
    

    停用词释义:
    停用词是指在信息检索中,为节省存储空间和提高在处理数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为StopWords(停用词)。这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。

    停用词释义来源--百度百科

    这边的停用词我是从网上下载的,停用词表的选择对最后分词词频的影响较大,所以要选择合适的停用词表。

    library(plyr)
    tableWord<-count(segWords)##形成词频表,tableWord是数据框格式
    write.table(tableWord,'tableWord.txt')#保存到本地txt文件
    tablenew<-tableWord[which(tableWord$freq>100),]#只保留出现频率大于100次的词汇
    
    library("wordcloud2")
    wordcloud2(tableWord, size = 2, fontFamily = "微软雅黑",  
               color = "random-light", backgroundColor = "grey")  #画出词云
    

    最后画出词云


    微信图片_20171201214250.jpg

    emmm虽然这张词云又丑又没有重点又有中文乱码,但这是我画出的第一张中文词云图,所以放在这哈哈哈哈哈
    参考引用:

    http://blog.csdn.net/zx403413599/article/details/46730801
    http://blog.csdn.net/songzhilian22/article/details/49184047

    相关文章

      网友评论

        本文标题:R语言 wordCloud2词云

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