Spark MLlib 特征工程系列—特征提取CountVectorizer
CountVectorizer 是 Apache Spark MLlib 中的一个工具,常用于将一组文本(文档)转换为词频向量(Term Frequency)。它是一种简单而有效的文本特征提取方法,能够将文本数据转换为机器学习算法可用的数值特征。
CountVectorizer 的目标是将文本数据转换为一个稠密或稀疏的特征矩阵,其中每一行表示一个文档,每一列表示词汇表中的一个词。矩阵中的每个元素表示对应词汇在文档中的出现次数。
CountVectorizer原理:
• 词汇表构建:CountVectorizer 首先扫描所有输入文本,构建出词汇表(vocabulary),即所有出现过的词语集合。
• 词频统计:然后,它将每个文档转换为一个向量,这个向量的每个元素表示该文档中某个词在词汇表中出现的次数。
代码实现
import org.apache.spark.ml.feature.{CountVectorizer, CountVectorizerModel}
import org.apache.spark.sql.SparkSession
// 创建 SparkSession
val spark = SparkSession.builder.appName("CountVectorizer Example").getOrCreate()
// 创建一个简单的 DataFrame,包含几条文本数据
val sentenceDa