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 相关文章推荐
可用于监控 mysql Master Slave 状态的python代码
Feb 10 Python
python构建自定义回调函数详解
Jun 20 Python
python+splinter自动刷新抢票功能
Sep 25 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
Python 串口读写的实现方法
Jun 12 Python
python简单的三元一次方程求解实例
Apr 02 Python
python实现对变位词的判断方法
Apr 05 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
Python模块zipfile原理及使用方法详解
Aug 04 Python
python tqdm库的使用
Nov 30 Python
用Python实现职工信息管理系统
Dec 30 Python
使用python+pygame开发消消乐游戏附完整源码
Jun 10 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
phpmyadmin操作流程
2006/10/09 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
js 操作select相关方法函数
2009/12/06 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Django 生成登陆验证码代码分享
2017/12/12 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
结婚典礼证婚词
2014/01/11 职场文书
媒体宣传策划方案
2014/05/25 职场文书
校园标语大全
2014/06/19 职场文书
写给老师的感谢信
2015/01/20 职场文书
给上级领导的感谢信
2015/01/22 职场文书
学生会招新宣传语
2015/07/13 职场文书
话题作文之呼唤
2019/12/18 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server