数据分析--R的文本分词(对天龙八部来分词看结果~)

数据分析–R的文本分词

有的时候我们需要对某些评论或者文章进行分析,比如关键词,词频等问题,这个时候我们用R的jiebaR这个包分析,是非常方便的~

这里Mark一下:官方文档、jiebaR官网、jiebaR的Github和中文文档


第一步:安装jiebaR包,然后导入

> install.packages("jiebaR")
> library(jiebaR)

第二步:建立分词器

> wk <- worker()

第三步:分词

> segment("我是一句话", wk)
[1] "我"   "是"   "一句" "话" 

感觉简单的不要不要的,慢慢的幸福感~

还有更简单的方法,你信不信?!
对分词器直接操作:

> wk["我就是想看看能不能分词~"]
[1] "我"   "就是" "想"   "看看" "能"   "不能" "分词"

实例:
下面我们对一段文本来进行分析:《天龙八部》
首先先下载好《天龙八部》的txt,这里就不提供了,网上一大堆

> txt <- file.choose()
> head(txt)
[1] "D:\\R_project\\words\\天龙八部.txt"

读取好数据之后,我们来分词:

> wk <- worker()
> wk[txt]
Error in file_coding(code[1]) : Cannot open file

报错了!!
这里我猜想:是不是文件名字是中文的问题导致打不开文件,然后我改了一下

> txt <- file.choose()
> head(txt)
[1] "D:\\R_project\\words\\tian.txt"
> wk[txt]
[1] "D:\\R_project\\words\\tian.segment.2018-06-08_15_52_58.txt"

把文件的名字改成拼音的就OK了,这里应该读取文件的时候中文会报错

分词结束,我们来看看词频:

> txt <- scan(file.choose(), sep = "\n", what = "", encoding = "UTF-8")
Read 1 item
> df <- freq(wk[txt])
> head(df)
      char freq
1        A    1
2    Calif    1
3  Berkley    1
4 Highgate    1
5       48    1
61

注意:这里的file.choose()选择的是分好词的文件,即上面的tian.segment.2018-06-08_15_52_58.txt

之后我们使用sqldf包来对数据框 df来处理:

> library(sqldf)
载入需要的程辑包:gsubfn
载入需要的程辑包:proto
载入需要的程辑包:RSQLite
> df <- sqldf('select * from df where length(char)> 1 limit 500 ')
> head(df)
  char freq
1 说道 2122
2 自己 1635
3 虚竹 1518
4 一个 1442
5 什么 1314
6 武功 1068

嗯,差不多了,可以做词云图了

> library(wordcloud2)
> wordcloud2(df)

数据分析--R的文本分词(对天龙八部来分词看结果~)_第1张图片

感觉天龙八部也是一部”嘴遁“的小说啊,虚竹才是金庸老爷子的真爱啊~


你可能感兴趣的:(R,文本分析)