zoukankan      html  css  js  c++  java
  • R语言文本挖掘1——词云制作,基于Rwordseg包

    折腾好Rwordseg在R语言3.2版本的安装后,马上就来尝鲜了,在参考牛人的意见后,成果如下图,马上有实战的感觉了:

     

    首先讲一下词云的步骤:

    1.读取文档,这个文档可以是网络数据,也可以是文本文档,对于网络数据,有很多爬虫方法,如RCurl包,Rweibo包等等等等,还可以自己去申请一些开放数据库的API,在此不赘述。文本文档读取也简单,直接用readLines函数读取。

    2.识别前的准备,调入词典,开启人名识别,这步很重要,因为不同的文本有不同的关键词特征,没有对应的词典,就容易把关键词再次分词导致无法提取特征,Rwordseg支持搜狗的scel字典,很nice。不过这步跟第一步并没有优先性上的差异,个人喜好把这步放这里而已。

    3.进行分词,一般都会调用nosymbol = T的参数

    4.制作词语过滤,比如常见的停止词,还有一些自定义的规则,这个就看大家自己选择了。

    5.过滤了停止词后,对分词结果进行词频统计并排序

    6.将排序结果分别提取为词名和频率

    7.绘制词云

    具体代码如下,数据来源是随便找的一篇关于如何当猎头的百度知道,保存为txt:

    library(Rwordseg)
    library(wordcloud)

    //读取文件
    txt <- readLines("path")

    //分词前准备
    installDict("../dict/default.dic", "default") //默认的包
    installDict("path", "dictname") //你自己下载或制作的字典
    segment.options(isNameRecognition = TRUE)

    //分词
    txtseg <- segmentCN(txt, nosymbol = T)

    //制作filter并过滤,这里可以加入自己制作的停止词词典
    filter <- function(txt) {
    txt <- gsub("[a-z]|\\.", "", txt)
    txt <- gsub("\\d+号", "", txt)
    txt <- gsub("\\d+", "", txt)
    txt <- gsub("\\/", "", txt)
    txt <- gsub("单元|对面|附近|路口|旁边|大道|方向|先生|女士|回复|需要|处理|投诉|资料|保密", "", words)
    txt[nchar(txt) >= 2]
    }

    txtsf <- lapply(txtseg, filter)

    //词频统计和排序
    txtwc <- unlist(lapply(txtsf, length)) //词频计数
    txtws <- sort(table(txtwc),decreasing = T) //排序

    //提取词名和词频
    txtws.name <- names(txtws)
    txtws.freq <- txtws

    //绘制词云
    windows()
    par(mar = c(0, 0, 3, 0), bg = "white")
    wordcloud(sb.tel.w2.name,
    sb.tel.w2.freq,
    scale = c(5, 1),
    min.freq = 1,
    max.words = 100,
    colors = c("#BEC0C2", "#049FF1", "#DA891E", "#3F813F", "#712704", "#A2B700"))

    看起来简单的词云,其实做起来一点不简单,数据分析还要对业务了解,上边的词云还有很大改进的地方,不过一步步来,等我慢慢掌握了分析方法再继续改进咯。
    ————————————————
    版权声明:本文为CSDN博主「wangzfox」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wangzfox/article/details/45803863

  • 相关阅读:
    从头学Android之Android布局管理:LinerLayout线性布局
    Android onTouch事件传递机制
    android开源项目和框架
    <hdu
    <hdu
    <poj
    <poj
    <hdu
    <hdu
    <hdu
  • 原文地址:https://www.cnblogs.com/purple5252/p/15704896.html
Copyright © 2011-2022 走看看