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使用win32com库播放mp3文件的方法
May 30 Python
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
解决tensorflow模型参数保存和加载的问题
Jul 26 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
Python基本语法之运算符功能与用法详解
Oct 22 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
python 高阶函数简单介绍
Feb 19 Python
解决hive中导入text文件遇到的坑
Apr 07 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中常见的mongodb查询操作
2013/06/20 PHP
php读取excel文件的简单实例
2013/08/26 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
python机器学习实战之树回归详解
2017/12/20 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
学校门卫岗位职责范本
2014/06/30 职场文书
认错检讨书
2014/10/02 职场文书
教师创先争优承诺书
2015/04/27 职场文书
抢劫罪辩护词
2015/05/21 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
mysql数据库入门第一步之创建表
2021/05/14 MySQL