NLP笔记之文本聚类

NLP笔记之文本聚类

一、概述

文本聚类是聚类在文本上的应用。由浅入深,需要先介绍聚类的思想。

二、聚类思想简介

聚类是将给定对象的集合划分为不同子集的过程,目标是使每个子集内部的元素尽量相似,不同子集(簇)之间的元素尽量不相似。根据元素从属集合的确定程度,聚类分为硬聚类和软聚类。
1.硬聚类:每个元素被确定地分入一个类
2.软聚类:每个元素与每个簇都存在一定的隶属程度,只不过该程度有大有小。
在实际工程尤其是NLP任务中,由于硬聚类更加简洁,所以使用得更频繁。

三、文本聚类

文本聚类指的是对文档进行的聚类分析,被广泛应用于文本挖掘和信息检索领域。最初文本聚类仅仅用于文本归档,后来人们又挖掘出了许多新用途,比如改善搜索结果、生成同义词,等等。
如果能将文档表示为向量,那么剩下的算法就与文档无关了。那么,如何能将一篇文档表示为一个向量呢?

四、文档的特征提取

4.1 词袋模型

步骤如下
(1)将训练集文档的所有词语构成一个词表,词表之外的词语称为OOV。设该词表大小为N。
(2)对未知的新文档,只统计该文档中的属于词表中的词的词频,构成长度为N的向量,视为该文本的特征向量。
词袋模型的计算成本很低。同时,‘人吃鱼’和‘鱼吃人’的向量特征是一模一样的,因为词袋模型只关注词频数据。这好像很荒谬,但是词袋模型依然是一个很难打败的基线模型。

4.2 词袋模型的统计指标

词袋模型并非只提取词频作为统计指标,而是存在许多指标,常见的统计量包括:
1.布尔词频。文档中有该词,则值设为1,没有则视为0.
2.TF-IDF:该特征的计算参考关键词提取中的TF-IDF算法,有兴趣的读者可以深入研究。
3.词向量。得到词向量的方式有很多,如基于神经网络的w2v技术。词向量适合处理OOV(out-of-vocabulary)问题严重的数据集。
除此之外,神经网络也能无监督地生成文档向量,如,自动编码器和受限玻尔兹曼机。通过DNN得到的文档向量一般优于词袋模型,但代价是计算开销较大。
为了处理长度不同的文档,通常将文档向量d归一化为单位向量,即||d||=1。

五、聚类算法

聚类算法包括但不限于:K-means聚类,密度聚类,层次聚类,本文以K-means聚类算法为例,解释聚类算法的思想,其步骤如下:
(1)选取K个点作为K个簇的初始质心
(2)将所有的点分别分配给最近的质心所在的簇
(3)重新计算每个簇的质心
(4)重复步骤(2)和(3)直到质心不再变化
由于该算法不保证收敛到全局最优,因此初始质心的选取对该算法的运行结果影响非常大。如果选取不当,则可能收敛到一个较差的局部最优点。
朴素的实现经常随机选取质心,相当于逃避了这个问题。使用这种方式时,用户需要多运行几次,根据准则函数选取最佳结果。当数据量很大,往往不够经济。
一种更高效的方法是,将质心的选取也视作准则函数进行迭代式优化的过程。质心先只取一个,然后每多选取一个质心,都需要该质心满足使得准则函数的值下降一个随机比例k。直到质心列表的质心数目达到要求为止。而朴素的实现相当于每次增加质心都是完全随机的,孰优孰劣,一目了然。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值