Word2Vec
单词向量化是一个估算器,将文档转换成一个按照固定顺序排列的单词序列,然后,训练成一个Word2VecModel单词向量化的模型,该模型将每个单词映射成一个唯一性的、固定大小的向量集,对每个文档的所有单词进行平均,将文档转换成一个向量集,该向量集可以作为预测的特征集、用于计算文档的相似性,或者其他文本处理领域。
代码示例
如上所示,data是定义了三行记录的文档数据集,schema定义了一个数据表的元数据信息,第一列text是原文,documentDF使用data以及schema创建了一个数据框架用于特征提取,word2Vec定义一个单词向量化的特征估算器,model是使用word2Vec对数据集documentDF训练成一个模型,result对数据特征进行预测,最后,输出预测的结果。
CountVectorizer
是一个用于对向量集进行计数的估算器,CountVectorizer估算器以及CountVectorizerModel模型是对输入的文档集转换成每个文档的分词集合,再对每个文档中的单词进行计数,输出每个文档中每个单词的统计总数,其使用的稀疏集合表示每个文档。
代码示例
如上所示,定义一个文档集合,表示两行记录。
如上所示,使用CountVectorizer估算器对文档集合进行训练得到CountVectorizerModel,该模型的训练结果中,第一列id表示文档的序号,第二列表texts表示原文,第三列vector表示一个向量集,该向量集的第一个元素表示单词的总数,第二个元素表示单词对应的序号,0表示a,1表示b,2表示c,第三个元素表示每个单词的统计数,第一行文档a出现1、b出现1次、c出现1次,第二行文档a出现2次、b出现2次、c出现1次。
如上所示,data是对应的文档,schema定义数据集的元数据信息,第一列text表示原文,df使用data以及shcema定义了一个数据框架,cvModel是使用CountVectorizer训练而成的一个向量集计数模型,cvm是以其他方式定义一个模型,最后,进行数据集预测、输出预测结果。
FeatureHasher
特征哈希器是将分类特征或者数值特征转换成一个指定维度数的特征向量集,一般情况下,该转换器是对多个列进行转换,每个列的类型是分类特征或者数值特征,根据数据类型的哈希算法如下所示:
|
如上所示,输入的数据样本,包括4列、4行记录,第一个列的数据类型是数值、第二列的数据类型是布尔、第三列的数据类型是字符串数值、第四列的数据类型是字符串。
如上所示,使用FeatureHasher哈希器转换成特征向量集。
如上所示,data是定义的4列4行的数据样本,schema是定义的数据存储格式,dataset是创建一个数据框架,hasher是定义一个FeatureHasher哈希器,featurized是已经转换的特征向量集。
Spark代码单元测试
如上所示,从apache spark官方网址下载对应的版本。
如上所示,运行bin目录下的spark-shell命令,启动scala运行环境。
如上所示,输入scala的代码,执行特征转换,输出转换的特征向量集。
(未完待续)