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最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
python opencv3实现人脸识别(windows)
May 25 Python
python2与python3的print及字符串格式化小结
Nov 30 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
详解Python实现进度条的4种方式
Jan 15 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
通过Python实现Payload分离免杀过程详解
Jul 13 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
python 密码学示例——理解哈希(Hash)算法
Sep 21 Python
Pandas替换及部分替换(replace)实现流程详解
Oct 12 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
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
python实现从字典中删除元素的方法
2015/05/04 Python
Python socket编程实例详解
2015/05/27 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
利用python如何处理nc数据详解
2018/05/23 Python
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
师德师风自查材料
2014/10/14 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
爱国主义主题班会
2015/08/14 职场文书
python中filter,map,reduce的作用
2022/06/10 Python
python如何将mat文件转为png
2022/07/15 Python