nltk27_NLTK聚类分析
http://www.pythontip.com/blog/post/10044/
Python自然语言处理(三) -- 利用NLTK进行聚类
这篇文章介绍如何利用NLTK进行聚类,和上两篇文章Python自然语言处理(一)、Python自然语言处理(二)不同,聚类不能算作自然语言处理的内容,但可以很容易应用到NLP中,因此将其划分到自然语言处理下。
-------------------进入正题--------------------
nltk内部封装了常用的聚类方法:Kmeans(K均值)、混合高斯聚类以及GAAC(组平均层次聚类)
使用这些聚类方法之前,需要保证已安装pynum,因为他们聚类传入的数据要求是pynum.array类型。
pynum的安装教程网上一大堆,这里不进行介绍。
一、数据准备
下面所有的聚类数据都是用这组:

注意:datas的元素是array类型
二、Kmeans聚类
用到的函数:
nltk.cluster.kmeans.KMeansClusterer(num_means, distance )#返回Kmeans聚类器的对象,num_means:目标类别数,distance:自定义距离函数

例子中,我们的目标类别数目为2, 距离函数为欧式距离
km.cluster(datas) #对数据集datas进行聚类
km.classify(data)#返回data被分到的类别
三、GAAC聚类
nltk.cluster.gaac.GAAClusterer(num_clusters , normalise )#num_clusters:目标类别数, normalise:是否归一化
这里需要说明一下,GAAC的距离使用的是点积的结果,并不是余弦相似度,如果normalise设置为True,将相似度进行归一化,此时的距离为余弦相似度
GAAC无法自定义相似度

例子中,我们设置目标类别为3,距离需要归一化,也即相似度为余弦相似度。
上述结果可以看出,所分的三个类为{(1,0)}, {(0,1)}, {[ 1, 1.] [ 5, 5.] [ 5 , 4.] [ 4 , 5.]}
结果和Kmeans非常不同,这是因为使用的相似度为余弦相似度
四、混合高斯聚类
用到的函数:
nltk.cluster.em.EMClusterer(initial_means)#initial_means:the means of the gaussian cluster centers


箭头表示聚类的结果,其余数据为中间数据。
nltk27_NLTK聚类分析的更多相关文章
- 地理信息系统 - ArcGIS - 高/低聚类分析工具(High/Low Clustering ---Getis-Ord General G)
前段时间在学习空间统计相关的知识,于是把ArcGIS里Spatial Statistics工具箱里的工具好好研究了一遍,同时也整理了一些笔记上传分享.这一篇先聊一些基础概念,工具介绍篇随后上传. 空间 ...
- SPSS数据分析—聚类分析
多元分析的主要思想之一就是降维,我们已经讲过了很多降维的方法,例如因子分析.主成分分析,多维尺度分析等,还有一种重要的降维方法,就是聚类分析. 聚类分析实质上就是按照距离远近将数据分成若干个类别,使得 ...
- 《BI那点儿事》Microsoft 聚类分析算法——三国人物身份划分
什么是聚类分析? 聚类分析属于探索性的数据分析方法.通常,我们利用聚类分析将看似无序的对象进行分组.归类,以达到更好地理解研究对象的目的.聚类结果要求组内对象相似性较高,组间对象相似性较低.在三国数据 ...
- 《BI那点儿事》Microsoft 顺序分析和聚类分析算法
Microsoft 顺序分析和聚类分析算法是由 Microsoft SQL Server Analysis Services 提供的一种顺序分析算法.您可以使用该算法来研究包含可通过下面的路径或“顺序 ...
- WEKA使用(基础配置+垃圾邮件过滤+聚类分析+关联挖掘)
声明: 1)本文由我bitpeach原创撰写,转载时请注明出处,侵权必究. 2)本小实验工作环境为Windows系统下的WEKA,实验内容主要有三部分,第一是分类挖掘(垃圾邮件过滤),第二是聚类分析, ...
- R语言简单实现聚类分析计算与分析(基于系统聚类法)
聚类分析计算与分析(基于系统聚类法) 下面以一个具体的例子来实现实证分析.2008年我国其中31个省.市和自治区的农村居民家庭平均每人全年消费性支出. 根据原始数据对我国省份进行归类统计. 原始数据如 ...
- R语言简单聚类分析
#以R基础包自带的鸢尾花(Iris)数据进行聚类分析iris data <- iris[,:] #系统聚类法(层次聚类法) distance <- dist(data) #计算距离 iri ...
- Arcgis for JS之Cluster聚类分析的实现(基于区域范围的)
原文:Arcgis for JS之Cluster聚类分析的实现(基于区域范围的) 咱们书接上文,在上文,实现了基于距离的空间聚类的算法实现,在本文,将继续介绍空间聚类之基于区域范围的实现方式,好了,闲 ...
- Arcgis for JS之Cluster聚类分析的实现
原文:Arcgis for JS之Cluster聚类分析的实现 在做项目的时候,碰见了这样一个问题:给地图上标注点对象,数据是从数据库来 的,包含XY坐标信息的,通过graphic和graphicla ...
随机推荐
- Python安装
Win10 安装Python 1.官网下载Python安装包,一直点击下一步进行安装 安装完Python后要设置环境变量,右键我的电脑-->属性-->高级系统设置-->环境变量--& ...
- openstack命令备忘录
原文http://my.oschina.net/u/138210/blog/142661 查看rabbitmq 队列 rabbitmqctl list_queues 查看keystone的用户 key ...
- (转)浅析Java中的访问权限控制
原文地址: http://www.cnblogs.com/dolphin0520/p/3734915.html 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下 ...
- 实验楼 linux 学习
实验楼 linux 学习 一.Linux 用户管理 1.查看用户 who am i // who mom likes whoami ====--------====== 输入的第一列表示打 ...
- maven私服搭建
一.软件安装 地址:http://www.sonatype.org/nexus/thank-you-for-downloading/?dl=tgz 解压: 启动: >> nexus sta ...
- 第1章 重构,第一个案例(2):分解并重组statement函数
2. 分解并重组statement (1)提炼switch语句到独立函数(amountFor)和注意事项. ①先找出函数内的局部变量和参数:each和thisAmount,前者在switch语句内未被 ...
- 2016的ChinaJoy沦为ChinaVR?
China Joy已沦为ChinaVR,厂商烧钱参加? 在上海超过40度的高温天下,游戏爱好者们汗流满面地排起长队,拥挤地通过安检进入场馆,但是很快感受到了一丝凉意. ShowGirl少了 " ...
- Ajax与JqueryUI和EasyUI错题总结
Ajax与JqueryUI和EasyUI错题总结 正确答案A,解析:此题考察的是JQuery UI下的menu插件的使用,menu提供ui-state-disabled class 方法禁用任何菜单项 ...
- linux vi基本操作
在Linux下,可以键入vimtutor命令,有一个包含实操的vim教程. 1.VI的三种命令模式 1)Command(命令)模式,用于输入命令: 2)Insert(插入)模式,用于插入文本: ...
- gradle项目中资源文件的相对路径打包处理技巧
开发java application时,不管是用ant/maven/gradle中的哪种方式来构建,通常最后都会打包成一个可执行的jar包程序,而程序运行所需的一些资源文件(配置文件),比如jdbc. ...