k均值聚类 c语言,Kmeans文本聚类

该博客介绍了如何运用word2vec计算词向量,通过TF-IDF和归一化处理构建文章标题向量。接着,利用KMeans进行文本聚类,并保存及应用模型进行预测。主要涉及数据预处理、特征提取和机器学习模型的训练与应用。
摘要由CSDN通过智能技术生成

1、数据准备:

文本按行存储,分词以空格分割;

2、embedding:

使用word2vec计算每个词组的embedding;

./word2vec -train src.txt -output dst.vec -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 2 -binary 0

./word2vec -train src.txt -output dst.vec -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 2 -binary 1

3、IDF计算:

TF-IDF = 词频(TF) x 逆向文档频率(IDF)

568cde90fc378b355fc7c30c1547c52a.png

4、样本归一:

计算文章标题向量所有元素之和;

文章标题向量每个元素除以向量和;

结果写入新建文章标题向量;

5、构建样本:

计算每个单词(汉字)归一值与相似度TOP(n)的乘积,生成n个元素的向量;

将每个单词(汉字)的向量元素逐一相加求和,生成该文章标题对应的向量;

6、训练模型:

def do_texts_kmeans(data):

'''训练Kmeans模型'''

kmeans = KMeans(n_clusters=zyb_cluster, max_iter=zyb_maxiter)

kmeans.fit(data)

return kmeans

7、保存模型:

def do_kmeans_model(kmeans):

'''保存Kmeans模型'''

pickle.dump(kmeans, open(file, "wb"))

8、模型预测:

def do_texts_predict(data):

'''预测Kmeans模型'''

kmeans = pickle.load(open(file, "rb"))

return [kmeans.predict([line]) for line in data]

9、主体流程:

构建分词矩阵 -> 计算单词词频 -> 构建分词字典 -> 构建文档向量 -> 生成TFIDF结果 -> 生成归一化结果 -> 构建训练数据 -> 生成Kmeans模型 -> 输出Kmeans模型

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值