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的迭代器和生成器使用实例
Jan 14 Python
python类中super()和__init__()的区别
Oct 18 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
速记Python布尔值
Nov 09 Python
实例讲解Python3中abs()函数
Feb 19 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
Python函数和模块的使用总结
May 20 Python
10个Python面试常问的问题(小结)
Nov 20 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
python数据分析:关键字提取方式
Feb 24 Python
Python基于xlrd模块处理合并单元格
Jul 28 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 输出简单动态WAP页面
2009/06/09 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
PHP7 其他修改
2021/03/09 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
javascript常用函数(2)
2015/11/05 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
vue基础之事件v-onclick="函数"用法示例
2019/03/11 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
js实现扫雷源代码
2020/11/27 Javascript
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
GC是什么?为什么要有GC?
2013/12/08 面试题
室内设计专业个人的自我评价
2013/12/18 职场文书
小露珠教学反思
2014/04/30 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
市场总监岗位职责
2015/02/11 职场文书
异地恋情人节寄语
2015/02/28 职场文书
企业投资意向书
2015/05/09 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
详解NodeJS模块化
2021/06/15 NodeJs
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
java项目构建Gradle的使用教程
2022/03/24 Java/Android