《R语言与数据挖掘》③-①使用R语言进行中文分词

RWordseg包文本分词

library(rJava)
library(Rwordseg)

文本分词

text = “今天天气真好呀,好想出去玩”
segmentCN(text) # 对"雷克萨斯品牌"进行分词

insertWords(c(“气”)) # 导入词汇
segmentCN(text) # 导入词汇后再次分词
deleteWords(c(“气”)) # 删除词汇
segmentCN(text) # 删除词汇后再次分词

载入词典并进行文本分词

词典下载链接:http://pinyin.sogou.com/dict/detail/index/15153

加载词典并命名为qiche

installDict(dictpath = “F:\1研究生全部资料\研一\下载内容\中国烟名大全.scel”, dictname = ‘qiche’ )
listDict() # 查看词典
segmentCN(“我不爱烟阿波罗阿尔山”) # 加载词典后再次分词
uninstallDict() # 卸载词典

jiebaR包文本分词

library(jiebaR)

接受默认参数,建立分词引擎

mixseg <- worker() # 默认mix分词引擎
mpseg <- worker(type = “mp”) # mp分词引擎
hmmseg <- worker(type = “hmm”) # hmm分词引擎
word = “人们劝我放下屠刀立地成佛”

使用分词运算符进行分词

mixseg <= word # <= 分词运算符
mpseg <= word
hmmseg <= word

使用segment进行分词

segment(word, mixseg) # 分词结果与分词运算符的结果相同

使用qseg进行分词

qseg <= word
qseg[word]

对文件进行分词

segment(".\data.txt", mixseg)
mixseg <= “.\data.txt”
qseg <= “.\data.txt”

获取worker的信息

输出mixseg的设置

mixseg

通过"$"符号改变mixseg的参数

mixseg$symbol <- T # 在输出中保留标点符号

通过mixseg$PrivateVarible获得无法修改的参数信息

mixseg$PrivateVarible

词性标注

word <- “人们劝我放下屠刀立地成佛”
tagger <- worker(“tag”) # 初始化分词引擎,type=“tag”
tagger <= word # 对word进行词性标注

使用qseg进行词性标注

qseg$type <- “tag” # 将分词模式改为"tag"
qseg[word] # 对word进行词性标注

关键词提取和Simhash计算

初始化分词引擎,type=" keywords ",关键词个数为1

keys <- worker(“keywords”, topn = 1)
keys <= word # 提取word中的关键词

初始化分词引擎,type=" simhash ",关键词个数为2

simhash <- worker(“simhash”, topn = 2)
simhash <= word

实战演练

#调入分词的库
library("rJava")
library("Rwordseg")
#调入绘制词云的库
library("RColorBrewer")
library("wordcloud")    

#读入数据
data<-readClipboard()
data
#预处理,这步可以将读入的文本转换为可以分词的字符,没有这步不能分词
data <- data[data!=" "]    
data

#分词,并将分词结果转换为向量
data.words <- unlist(lapply(X = data,FUN = segmentCN))
data.words

# 正则表达式
#剔除URL等各种不需要的字符,还需要删除什么特殊的字符可以依样画葫芦在下面增加gsub的语句
data.words <- gsub(pattern="http:[a-zA-Z\\/\\.0-9]+","",data.words)
data.words <- gsub("\n","",data.words)
data.words <- gsub(" ","",data.words)
data.words

#去掉停用词

data_stw=read.table('C:\\Users\\kingS\\SVM\\stop_words.txt',colClasses="character")
stopwords_CN=c(NULL)
for(i in 1:dim(data_stw)[1]){
  stopwords_CN=c(stopwords_CN,data_stw[i,1])
}
for(j in 1:length(stopwords_CN)){
  data.words <- subset(data.words,data.words!=stopwords_CN[j])
}


#过滤掉1个字的词
data.words <- subset(data.words, nchar(as.character(data.words))>1)

#统计词频
data.freq <- table(unlist(data.words))
data.freq <- rev(sort(data.freq))
data.freq

#按词频过滤词,过滤掉只出现过一次的词,这里可以根据需要调整过滤的词频数
#特别提示:此处注意myfile.freq$Freq大小写
myfile.freq2=subset(data.freq, as.data.frame(data.freq)$Freq>=2)    
myfile.freq2


#绘制词云
#设置一个颜色系:
mycolors <- brewer.pal(8,"Dark2")
#设置字体
windowsFonts(myFont=windowsFont("微软雅黑"))
#画图
wordcloud(as.data.frame(myfile.freq2)$Var1,as.data.frame(myfile.freq2)$Freq,min.freq=1,max.words=Inf,random.order=FALSE,
          random.color=FALSE,colors=mycolors,family="myFont")

在这里插入图片描述

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wency(王斯-CUEB)

我不是要饭的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值