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 相关文章推荐
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
python使用BeautifulSoup分析网页信息的方法
Apr 04 Python
Python中unittest模块做UT(单元测试)使用实例
Jun 12 Python
详解Django中间件执行顺序
Jul 16 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
Python反爬虫技术之防止IP地址被封杀的讲解
Jan 09 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
浅谈Python协程
Jun 17 Python
Python3获取cookie常用三种方案
Oct 05 Python
Django数据库迁移常见使用方法
Nov 12 Python
golang特有程序结构入门教程
Jun 02 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
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
php 错误处理经验分享
2011/10/11 PHP
php加密解密实用类分享
2014/01/07 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
php去除换行(回车换行)的三种方法
2014/03/26 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
JavaScript 基础问答三
2008/12/03 Javascript
jquery自定义表格样式
2015/11/23 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
JS简单验证上传文件类型的方法
2017/04/17 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
高级文秘工作总结的自我评价
2013/09/28 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
医德医魂心得体会
2014/09/11 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
背起爸爸上学观后感
2015/06/08 职场文书
八月一日观后感
2015/06/10 职场文书
python基础之while循环语句的使用
2021/04/20 Python