【文本聚类】用k-means对文本进行聚类

来源:互联网 发布:stm32f4中文数据手册 编辑:程序博客网 时间:2024/06/07 07:32
# -*- coding: utf-8 -*-"""Created on Thu Nov 16 10:08:52 2017@author: li-pc"""import jieba from sklearn.feature_extraction.text import  TfidfVectorizerfrom sklearn.cluster import KMeansdef jieba_tokenize(text):    return jieba.lcut(text) tfidf_vectorizer = TfidfVectorizer(tokenizer=jieba_tokenize, lowercase=False)'''tokenizer: 指定分词函数lowercase: 在分词之前将所有的文本转换成小写,因为涉及到中文文本处理,所以最好是False'''print "ok3"text_list = ["今天天气真好啊啊啊啊", "小明上了清华大学", \"我今天拿到了Google的Offer", "清华大学在自然语言处理方面真厉害"] #需要进行聚类的文本集print "ok1"tfidf_matrix = tfidf_vectorizer.fit_transform(text_list)num_clusters = 2km_cluster = KMeans(n_clusters=num_clusters, max_iter=300, n_init=1, \                    init='k-means++',n_jobs=1)print "ok2"'''n_clusters: 指定K的值max_iter: 对于单次初始值计算的最大迭代次数n_init: 重新选择初始值的次数init: 制定初始值选择的算法n_jobs: 进程个数,为-1的时候是指默认跑满CPU注意,这个对于单个初始值的计算始终只会使用单进程计算,并行计算只是针对与不同初始值的计算。比如n_init=10,n_jobs=40, 服务器上面有20个CPU可以开40个进程,最终只会开10个进程'''#返回各自文本的所被分配到的类索引result = km_cluster.fit_predict(tfidf_matrix)print "Predicting result: ", result

其中,text_list是需要进行聚类的文本,本文中是中文文本,啦啦,貌似还很厉害的样子。

原创粉丝点击