{r setup, include=FALSE} opts_knit$set(eval = FALSE)
提纲挈领的说明, 就是把一波文字取出来,找出重要的词,剔除干扰的词。
参考( 【干货】–手把手教你完成文本情感分类 ) R中主要是jiabaR包。 终于开始学这个包,有点小惊喜。
```{r} # 加载第三方包 library(jiebaR)
台词
sentence <- ‘滚出去!我没有时间听一个牢里混出来的人渣,在这里跟我讲该怎么样不该怎么样!你以为西装往身上一套,我就看不到你骨子里的寒酸,剪剪头、吹吹风,就能掩藏住心里的猥琐?你差得还远,你这种人我见得多了,但还没有见到过敢对我指手画脚的。消失,快从我面前消失!’
设置动力和引擎
engine <- worker() # 查看引擎配置 engine
`worker()`为分词提供动力和引擎
`Default Method : mix`使用混合法分词。
$\Box$什么是混合法?
最大概率法和隐马尔科夫方法。
什么是最大概率法和隐马尔科夫方法?
`Default Encoding: UTF-8`
中文编码为`UTF-8`;
`Max Word Length : 20`
分词最大长度为`20`个词;
`Max Read Lines : 1e+05`
一次性可以读取最大10W行记录。
```
# 分词
cuts <- segment(sentence, engine)
cuts
"剪剪" "头" "吹" "吹风" 是分错的。 因此需要自定义,也就是常说的体力活。
{r} # 自定义词库--方法二 new_user_word(engine, c('剪剪头','吹吹风','见到过')) cuts2 <- segment(sentence, engine) cuts2
"剪剪" "头" "吹" "吹风" 就没有了。
剔除你我他。
{r} # 停止词的处理--方法二 cuts3 <- filter_segment(cuts2, filter_words = c('我','的','听','在','你','就','能','还','对', '人','从','但','讲','跟','这种','一个','身上')) cuts3
主要使用filter_words中的filter_words参数。 比较好的方式就是把cuts2,选的字符串,长度为1的,肉眼看。 这里使用到stringr包的函数str_length。 RStudio出了cheatsheet,大家可以找找看。
{r} library(tidyverse) cuts3_table <- cuts3 %>% as_data_frame() %>% group_by(value) %>% count() %>% set_names('word','freq') # wordcloud2 的输入需要
这里有22个,一般那种介词,代词都可以T了。
后面都是监督学习搞预测的了,不是文本清洗的重点了。
{r} library(wordcloud2) wordcloud2(cuts3_table)