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实现对比两张图片的不同
Feb 05 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
Python with用法:自动关闭文件进程
Jul 10 Python
Python的log日志功能及设置方法
Jul 11 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
Python脚本去除文件的只读性操作
Mar 05 Python
Django实现内容缓存实例方法
Jun 30 Python
python实现简单聊天功能
Jul 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初学入门
2006/11/19 PHP
php session 错误
2009/05/21 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
js给selected添加options的方法
2015/05/06 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
python中if嵌套命令实例讲解
2021/02/25 Python
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
Java程序员面试题
2016/09/27 面试题
学习十八大演讲稿
2014/09/15 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
小学家长通知书评语
2014/12/31 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android