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")