kmeans聚类算法mysql_聚类--k-means算法

本文介绍了如何使用KMeans聚类算法对包含农业、葡萄种植、有机肥料、通信技术等主题的文本数据进行分类。通过CountVectorizer计算词频,TfidfTransformer计算TF-IDF权重,然后利用KMeans进行聚类,最终将文本分为5个类别,并将原始标签映射到对应的类别中。
摘要由CSDN通过智能技术生成

import os

import sys

from sklearn import feature_extraction

from sklearn.feature_extraction.text import TfidfTransformer

from sklearn.feature_extraction.text import CountVectorizer

from sklearn.cluster import KMeans

labels=["玉米深厚层施肥精量播种机械化技术集成与示范","冀北丘陵山地葡萄优质高效水肥调控技术","机械化土壤保墒技术的研究与应用","有机物料快速高效腐熟及其应用技术","类四","类Ⅴ","华北油田持续稳产关键开发技术研究与应用"]

if __name__ == '__main__':

corpus=["玉米 播种机 农业 三农 农机 农资",

"葡萄 水肥一体化 调控",

"蔬菜 生物有机肥 有机物",

"蔬菜 农业 三农 时政",

"数据传输方式 通信",

"乌洛托品",

"华北油田 有效市场 经济建设 经济利润 国内经济 关键 时政 原油 地质"]

vectorizer=CountVectorizer()#该类会将文本中的词语转换为词频矩阵,矩阵元素a[i][j] 表示j词在i类文本下的词频

transformer=TfidfTransformer()#该类会统计每个词语的tf-idf权值

tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus))#第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵

word=vectorizer.get_feature_names()#获取词袋模型中的所有词语

weight=tfidf.toarray()#将tf-idf矩阵抽取出来,元素a[i][j]表示j词在i类文本中的tf-idf权重

print(word)

print(weight)

for i in range(len(weight)): # 打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重

print(u"-------这里输出第", i, u"类文本的词语tf-idf权重------")

for j in range(len(word)):

print(word[j], weight[i][j])

mykms=KMeans(n_clusters=5)

y=mykms.fit_predict(weight)

for i in range(0,10):

label_i=[]

for j in range(0,len(y)):

if y[j]==i:

label_i.append(labels[j])

print('label_'+str(i)+':'+str(label_i))

根据corpus进行分类,将lable打入lable_i标签中

结果截图

f4dd4e70d5cbb078c38452dc147d704e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值