Python如何使用k-means方法将列表中相似的句子归类
作者:爱吃橙子的人吖 时间:2022-11-01 21:16:32
前言
由于今年暑假在学习一些自然语言处理的东西,发现网上对k-means的讲解不是很清楚,网上大多数代码只是将聚类结果以图片的形式呈现,而不是将聚类的结果表示出来,于是我将老师给的代码和网上的代码结合了一下,由于网上有许多关于k-means算法基础知识的讲解,因此我在这里就不多讲解了,想了解详细内容的,大家可以自行百度,在这里我只把我的代码给大家展示一下。
k-means方法的缺点是k值需要自己找,大家可以多换换k值,看看结果会有什么不同
代码
# coding: utf-8
import sys
import math
import re
import docx
from sklearn.cluster import AffinityPropagation
import nltk
from nltk.corpus import wordnet as wn
from nltk.collocations import *
import numpy as np
reload(sys)
sys.setdefaultencoding('utf8')
from sklearn.feature_extraction.text import CountVectorizer
#要聚类的数据
corpus = [
'This is the first document.',#0
'This is the second second document.',#1
'And the third one.',#2
'Is this the first document?',#3
'I like reading',#4
'do you like reading?',#5
'how funny you are! ',#6
'he is a good guy',#7
'she is a beautiful girl',#8
'who am i',#9
'i like writing',#10
'And the first one',#11
'do you play basketball',#12
]
#将文本中的词语转换为词频矩阵
vectorizer = CountVectorizer()
#计算个词语出现的次数
X = vectorizer.fit_transform(corpus)#获取词袋中所有文本关键词
word = vectorizer.get_feature_names()
#类调用
transformer = TfidfTransformer()
#将词频矩阵X统计成TF-IDF值
tfidf = transformer.fit_transform(X)
#查看数据结构 tfidf[i][j]表示i类文本中的tf-idf权重
weight = tfidf.toarray()
# print weight
# kmeans聚类
from sklearn.cluster import KMeans
# print data
kmeans = KMeans(n_clusters=5, random_state=0).fit(weight)#k值可以自己设置,不一定是五类
# print kmeans
centroid_list = kmeans.cluster_centers_
labels = kmeans.labels_
n_clusters_ = len(centroid_list)
# print "cluster centroids:",centroid_list
print labels
max_centroid = 0
max_cluster_id = 0
cluster_menmbers_list = []
for i in range(0, n_clusters_):
menmbers_list = []
for j in range(0, len(labels)):
if labels[j] == i:
menmbers_list.append(j)
cluster_menmbers_list.append(menmbers_list)
# print cluster_menmbers_list
#聚类结果
for i in range(0,len(cluster_menmbers_list)):
print '第' + str(i) + '类' + '---------------------'
for j in range(0,len(cluster_menmbers_list[i])):
a = cluster_menmbers_list[i][j]
print corpus[a]
运行结果:
来源:https://www.cnblogs.com/star-wf/p/11320337.html
标签:python,k-means,归类
0
投稿
猜你喜欢
Python实现将mp3音频格式转换为wav格式
2023-09-18 15:50:02
win7 x64系统中安装Scrapy的方法
2023-10-19 04:04:36
Django一小时写出账号密码管理系统
2023-03-19 23:42:02
详解Selenium-webdriver绕开反爬虫机制的4种方法
2023-09-21 03:30:46
Go开发Gin项目添加jwt功能实例详解
2024-04-26 17:31:00
PHP header()函数使用详细(301、404等错误设置)
2023-11-02 17:28:23
如何利用pyinstaller打包Python程序为exe可执行文件
2023-11-08 08:01:39
解决pycharm 格式报错tabs和space不一致问题
2022-10-12 11:36:12
Go语言HTTPServer开发的六种方式小结
2023-06-22 21:48:21
神经网络python源码分享
2021-10-07 10:41:00
Pytorch实现Fashion-mnist分类任务全过程
2023-07-14 05:12:47
python读取与处理netcdf数据方式
2021-11-09 02:45:01
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2024-04-30 08:46:35
python去掉字符串中重复字符的方法
2022-11-23 09:17:35
python字典的遍历3种方法详解
2022-05-01 06:00:44
centos上安装mysql并设置远程访问的操作方法
2024-01-14 15:24:28
jsp学习之scriptlet的使用方法详解
2023-06-27 11:06:37
Django框架模型简单介绍与使用分析
2021-04-06 02:59:19
在Python web中实现验证码图片代码分享
2022-05-29 05:32:50
python读取目录下所有的jpg文件,并显示第一张图片的示例
2023-06-21 16:31:58