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 相关文章推荐
Python2.x和3.x下maketrans与translate函数使用上的不同
Apr 13 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
Python实现的堆排序算法示例
Apr 29 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
May 23 Python
Python微信操控itchat的方法
May 31 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
python实现IOU计算案例
Apr 12 Python
Django vue前后端分离整合过程解析
Nov 20 Python
Python OpenCV 彩色与灰度图像的转换实现
Jun 05 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伪静态写法附代码
2008/06/20 PHP
php生成动态验证码gif图片
2015/10/19 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
python 图片验证码代码分享
2012/07/04 Python
Python数据库的连接实现方法与注意事项
2016/02/27 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
python并发和异步编程实例
2018/11/15 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
TobyDeals美国:在电子产品上获得最好的优惠和折扣
2019/08/11 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
制衣厂各岗位职责
2013/12/02 职场文书
超市中秋节促销方案
2014/03/21 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
李强优秀员工观后感
2015/06/16 职场文书
关于军训的感想
2015/08/07 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫