文本聚类算法介绍

分类和聚类都是文本挖掘中常使用的方法,他们的目的都是将相似度高的对象归类,不同点在于分类是采用监督学习,分类算法按照已经定义好的类别来识别一篇文本,而聚类是将若干文本进行相似度比较,最后将相似度高的归为一类[40]。在分类算法中,训练集为已经标注好的数据集,但是微博文本具有的大数据特性及不确定性决定了标注数据的难度,因此本文选择聚类算法对大量且随机的微博文本进行处理。

大量文本建模后还需要对主题分布进行聚类以得到更精确简洁的话题,因此文本聚类在话题检测技术中具有重要意义。聚类是一种无监督学习方式,目的是把一个数据根据某种规则划分为多个子数据,一个子数据就称为一个聚类。聚类分析在文本分析、商务应用、网页搜索、推荐系统、生物医学等多个领域都有着十分广泛的应用。由于数据应用场合不同,不同的聚类方式侧重点不同,各有优势和缺陷,因此目前没有一个通用的聚类算法。目前聚类主要分为以下几类:基于划分的聚类算法、基于层次的聚类算法、基于密度的聚类算法、基于网格的聚类算法、基于模型的聚类算法以及基于模糊的聚类算法[41]。图2-8为目前主要的聚类算法分类图。

图 2-8 聚类算法分类图

2.4.1 基于划分的聚类算法

基于划分的聚类算法是聚类算法中最为简单的算法,假设有一个数据集 ,其中包含 个子数据,若要将 划分为 个类簇, ,每个类簇中至少含有一个子数据,且类簇之间不会有交集。要达到的要求是簇中的数据之间有较高的相似度,而簇类之间的相似度尽可能地低。经过专家学者的不断研究, K-means算法、Single-Pass增量聚类算法、围绕中心划分(Partitioning Around Mediods,PAM)算法等等都得到了较为广泛的应用。而其中最为经典、应用最多的是K-means算法。

K-means算法又称 均值算法,是一种容易实现且应用广泛的聚类算法,其算法的思想是首先在数据样本集中随机选取 个样本作为簇中心;然后计算样本集中其他样本与这 个簇中心的距离,距离通常利用曼哈顿距离、欧式距离等来度量,再根据设定的阈值将每个样本划分到与其距离最近的簇中心所在的簇中;最后根据新划分的簇重新计算距离,将簇中所含样本的距离均值作为更新簇的中心,再重复计算距离直到达到条件。K-means算法最关键的就是确定 的个数[42]。

基于划分的聚类算法对于大部分数据都有较强的适用性,且计算简单高效,空间复杂度较低,但是在处理大规模样本时结果多数是局部最优,对于类簇中心选取也十分敏感并且无法解决非凸数据。

2.4.2 基于层次的聚类算法

层次聚类算法(Hierarchical Clustering,HC)又称为树聚类算法[43]。主要思想是将样本集合合并或者分裂成凝聚度更高或者更细致的子样本集合,最终样本集合形成一棵层次树。同K-means算法不同,层次聚类算法不需要预先设定聚类数 ,只要样本集合通过不断迭代达到聚类条件或者迭代次数即可。基于层次划分的经典聚类算法有:变色龙算法、AGNES(Agglomerative NE Sting)、CURE(Clustering Using RE Presentatives)等。根据聚类的方向基于层次的聚类算法可以分为凝聚式和分裂式,凝聚式是将簇结合起来,而分裂式则是将大的类簇分为小类。

(1)凝聚式层次聚类算法

凝聚式层次聚类(Hierarchical Agglomerative Clustering,HAC)顾名思义是凝聚数据样本,它的聚类方向是从子数据向上不断合并,该算法经常运用于话题检测中。凝聚式层次聚类首先从底部分散的单个样本开始依次计算与其他样本的距离,然后选择距离最小样本并与其合并成一个新的样本集,再重复上述过程直到形成一个包含所有样本的簇,或者达到迭代次数。凝聚式层次聚类只需要计算样本之间的距离然后合并,该方法计算简单,但是如果数据样本太大则算法复杂度会呈指数级增长,且已合并的操作无法逆转。

(2)分裂式层次聚类算法

分裂式层次聚类与凝聚式层次聚类处理样本数据的方向是相反的,它是将整个数据样本看作一个大类簇,然后根据距离公式或其他原则将大的类簇分为小的类簇,不断迭代直到将所有的样本数据分类到单独的类簇中或者是达到迭代次数。层次聚类被公认为是能够产生较好质量的聚类结果的聚类算法[44]。此算法缺点是已操作不能撤回,对于大量数据样本时间复杂度高。

2.4.3 基于密度的聚类算法

基于密度的聚类算法的主要思想是首先找出密度较高的点,然后把周围相近的密度较高的样本点连成一片,最后形成各类簇。基于密度的聚类比较代表性的三种方法有:Ester等提出的DBSCAN[45]方法、Ankerst 等提出OPTICS[46]方法和 Hinneburg 提出的 DENCLUE[47]技术。此类算法的优点是鲁棒性很强,对于任意形状的聚类都适用,但是结果的精度与参数设置关系密切,实用性不强。

2.4.4 基于网格的聚类算法

与其他聚类算法相比较,基于网格的聚类算法出发点不再是平面而是空间。在该空间中,有限个网格代表数据,聚类就是按一定的规则将网格合并。Wang等人提出的STING算法[48]及其改进算法、Agrawa等人提出的CLIQUE算法l[49]等都是较为经典的基于网格的算法。基于网格的聚类算法由于处理数据时是独立的,仅仅依赖网格结构中每一维的单位数,因此处理速度很快。但是此算法对参数十分敏感,速度快的代价是精确度不高,通常需要与其他聚类算法结合使用。

2.4.5 基于模型的聚类算法

基于模型的聚类算法的思路是假设每个类簇为一个模型,然后再寻找与该模型拟合最好的数据,通常有基于概率和基于神经网络两种方法。概率模型即概率生成模型,是假设数据是由潜在的概率分布产生的,典型的算法是高斯混合模型(Gaussian Mixture Models,GMM)[50];而来自芬兰的神经网络专家提出的自组织映射(Self Organized Maps,SOM)是典型的神经网络模型[51]。对类簇而言,基于模型的聚类算法是用概率形式呈现,每个类的特征也可以直接用参数表示,但是与其他聚类方法相比,这类聚类方法在样本数据量大的时候执行率较低,不适合大规模聚类场合。

2.4.6 基于模糊的聚类算法

基于模糊的聚类算法主要是为了克服非此即彼的分类缺陷,它的主要思想是以模糊集合论作为数学基础,用模糊数学的方法进行聚类分析。此方法的优点在于对于满足正态分布的样本数据来说它的效果会很好,但是此算法过于依赖初始聚类中心,为确定初始聚类中心需要多次迭代以寻找最佳点,对于大规模数据样本来说会大大增加时间复杂度。

上述的聚类方法各有千秋,在面对不同的数据集时能起到不同的作用,在参考韩威等[52]的文献之后列出表2-2直观展示几种主要算法在性能方面的差异。

表2-2 几种常用聚类算法对比

聚类算法
处理大规模数据能力
处理高维数据能力
发现任意形状簇的能力
数据顺序敏感度
处理噪声能力
基于层次的方法

较强

不敏感
较弱
基于划分的方法
较弱

较强
不敏感

基于密度的方法
较强


不敏感

Single-pass算法


较强
敏感

从表2-2可以直观地看出,对于初始无法确定主题个数且大规模的微博短文本来说,Single-Pass增量算法更适合。但是Single-Pass增量算法对于数据输入时的顺序十分敏感,并且计算复杂度随着数据的增大而增多,因此本文采用改进的Single-Pass增量算法对话题进行检测。经过改进的Single-Pass增量算法处理后的文本凝聚度相对较高,维度相对较低,再采用适合处理这类文本的凝聚式层次聚类进行话题合并以得到热点话题。通过结合Single-Pass增量算法与凝聚式层次聚类算法,对大量微博短文本进行处理提取出热点话题,能有效提高效率,同时得到更精确的热点话题。

模糊c均值聚类_六种常用的文本聚类方法介绍相关推荐

  1. 六种常用的文本聚类算法介绍

    文本聚类算法介绍 分类和聚类都是文本挖掘中常使用的方法,他们的目的都是将相似度高的对象归类,不同点在于分类是采用监督学习,分类算法按照已经定义好的类别来识别一篇文本,而聚类是将若干文本进行相似度比较, ...

  2. 计算机网络设置中的网关是什么设备,网关是什么_网关的作用与设置方法介绍 一看就明白...

    网关是什么?对于普通的用户来说,电脑网关不是很明白的,不过接触电脑多了之后,大家也会常常会听到"网关"这个词,那么问题就来了,这个网关是什么意思呢?它又有哪些作用呢?今晚,智能手机 ...

  3. 诛仙3怎么一直服务器维护,诛仙3游戏老是掉线怎么办_诛仙3游戏掉线解决方法介绍...

    诛仙3游戏老是掉线怎么办_诛仙3游戏掉线解决方法介绍 诛仙3经常掉线但又不是网速的锅,通常玩家们会把锅甩给服务器,但是甩锅依然解决不了掉线问题,今天小编为各位玩家带来诛仙3游戏掉线怎么办解决方法,一起 ...

  4. python多维向量聚类_机器学习:Python实现聚类算法(三)之总结

    考虑到学习知识的顺序及效率问题,所以后续的几种聚类方法不再详细讲解原理,也不再写python实现的源代码,只介绍下算法的基本思路,使大家对每种算法有个直观的印象,从而可以更好的理解函数中参数的意义及作 ...

  5. 二极管ss14测量_各种常用二极管的检测方法

    各种常用二极管的检测方法 半导体二极管又称为晶体二极管,具有明显的单向导电性,是各种电器设备 中应用较为广泛的一种半导体元器件,也是日常维修中经常碰到的一种元器件, 常见的有普通二极管.稳压二极管.发 ...

  6. 机器学习-无监督学习-聚类:聚类方法(二)--- 基于密度的聚类算法【DBSCAN文本聚类算法,密度最大值文本聚类算法】

    密度聚类方法的指导思想是,只要样本点的密度大于某阀值,则将该样本添加到最近的簇中. 基于密度的聚类算法假设聚类结构能够通过样本分布的紧密程度确定,以数据集在空间分布上的稠密程度为依据进行聚类,即只要一 ...

  7. webpackjsonp 还原_羧酸还原成醛的方法介绍

    醛基具有较高的反应活性,在天然产物及药物的合成中应用非常广泛,醛的制备通常可采用醇的氧化或羧酸衍生物的选择性还原而得到,由羧酸直接还原成醛是更困难的,通常会得到进一步的还原产物醇. 路径一:羧酸还原成 ...

  8. 哈工大大数据实验_科研常用 | 实验大数据分析方法

    对于每个科研工作者而言,对实验数据进行处理是在开始论文写作之前十分常见的工作之一.但是,常见的数据分析方法有哪些呢?常用的数据分析方法有:聚类分析.因子分析.相关分析.对应分析.回归分析.方差分析. ...

  9. 卡尺测量的最小范围_工厂车间里常用的测量仪器使用方法介绍,你都会用吗?...

    一.测量器具的分类 测量器具是一种具有固定形态.用以复现或提供一个或多个已知量值的器具.按用途的不同量具可分为以下几类: 1. 单值量具 只能体现一个单一量值的量具.可用来校对和调整其它测量器具或作为 ...

最新文章

  1. 正态分布里的西格玛_西格玛和西格玛水平
  2. 动图 + 源码,演示 Java 中常用数据结构执行过程及原理
  3. docker初识_docker 初识
  4. matlab怎么打出角频率,[Matlab]频率f,角频率Ω和数字频率w的物理含义
  5. html提值到php 冒泡,如何实现Html事件冒泡
  6. C# WebApi Xml序列化问题解决方法:“ObjectContent`1”类型未能序列化内容类型“application/xml;charset=utf-8“的响应正文。...
  7. 制作精美失落美女胶片效果
  8. python 全栈开发,Day122(人工智能初识,百度AI)
  9. 《一年学完mit计算机课程》,用了这种学习方法,他一年学完了33门MIT计算机课程...
  10. Office快捷键大全之四(Frontpage快捷键)
  11. wps中的格式化快捷键
  12. Codejock Xtreme ToolkitPro 静态链接XTP库以及皮肤库的使用
  13. 网络安全岗位介绍——等级保护测评师
  14. 浅谈WMS系统(SAP WMS系统及非SAP的WMS系统)
  15. 单页面应用(SPA)前端路由hash 模式 VS history 模式
  16. 计算机房间墙壁的布置,房间小怎么布置 小房间布置有妙招
  17. LRU 不知道?这个生活实例一定知道吧!
  18. java代码拉马车游戏,8届省赛java 拉马车
  19. 深度学习实战教程(1)--手机跑目标检测(YOLO,从DarkNet到Caffe再到NCNN完整打通)
  20. Zero-Shot Transfer Learning for Event Extraction

热门文章

  1. k8s StatefulSet
  2. Python Django jsonpickle序列化部分字段
  3. spring @Order注解
  4. Spring AOP编程-aspectJ代理方式选择
  5. MQTT连接阿里云IoT(四)
  6. C++设计模式--模板方法模式
  7. Apache与Tomcat使用
  8. 什么是TCP三次握手?
  9. ubuntu java 全屏显示_java 在ubuntu下实现全屏,上面的状态栏依然显示。如下图,不想要上面的状态栏...
  10. 2013NOIP普级组-- 小朋友的数字