《NLP汉语自然语言处理原理与实践》第四章 NLP中的概率图模型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/love_data_scientist/article/details/77982055

目前最流行的算法思想包含如下两大流派:基于概率论和图论的概率图模型;基于人工神经网络的深度学习理论。


4.1概率论回归

 4.1.1 多元概率论的几个基本概念

 4.1.2  贝叶斯与朴素贝叶斯算法

      朴素贝叶斯理论源于随机变量的独立性,之所以称之为朴素是因为其思想基础的简单性:就文本分类而言,从朴素贝叶斯的角度来看,句子中的两两词之间的关系是相互独立的,即一个对象的特征向量中每个维度都是相互独立的。这是朴素贝叶斯理论的思想基础。

     朴素贝叶斯分类流程:

     第一阶段,训练数据生成训练样本集:TF-IDF

     第二阶段,对每个类别计算p(yi)

     第三阶段,对每个特征属性计算所有划分的条件概率

     第四阶段,对每个类别计算p(x|yi)p(yi)

     第五阶段,以p(x|yi)p(yi)的最大项作为x的所属类别。

 

 4.1.3  文本分类

    1.One-Hot表达

     文本分类的结构化方法是One-Hot表达模型。它是最直观,也是目前为止最常用的词表示方法,虽然越来越多的实践已经证明,这种模型存在局限性,但它仍在文本分类中得到广泛的应用。

     假设把语料库中的所有词都收集为一个词典D,词典容纳了语料库中所有句子的词汇。One-Hot方法就是把每个词表示为一个长长的向量。这个向量的维度是词典大小,其中绝大多数元素是0,只有一个维度的值为1.这个维度就代表了当前的词。

   例如:

文本1: My dog ate my homework

文本2: My cat ate the sandwich 

文本3: A dolphin ate the homework

这三个文本生成的词典共有9个词,[a, ate, cat, dolphin, dog, homework, my, sandwich, the]

这“a” -> [1,0,0,0,0,0,0,0,0]

文本1为 [0,1,0,0,1,1,1,0,0]

文本2为 [0,1,1,0,0,0,1,1,1]

文本3为[1,1,0,1,0,1,0,0,1]



     One-Hot的特点是相互独立地表示语料中的每个词。词与词在句子中的相关性被忽略了,这正符合朴素贝叶斯对文本的假设。


    2.权重策略: TF-IDF方法

    由One-Hot向量形式构成的句子就是一个词袋模型,它将文本中的词和模式串转换为数字,而整个文本集也都转化为维度相等的词向量矩阵。

    

文本1为 [0,1,0,0,1,1,1,0,0]  尽管有两个my,但二元向量表示中仍然是1

文本2为 [0,1,1,0,0,0,1,1,1]

文本3为[1,1,0,1,0,1,0,0,1]

    这种方式的问题忽略了一个句子中出现多个相同的词频信息,增加这些词频信息,就变成了整数计数方式。使用整形计数方式的词向量表示如下:

    文本1:   [0, 1, 0, 0, 1, 1, 2, 0, 0]   (my出现两次)

    文本2: [0, 1, 1, 0, 0,  0, 1, 1, 1]

    文本3: [1, 1, 0, 1, 0, 1, 0, 0, 1]

    对整形计数方式进行归一化。归一化可以避免句子长度不一致问题,便于算法计算,而且对于基于概率算法,词频信息就变为了概率分布。这就是文档TF信息,即:

    文本1: [0, 1/5, 0, 0, 1/5, 1/5, 2/5, 0, 0]

    文本2: [0, 1/5, 1/5, 0, 0,  0, 1/5, 1/5, 1/5]

    文本3:    [1/5, 1/5, 0, 1/5, 0, 1/5, 0, 0, 1/5]


   但是这里还有一个问题,如果体现生成的词袋中的词频信息呢?

   原信息:a(1),ate(3),cat(1),dolphin(1),dog(1),homework(2),my(3),sandwich(1),the(2)

   注意:由于词袋收集了所有文档的词,这些词的词频是针对所有文档的词频,因此,词袋的统计基数是文档。

   词条的文档频率:a(1/3),ate(3/3),cat(1/3),dolphin(1/3),dog(1/3),homework(2/3),my(3/3),sandwich(1/3),the(2/3)

   词袋模型的IDF的权重如下:

   IDF: a  log(3/1),ate  log(3/3), cat  log(3/1),dolphin   log(3/1), dog log(3/1),homework log(3/2),my log(3/2),

sandwich log(3/1),the  log(3/2)

   

    TF-IDF权重策略:计算文本的权重向量,应该选择一个有效的权重方案。最流行的方案是对TF-IDF权重的方法。TF-IDF的含义是词频-逆文档频率,其含义是如果某个词或短语在一篇文章中出现的品类TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF的假设是,高频率词应该具有高权重,除非它也是高文档频率。逆文档品类就是使用词条的频率来抵消该词的词频对权重的影响,而得到一个较低的权重。

   

     词频(Term Frequency, TF)是指一个给定的词语在该文件中出现的频率。这个数字是对词数(Term Count)的归一化,以防止它偏向长的文件。对于在某一特定文件中的词语来说,它的重要性可表示为:

   TFij = nij/(Σ(k) nkj)

    上式中分子是该词在文件中的出现次数,而分母是在文件中所有字词的出现次数之和。


     逆向文件频率(Inverse Document Frequency, IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件除以包含该词语之文件的数目,再将得到的商取对数得到:

    IDFi = log(|D|/|{j:ti∈dj}|)

    为了防止分母为0的情况发生,一般使用1+|{d∈D:t∈d}|作为分母;然后再计算TF和IDF的乘积。

    某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,TFIDF(ij)=TF(ij)I * IDF(ij)可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。 


  TF-IDF的应用(参考http://www.cnblogs.com/chenny7/p/4002368.html):

   

      找出相似文章

  • 使用TF-IDF算法,找出两篇文章的关键词;
  • 每篇文章各取出若干个关键词(比如20个),合并成一个集合,计算每篇文章对于这个集合中的词的词频(为了避免文章长度的差异,可以使用相对词频);
  • 生成两篇文章各自的词频向量;
  • 计算两个向量的余弦相似度,值越大就表示越相似。


   自动提取关键词

  比如我们要想提取一篇新闻的关键词,先要对该新闻进行分词,然后根据TF-IDF计算每个单词的权重,并将权重最大的N个单词作为此新闻的关键词。

   搜索引擎

   在搜索引擎中,通常使用TF-IDF模型计算查询串q(由关键词w1、w2、... wk组成)和文档d之间的匹配度:
  TF-IDF(q, d) = sum{i=1,2,...k | TF(wi, d)* IDF(wi)}}
  可见,如果关键词wi在一篇文档中出现的频率很高,同时在其他文档中很少出现,则该词具有很好的区分能力;

   

  自动摘要

  

4.2 信息熵

    如果说概率是对事件确定性的度量,那么信息(包括信息量和信息熵)就是对事物不确定性的度量。
 4.2.1  信息量和信息熵
     信息量在数学上表示为I(X) = -logP(X)
     信息则被定义为对平均不确定性的度量。一个离散随机变量X的信息熵H(X)定义为:
   H(X) = - ΣP(X)logP(X)
  其中,约定0log(1/0)=0,对数若以2为底,则熵的单位为比特;若以e为底,则其单位为奈特。
(1)信息熵的本质是信息量的期望。
(2)信息熵是对随机变量不确定性的度量。随机变量X的熵越大,说明它的不确定性也越大。若随机变量退化为定值,则熵为0.
(3)平均分布是“最不确定”的分布。
熵的性质
(1)H(X)>=0
(2)H(X)<=log|X|,等号成立的条件,当且仅当X的所有取值x有P(X=x)=1/|X|。

4.2.2  互信息、联合熵、条件熵
1.互信息
互信息定义:I(Y;X)=H(X) - H(X|Y) = H(Y) - H(Y|X)=Σ(X,Y)P(X,Y)log{P(X,Y)/[P(X)P(Y)]}
互信息的性质如下:
(1)互信息可以理解为,收信者收到信息X后,对信源Y的不确定性的消除。

(3)互信息是对称的。

信息增益  g(D,A) = H(D) - H(D|A)  《统计学方法》 李航
互信息和信息增益公式一样

2.联合熵
联合熵是借助联合概率分布对熵的自然推广,两个离散随机变量X和Y的联合熵定义为H(X,Y)=-Σ(X,Y)P(X,Y)logP(X,Y)

3.条件熵
条件熵是利用条件概率分布对熵的一个延伸。随机变量X的熵是用它的概率分布P(X)来定义的。如果知道另一个随机变量Y的取值为y,那么X的后验概率分布即为P(X|Y=y)。利用条件分布可以定义给定Y=y时X的条件熵为
H(X|Y=y)= - Σ(X)P(X|Y=y)logP(X|Y=y)
熵H(X)度量的是随机变量X的不确定性,条件熵H(X|Y=y)度量的则是已知Y=y后,X的不确定性。
熵的链式规则:
H(X,Y)=H(X) +H(Y|X) =H(Y)+H(X|Y)
I(X;Y)+H(X,Y)=H(X)+H(Y)

边缘独立定理:从信息论角度为“边缘独立”这一概念提供了一个直观解释,即两个随机变量相互独立当且仅当它们之间的互信息为0.

考虑三个变量:
I(X;Y|Z) = H(X|Z) - H(X|Y,Z) 表示给定Z时X和Y之间的条件互信息

定理4-1:对于任意3个离散随机变量X、Y和Z,有
(1)I(X,Y|Z)>0
(2)H(X|Y,Z) <=H(X|Z)
给定Z,两个随机变量X和Y相互独立,当且仅当它们的条件互信息为0.


4.2.3 交叉熵和KL散度
1.交叉熵
H(P;Q)=-ΣPp(Z)logPq(Z)
(1)交叉熵常用来衡量两个概率分布的差异性。
(2)在Logistic中的交叉熵为其代价函数
2.相对熵与变量独立
相对熵定义:对定义于随机变量X的状态空间上的两个概率分布P(X)和Q(X),可以用相对熵来衡量它们之间的差异,既有:
KL(P,Q)=Σ(X) P(X)log {P(X)/Q(X)}
其中,约定0log(0/q)=0;plog(p/0)=oo(无穷),对应任意p>0.KL(P,Q)又称P(X)和Q(X)之间的KL散度。但严格来讲它不是一个真正意义上的距离,因为KL(P,Q)!=KL(Q,P)。
定理4-2:设P(X)和Q(X)为定义在某个变量X的状态空间上的两个概率分布,则有:
KL(P,Q)>=0,
其中,当且仅当P与Q相同,即P(X=x)=Q(X=x),等号成立

推论:对应满足Σf(X)>0的非负函数f(X),定义概率分布P*(X)为:
P*(X)=f(X)/Σf(X)
那么,对于任意其他的概率分布P(X),则有:
Σf(X)logP*(X) >= Σf(X)logP(X)
其中,当且仅当P*和P相同时等号成立。
    

猜你喜欢

转载自blog.csdn.net/love_data_scientist/article/details/77982055
今日推荐