首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    R语言之中文分词:实例

    #调入分词的库 library("rJava") library("Rwordseg") #调入绘制词云的库 library("RColorBrewer") library("wordcloud")     #读入数据(特别注意,read.csv竟然可以读取txt的文本) myfile<-read.csv(file.choose(),header=FALSE) #预处理,这步可以将读入的文本转换为可以分词的字符,没有这步不能分词 myfile.res <- myfile[myfile!=" "]     #分词,并将分词结果转换为向量 myfile.words <- unlist(lapply(X = myfile.res,FUN = segmentCN)) #剔除URL等各种不需要的字符,还需要删除什么特殊的字符可以依样画葫芦在下面增加gsub的语句 myfile.words <- gsub(pattern="http:[a-zA-Z\\/\\.0-9]+","",myfile.words) myfile.words <- gsub("\n","",myfile.words) myfile.words <- gsub(" ","",myfile.words) #去掉停用词 data_stw=read.table(file=file.choose(),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)){ myfile.words <- subset(myfile.words,myfile.words!=stopwords_CN[j]) } #过滤掉1个字的词 myfile.words <- subset(myfile.words, nchar(as.character(myfile.words))>1) #统计词频 myfile.freq <- table(unlist(myfile.words)) myfile.freq <- rev(sort(myfile.freq)) #myfile.freq <- data.frame(word=names(myfile.freq),freq=myfile.freq); #按词频过滤词,过滤掉只出现过一次的词,这里可以根据需要调整过滤的词频数 #特别提示:此处注意myfile.freq$Freq大小写 myfile.freq2=subset(myfile.freq, myfile.freq$Freq>=10)     #绘制词云 #设置一个颜色系: mycolors <- brewer.pal(8,"Dark2") #设置字体 windowsFonts(myFont=windowsFont("微软雅黑")) #画图 wordcloud(myfile.freq2$word,myfile.freq2$Freq,min.freq=10,max.words=Inf,random.order=FALSE, random.color=FALSE,colors=mycolors,family="myFont")

    02

    [Spark精进]必须掌握的4个RDD算子之filter算子

    在今天的最后,我们再来学习一下,与 map 一样常用的算子:filter。filter,顾名思义,这个算子的作用,是对 RDD 进行过滤。就像是 map 算子依赖其映射函数一样,filter 算子也需要借助一个判定函数 f,才能实现对 RDD 的过滤转换。所谓判定函数,它指的是类型为(RDD 元素类型) => (Boolean)的函数。可以看到,判定函数 f 的形参类型,必须与 RDD 的元素类型保持一致,而 f 的返回结果,只能是 True 或者 False。在任何一个 RDD 之上调用 filter(f),其作用是保留 RDD 中满足 f(也就是 f 返回 True)的数据元素,而过滤掉不满足 f(也就是 f 返回 False)的数据元素。老规矩,我们还是结合示例来讲解 filter 算子与判定函数 f。在上面 flatMap 例子的最后,我们得到了元素为相邻词汇对的 wordPairRDD,它包含的是像“Spark-is”、“is-cool”这样的字符串。为了仅保留有意义的词对元素,我们希望结合标点符号列表,对 wordPairRDD 进行过滤。例如,我们希望过滤掉像“Spark-&”、“|-data”这样的词对。掌握了 filter 算子的用法之后,要实现这样的过滤逻辑,我相信你很快就能写出如下的代码实现:

    03
    领券