R最简文本挖掘之---凡人修仙传

       最近一直迷恋文本挖掘,其实大数据在非结构化的处理上主要要解决的一个问题就是文本挖掘(就像你看Hadoop第一个例子就是countWord),主要仍是之前看小说看的多,有时候就想总结一下,看看每一个做者都喜欢用哪些词汇。java

         文本挖掘要解决几个问:app

        一、中文词汇,这个咱们有强大的搜狗(R能够直接用搜狗词库,福音啊);dom

        二、词库中没有的词汇,这个就须要咱们手动去录入了;函数

        三、同义词,同义词须要咱们手工去解决,例如人名,齐天大圣和宇帝是同一我的(都是我,这里请加一个表情);oop

        四、没有了,开搞。大数据

        首先要导几个包,没有的自行install,有的直接library。主要是rJava,Rwordseg,wordcloud(注意大小写,rJava安装要注意一下,你的jdk位数和R的位数最好一致,不一致的话在RStudio中自行设置),rJava是链接java的(废话),这里面其实就是链接你的java库,供Rwordseg包调用的;Rwordseg包就牛逼了,LiJian大师开发,能够去他博客踩踩,提供了分词的一堆功能,后面用到了在讲;wordcloud是画词云的,如今的数据挖掘可不比之前了,搞完要作可视化,画的漂漂亮亮,老板才给钱。开发

        导入完词典,就能够开始咱们的分词大业了;博客

        将要分词的文本加载到R中,咱们使用很是简单的read方法:string

        read.csv(path, stringsAsFactors=FALSE, header=FALSE)
        而后调用Rwordseg包中的分词函数segmentCN:数据挖掘

        pwords <- unlist(lapply(X=people, FUN=segmentCN))
        分词结束后就是统计每一个词有几个了:

        v <- table(unlist(pword))
        为了方便咱们去掉单字和较少的词汇,咱们把结果放到一个data.frame中去过滤:

        d <- data.frame(词汇=names(v), 词频=v)
        而后过滤那些没用的:

        d <- subset(d, nchar(as.character(d$词汇))>1 & d$词频.Freq>=100)
        最后就是画词云了

        wordcloud(d$词汇, d$词频.Freq, random.order=FALSE, random.color=TRUE);
        搞定?等等,发现没有男主角和女主角的名字哇?
        那是由于词典里面没有,咱们要手动录入词典里面没有的词汇,也是Rwordseg包里面的函数:

        insertWords()

         怎么样,搞定了没有,任意你感兴趣的书籍均可以本身挖一遍,是否是很爽。

         PS:文本大小15M,慢到你怀疑是否是失败了,没有截图,由于不当心把Rstudio关了,没耐性在跑一次了

相关文章
相关标签/搜索