学习使用spark的LDA进行文章主题词聚类,最终没有成功,先占个坑,记录错误。。
一、整体流程
- 原始数据读取及准备:切词、去停用词;
- 语料库准备:词典建立、词频文档矩阵建立;
- LDA 模型训练
二、实际操作
前期数据是按照某种规则切好的词,每行代表一个文档,其内容为以'\t'分割的word,所以直接读取:
f_cut = 'hadoop_path_to_file'
data = sc.textFile(f_cut)
data_sp = data.map(lambda line: line.strip().split())
由于在切词过程中,已经去掉了停用词和不相关词性的词,所以不再通过 TF-IDF建立特征矩阵,使用 TF 建立。使用的是 spark 的Countervectorsizer。
from pyspark.ml.feature import CountVectorizer
corpus = data_sp.zipWithIndex().map(lambda x: [x[1], x[0]]).cache()
df_corpus = corpus.toDF()
df_corpus = df_corpus.select(col("_1").alias("idx"