• 聚类--k-means算法


    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标签中

    结果截图

  • 相关阅读:
    一起talk C栗子吧(第一百二十六回:C语言实例--statickeyword)
    leetcode:程序猿面试技巧
    学习图像算法阶段性总结 (附一键修图Demo)
    KMP算法具体解释
    数据结构中的7种排序算法
    关于系统首页绘制问题(ext布局+c#后台加入数据)经html输出流输出响应client
    jumpserver 堡垒机环境搭建(图文具体解释)
    Android二维码工具zxing使用
    Oracle对没有主键的表分页
    Mondiran创建连接
  • 原文地址:https://www.cnblogs.com/1061321925wu/p/12561816.html
Copyright © 2020-2023  润新知