为了练习特征提取,我将使用一个非常有名的数据集,叫做20 Newsgroups;这个数据集一般用来文本分类。
1.分析数据内容
查看目录结构和数据结构
val sc = new SparkContext("local[2]","TF-IDF") val path = "data/20news-bydate-train/*" val rdd = sc.wholeTextFiles(path) val text = rdd.map{ case (file,text)=> text} println(text.count())
2.应用基本的分词方法
切分每个文档的原始内容为多个单词,组成集合,下面实现简单的空格分词。及时相对于较小的文本集,不同单词的个数(也就是特征向量的维度)也可能非常高。
val newsgroups = rdd.map{ case (file,text)=> file.split("/").takeRight(2).head} val countByGroup = newsgroups.map(n => (n,1)).reduceByKey(_+_).collect.sortBy(-_._2).mkString(