Python如何使用k-means方法将列表中相似的句子归类


Posted in Python onAugust 08, 2019

前言

由于今年暑假在学习一些自然语言处理的东西,发现网上对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]

运行结果:

Python如何使用k-means方法将列表中相似的句子归类

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python写入中英文字符串到文件的方法
May 06 Python
Python通过命令开启http.server服务器的方法
Nov 04 Python
Python之list对应元素求和的方法
Jun 28 Python
python 产生token及token验证的方法
Dec 26 Python
在PyCharm中批量查找及替换的方法
Jan 20 Python
python3.6实现学生信息管理系统
Feb 21 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
python中的django是做什么的
Jul 31 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
Idea安装python显示无SDK问题解决方案
Aug 12 Python
Github 使用python对copilot做些简单使用测试
Apr 14 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
Aug 08 #Python
python批量修改ssh密码的实现
Aug 08 #Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 #Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 #Python
python按行读取文件并找出其中指定字符串
Aug 08 #Python
python实现PID算法及测试的例子
Aug 08 #Python
python开头的coding设置方法
Aug 08 #Python
You might like
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
javascript关于“时间”的一次探索
2019/07/24 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
python多线程并发及测试框架案例
2019/10/15 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
管理心得体会
2013/12/28 职场文书
《秋游》教学反思
2014/04/24 职场文书
关于学习的决心书
2015/02/05 职场文书
2015政治思想表现评语
2015/03/25 职场文书
2016年过年放假安排通知
2015/08/18 职场文书