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 相关文章推荐
Python3字符串学习教程
Aug 20 Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 Python
python绘制简单折线图代码示例
Dec 19 Python
Python动态生成多维数组的方法示例
Aug 09 Python
Scrapy框架使用的基本知识
Oct 21 Python
Python 给屏幕打印信息加上颜色的实现方法
Apr 24 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
Apr 08 Python
基于Django集成CAS实现流程详解
Nov 28 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 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中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
PHP实现百度人脸识别
2019/05/06 PHP
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
python实现二维码扫码自动登录淘宝
2016/12/27 Python
python自定义异常实例详解
2017/07/11 Python
Python列表(List)知识点总结
2019/02/18 Python
简单了解python关系(比较)运算符
2019/07/08 Python
numpy数组广播的机制
2019/07/12 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
django序列化serializers过程解析
2019/12/14 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
SQL面试题
2013/04/30 面试题
安全生产汇报材料
2014/02/17 职场文书
2014年幼儿园植树节活动方案
2014/03/02 职场文书
司机职责范本
2014/03/08 职场文书
大学生社会实践评语
2014/04/25 职场文书
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang