R语言文本挖掘—文本分词

Posted 菜鸟数据岛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言文本挖掘—文本分词相关的知识,希望对你有一定的参考价值。


书接上回,啪!啪!啪!


昨天我们讲了如何安装Java环境,安装了的小伙伴一定是备受折磨吧,哈哈哈!

R语言文本挖掘(二)—文本分词

今天我们就先来看看如何用R语言做文本挖掘的一个基础思路。
首先我们要说,文本挖掘的难点在于 分词,也就是语义库的积累,这个是需要根据业务模式去长时间整理的,枯燥却又必备的事情,尤其是中文词库,因为中文是博大精深的,真的非常之痛苦啊,但是 文本挖掘的应用却是非常广泛的,比如利用用户对商品的评论,分析用户的不满的点,用于商品优化,再比如利用微博,来做舆情分析,可以指导内容借助社会事件更加符合用户的心意,等等…,OK,开始我们今天的分享吧…
案例一

我们输入两个短语:菜鸟数据岛,生活不止眼前的苟且。利用Rwordseg包里的segmentCN()函数做分词,运行之后我们得到的是下面这个运行结果,

>segmentCN(c("菜鸟数据岛", "生活不止眼前的苟且"))

R语言文本挖掘(二)—文本分词

感觉分词的效果很差,菜鸟,数据岛,苟且,都被强行拆散,这里我们就要进行加词和删词了,

>insertWords("数据岛")

>insertWords("菜鸟")

>insertWords("苟且")

加词之后我们再运行一下

R语言文本挖掘(二)—文本分词

明显的得到的分词效果更好些,还可以用deleteWords()函数来减少词库中的词。

R语言文本挖掘(二)—文本分词

正好昨天有个小伙伴,让我帮他做文本挖掘,我们就一起来看看吧
1
Step1:读取数据

>fenci <-readLines("D:/菜鸟/词频文件.txt",encoding="UTF-8")

这里要注意的是检查文件是否读出乱码,如果是有乱码的话就是文件的格式不匹配。

>length(fenci)#查看一下fenci的长度,是不是和我们的原始文件一致

>fenciTemp <- gsub("[0-90123456789 <>~]","",fenci)

 #fenciTemp<-gsub(pattern="[a-zA-Z]+","",cipin))

#去掉一些数字和标点,有必要的话,可以去除掉英文,但是我们这个案例显然不能去掉

2
Step2:分词

>fenciTemp <- segmentCN(fenciTemp)

R语言文本挖掘(二)—文本分词

这个分词是不是很糟糕啊,哈哈哈,没办法,谁让我懒呢,在这里我们其实是需要提前做一下词库的,或者可以上搜狗输入法官网下载别人做好的词库。

R语言文本挖掘(二)—文本分词

3
Step3:下载安装相应的词库

这里举个例子:

>segmentCN("郑爽被人戏称男神收割机")

第一次运行的时候能明显看出来“郑爽”这个人名被分开了,于是我就到搜狗输入法的网站下载了“歌手名人大全【官方推荐】“词库,下载后使用命令:

>installDict("D:/菜鸟/歌手人名大全【官方推荐】.scel", dictname="names")  #加载词典

在运行之后可以看到“郑爽”就被分词到了一起,当然我们还可以使用命令:

>uninstallDict()  #删除词典

R语言文本挖掘(二)—文本分词

4
Step4:去停词


首先你需要一个中文停词表,这个停词表也是需要不断修正的,听着就是很繁琐的工作。

R语言文本挖掘(二)—文本分词
然后我们需要编写函数,重新进行分词,去掉停词,在R中有的时候你是需要自己编写函数的,这个就需要你很扎实的统计学和线性代数的基础知识。

R语言文本挖掘(二)—文本分词
最后我们来比较一下,去停词之前和之后的区别

R语言文本挖掘(二)—文本分词
R语言文本挖掘(二)—文本分词
去掉停词的目的是,让分析更简单和精准


5
Step5:作词云图

R语言文本挖掘(二)—文本分词

运行之后我们会得到一个按照词频从大到小的顺序排列的词云图

R语言文本挖掘(二)—文本分词
不是很好看,哈哈,不过如果你的文本词汇很多的话,是非常好的可以找出关键词的方法,在舆情分析中经常被用到。这里再给大家介绍一个傻瓜式的词云图制作的在线工具http://www.tagxedo.com/,在线就可以完成很棒的词云图啦,而且非常简单。这里我们就很容易看出来,这个文本的关键词是产品、产品经理、设计、运营、数据、总监、PPT依次从多到少。


OK,相信大家也都有点累了,今天点到为止, 明天将给大家带来文本挖掘中的文本分类和聚类这里面将会涉及分类和聚类算法,有兴趣的小伙伴 可以提前预习。 可以添加菜鸟数据大管家的微信,索要我们所讲的内容的文件和代码,希望大家有所收获,毕竟我的心愿是,让世界充满爱,我们明天见!






以上是关于R语言文本挖掘—文本分词的主要内容,如果未能解决你的问题,请参考以下文章

R语言文本处理中文分词并制作文字云

R语言 | 手把手教你做文本挖掘!

文本挖掘:中文分词

R语言文本挖掘朱自清写《匆匆》时的情感状态

R语言 数据挖掘-文本分析(1)

R语言-文本挖掘