《Text Mining and Analytics》学习笔记——第四周

文本聚类

文本聚类是主挖掘的一个重要的工具,我们会讨论一下的问题?

  • 1.什么是文本聚类
  • 2.为什么要用文本聚类?
  • 3.怎么怎样进行文本聚类?
    • 生成概率模型
    • 其它方法
  • 怎样评估聚类效果

Q1:什么是文本聚类?

聚类是为了发现数据的内在结构,如果结构相同(或两个对象相似)则会被聚为一类。

聚类的结果取决你如何定义“相似”这个事情,例如“马”和“车”,它们相似吗?从物理结构上来看,当然是不相似的,但从功能的角度来看,它们又是相似的。所以根据不同的判断角度会得到不同的聚类结果。

这也就要求用户在使用聚类的时候必须要选定一个角度,在评估聚类结果的时候也必须考虑所选定的是哪一个角度。

文本聚类可以将文档作为聚类的单位,也可以将术语(term)作为聚类的单位,将术语作为聚类单位可以用来发现和定义文档的概念,主题等。在面对大量网页文档等情况时,我们会将文档作为聚类单位。

Q2:为什么使用文档聚类?

因为文档聚类对文本挖掘有非常大的作用。很多时候你得到大量文本数据,在以下的操作中文档聚类将发挥它的作用

  1. 如果你希望大致了解这些文本包含了什么内容(例如你可能想知道主要的话题或者在这些文本中典型的有代表性的文档是哪些 )聚类可以帮助我们实现这些目标

  2. 希望把相似的文本对象关联起来,例如,某些文本对象可能是冗余的内容 ,文本聚类就能帮助我们消除冗余 。

  3. 有时候文本可能与同一个话题有关 通过关联这些文本 可以比较全面地了解这个话题 ,也能用文本聚类将文本数据结构化 ,有时还能建立结构的层次关系 而这对博客尤其有用 。

  4. 将搜索结果聚类 。这样用户就可以看到查询结果的大致结构 ,当查询条件比较模糊时 ,聚类会非常有用 ,因为它们会呈现模糊词汇的不同意义

  5. 通过用户的邮件了解他们的主要诉求, 我们对邮件进行聚类 然后找到主要的一类 ,从这一类中我们就能知道用户的主要诉求了

Q3:文本聚类应该怎么做?

有两个方法:
1.使用生成概率模型
2.其它基于相似度的方法

方法1:使用生成概率模型

首先看一下基于主题概率模型的聚类方法
聚类——主题概率模型
由上图我们可以看出这与之前讲的主题概率模型非常的类似,不同的地方在于,在这个聚类的的模型中,我们只允许一个文档100%的属于一个主题,这个文档关于其它主题的覆盖率都为0。

也就是说现在我们用Ci来表示第i个分类,每个文档只属于【1,k】个主题中的其中一个,如果有k个主题和N个文档,在k< N的时候,有些文档必须是属于一个主题的(即共享一个主题),这也就达到了聚类的目的。

对于混合模型而言
混合模型

上述混合模型包含了两个主题,我们之前所讲生成的方法生成一个单词w的方法是从每个主题中选择单词w的概率之和加起来,然后再根据选择出来的单词生成文档,下面是主题模型的生成的似然函数
混合模型似然函数

但上述方法用在混合模型中就不行了,因为我们的文档只能覆盖一个主题,不能由其它主题的参与,所以选择单词w必须是从一个主题分布中产生的。
聚类——混合模型似然函数

可以很容易看出聚类时生成文档与单纯的混合模型时的区别。(注:聚类中将认为用每个主题单独生成文档)

Q3.1:如何将上述的两个主题的模型推广到有k个主题的模型呢?
A3.1:我们需要文档聚类混合模型的一般表示

一般表示:
数据:文本集合C={d1,d2···,dN}
模型:k个主题,概率(由哪个主题生成该文本)
似然函数:
似然函数
注意:我们是从一个分布中选择单词。
由哪个主题生成该文本,即概率p不依赖文档d

最大似然法评估:
求使得似然函数最大的参数

文档d应该属于哪个主题,即Cd应该怎么算呢?
文档应该属于哪个主题

第一种方法适用于生成模型中的计算,第二种方法常用于大的聚类中的计算。

Q3.2:如何计算似然函数的值?
A3.2:常用EM算法来计算最大似然值

让我们来看一个实例:
模型:
我们有两个主题,说明这是一个只有两个类的聚类任务
初始化参数——模型参数+由哪个模型来生成数据的概率
我们的数据:
我们的数据——包含四个单词

E-step:
该文档属于第一类的概率有多大呢?
文档属于第一类的概率
注:属于第2类的概率直接用1减去属于第一类的概率
但是这种计算方法存在下溢(underflow)的问题,看看上述公式计算的分子和分布,如果单词出现的次数多而概率有小的话,计算出来的将是一个非常小的值,可能就会导致下溢(underflow)的问题。

为了解决这个问题,我们需要使用一个标准化,
标准化后的计算

首先求得一个平均的概率,然后将它加入到似然函数的计算中。

从E-Step我们可以看到我们估计哪个分布更可能生成文档d

M-step:

从E-step中,我们知道了p(Z=1|d)
现在M-step要更新主题概率(词分布)和属于哪个主题生成的概率
M-step
我们有三个文档,也有从E-step中得到的p(Z=1|d),上图中有详细的更细步骤。

方法2:基于相似度的方法

基于相似度的方法的基本思路:

  • 设计一个衡量相似度的函数
  • 让一个类中的相似度最大,类之间的相似度最小
  • 分类策略:
    • 分层聚类(包括从下网络和从上往下的搭建)
    • 先随机聚类,然后不断优化(K-means)

这里讲介绍两种分类方法:一个是基于分层聚类的HAC,还有一个是K-means。

HAC:

我们给出了一个相似度函数来衡量两个对象之间的相似度。 然后我们可以逐渐将相似的物体以自下而上的方式组合在一起 形成越来越大的群体。

他们总是形成一个层次结构 那么当一些停止标准被满足时,我们可以停止。

HAC
如上图,我们从第一条线切开就分了两个类,从第二条线切开就分了四个类

下图展示了组之间相似度的计算策略,分别是单连接,全连接,均值连接
三类聚类的策略

单连接:两个组织之间分别有一个人相互认识,则认为两个组织之间有关系,对异常值敏感

全连接:两个组织之间哪些太可能互相交谈的人会感到舒适且相互交流,对异常值敏感

均值连接:介于单连接和全连接之间,就是说两个组织之间差不多联系密切认为两个组织之间有关系,对异常值会变得不敏感

在实践中哪一个是最好的,这将取决于应用程序

K-means聚类

简单介绍一下算法的思想

  • 把每个问对对象表示为一个词向量,设一个两个对象之间的相似度函数

  • 开始的时候随机选择k个类别, 选定的向量作为k个簇的质心,把它们当作中心(初始化)

  • 测量这个向量与k个中心之间的距离,哪个最近则属于哪一类(类似E-step——区别:K-means无概率分配)

  • 重新调整k个中心(类似M-step——也有一定不同,主要还是E-step的差异导致)

  • 重复直至收敛

Q4:到底哪个聚类模型好呢?

上面介绍了那么多的聚类模型,我们需要评估他们的性能来比较到底哪个模型好?

聚类
正如上图展示一样,在不知道是以形状还是大小聚类的情况下很难说那种聚类的效果好,所以必须在聚类前定义一个期望。

1.直接评估法:
用“接近程度”衡量分类的好坏

评估过程
给一个测试集,测试集上有已经聚好类的标准结果,用我们的模型聚类出一个结果,和标准结果对比,量化两个结果间的相似度(可以用F检验)

2.间接评估法:
用“有用程度”衡量分类的好坏

评估过程
给一个测试集,用我们的模型聚类出一个结果,选择一个基本的聚类结果和我们聚类出来的结果进行对比,比较两个效果的好坏,之所以称之为聚类的间接评估 ,因为没有详细的聚类质量的测试 ,反而是评估某特定应用的聚类的贡献 。

文本分类

文本挖掘与主题挖掘相关,且它也关系到情感分析等

Q1:什么是文本分类?

文本分类的任务
上图展示了文本分类的基本任务,训练一个分类系统,来识别未分类的对象所属的分类

  • 文本对象是多样化的(可以是文章,段落,或者是文章的集合)
  • 分类也是多样化的:

    • 内在分类:文本属性的分类,例如主题,情感的分类
    • 外在分类:文章所属作者的分类等
  • 文本分类的应用

    • 新闻的分类,论文的分类
    • 垃圾邮件检测
    • 文章所表达的情感分类
    • 作者信息

分类本身也有很多种,比如二分类,k分类,层次分类,连接分类等,但二分类是最基础的。

Q2:为什么要是用文本分类

  • 增加文本的表达能力(是文本更容易理解)
    文本可以被关键词和类别表达,使人们更容易理解
    文章情感的分类可以直接说明用户反馈情况
  • 推断文本属性
    如基于政治演说 ,对某一政治家的政党所属进行预测

Q3:怎么样来进行文本分类?

分类器
主要分为两种算法:

一种是生成式的分类器——看哪些数据应该分为一个类别;试图了解每个类别中的数据。模拟数据的联合分布标签x和y。使用贝叶斯规则来分配标签。只能间接地捕捉训练错误(损失函数),特征:(非)线性

另一种是判别分类器(discriminative)——看是那些特征区分了不同的类别,试图了解每个类别的特征。直接给出数据点的标签的条件概率,目标函数往往直接衡量训练集中分类的错误。包括逻辑回归,支持向量机和k最近邻

生成式的分类器—-看哪些数据应该分为一个类别

Q3.1:怎么知道文档属于哪个类别呢?

分类方法——文档属于某个类别的概率

可以看出使用了朴素贝叶斯分类的方法,我们假设theta i 就可以代表类别 i 。
贝叶斯分类器
上述公式转化了一种写法,在不改变分类的情况下还可以保持精度,我们经常用上式计算分类的得分,所以被称为朴素贝叶斯分类器。

Q3.2:怎么用训练样本评估theta i 和P(w|theta i )

评估theta i 和P(w|theta i )
已知一些训练集和对应的分类(标签),估计theta i 和P(w|theta i )
的方法如下图所示。

评估方法

在评估时,为了防止有0样本的出现,或是为了加入先验概率,或是为了加入权重区分样本,我们往往需要平滑化。

平滑化后的函数

Q3.3:朴素贝叶斯分类器怎么计算得分呢?

下面是朴素贝叶斯的分类器评分函数,假设我们有两个类,如果比率是更大的, 那么它意味着它更有可能在第一类。因此, 越大的分数是更有可能的文件在第一类。
评分函数

通过适当的权重设置, 我们可以期望这样的评分函数能够很好地对文档进行分类, 就像在朴素贝叶斯的情况下一样。我们可以清楚地看到朴素贝叶斯分类器作为这个通用分类的特例。实际上, 这个一般形式是非常接近的分类器称为逻辑回归, 这实际上是一种条件的方法或歧视的分类方法。
逻辑回归

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值