面向机器学习的自然语言标注3.1 语料库分析中的基本概率知识

语料库分析

既然你已经成功地为自己定义的目标建立了一个语料库,那么接下来的一个重要工作就是探究这个语料库包含了哪些信息。本章的目的是为你介绍一些可用于分析语料库的语言学内容的工具。因此,我们将为你介绍各种可用于在语料库上完成各种统计分析的技术和工具。

为此,我们将从语言学的角度介绍一些统计和概率知识。我们称这个领域为语料库分析(corpus analytics)。具体包括以下内容:

如何计算单词出现的基本频率,分别根据词型和词例(token)。

如何把要分析的数据标准化。

如何测量语料库中单词与短语之间的相关性(即分布)。

了解语料库中所包含的信息能帮助你创建模型来自动识别标签(它们将在下一章创建)。我们将尽可能使用语言学方面的例子引入这些概念。在本章中,我们将使用一个电影评论语料库,它是从IMDb.com(IMDb)上收集的。这个语料库将为我们介绍本章中的概念和方法带来便利。

统计之所以重要有多方面的原因,但最重要的是能给我们以下两种能力:

数据分析

发现数据集合中的潜在性质。

推断统计的重要性

允许我们根据语料库的内容做出判断并获得信息。

本章的确会提供用于分析语料库的统计知识的概要介绍,但不会给出完整的统计或概率教程。如果你想了解更多的相关知识,尤其是语料库语言学方面的知识,我们为你推荐下列书籍和论文:

Probability for Linguists. John Goldsmith. Math. & Sci. hum. / Mathematics and Social Sciences (45e année, no. 180, 2007(4)). http://hum.uchicago.edu/~jagoldsm/Papers/probabilityProofs.pdf

Analyzing Linguistic Data: A Practical Introduction to Statistics using R. R.H. Baayen. Cambridge University Press; 1st edition, 2008.

Statistics for Linguistics with R: A Practical Introduction. Stefan Th. Gries. De Gruyter Mouton; 1st edition, 2010.

3.1 语料库分析中的基本概率知识


首先,让我们来了解几个概率的基本原理。

状态/样本空间

当我们进行一项试验或考虑可以赋予某个属性的可能值(比如将电子邮件标注为垃圾或非垃圾)时,我们所指的就是属性的状态空间,即{垃圾,非垃圾}。同样,掷硬币的可能结果是正面或反面,对应的状态空间为{正面,反面}。

随机变量

这是一个不指向固定值的变量,可以是来自定义域中的任何可能值。例如,上面所提到的状态空间中的值。

概率

来自状态空间的一个具体取值x的概率,用函数P(x)表示。我们说P(x)是“x的概率”,这里x是随机变量X的某个具体取值,x蝀。

概率有两个重要性质:

其取值一定在0~1之间,表示为:

       x:0 ≤ p(x) ≤ 1

所有可能事件的概率之和必须为1:

 

假设你对电影评论感兴趣。也许你的目的是收集语料库并训练一个算法去识别电影题材,例如语料库主要是基于IMDb.com上类似的剧情摘要。为了训练算法来进行文本分类和标注,你需要了解语料库的一些性质。

假设有500个电影的简介,共涉及5种题材,每种题材的电影数量相等,即,

Action(动作):100个文档。

Comedy(喜剧):100个文档。

Drama(戏剧):100个文档。

Sci-fi(科幻):100个文档。

Family(家庭):100个文档。

给定该语料库,我们可以定义随机变量G(题材),上述列表中的题材值构成G的状态空间(样本空间)。这是一个平衡语料库,任意g蜧都有相等的概率。例如,P(Drama)=0.20,P(Action)=0.20等。

注意: 如果你想用Python来查找语料库中的某一个具体变量的概率,你可以很容易地使用列表得到它。如果你有一个存有所有评论的列表以及一个存有喜剧类评论的列表,那么你就可以使用对应列表的长度来计算随机选择某种题材的概率值。假设all是所有评论的文件名列表,comedy是喜剧类评论的文件名列表:

>>> p_com = float(len(comedy))/float(len(all))

由于函数len()返回一个整数,所以为了得到概率,需要把整数转化为浮点数;否则,得到的概率为0。

3.1.1 联合概率分布

我们经常想问的关于语料库的问题不仅仅涉及一个随机变量,而且可能同时涉及多个随机变量。回到IMDb语料库,我们注意到有两种类型的剧情介绍:短的(short)和长的(long)。我们可以在样本空间{short,long}上定义随机变量S(摘要)。如果每种题材有50个短的和长的摘要,那么P(short)=0.5,P(long)=0.5。

现在,我们有两个随机变量:G(题材)和S(摘要)。我们用P(G,S)表示这些变量的联合概率分布(joint probability distribution)。如果G和S是独立变量,则可将P(G,S)定义为:

P(G ?S)=P(G) ?P(S)

假设两个变量彼此独立,则随机选择“短的喜剧类”评论的概率是:

P(comedy ?short)=P(comedy) ?P(short)

        = 0.20?.50

        = 0.10

但是这两个随机变量真的相互独立吗?直觉上,如果一个事件的发生不会改变另一个事件发生的可能性,那么这两个事件是相互独立的。

因此,我们可以假设先把短评论分离出来,然后再从中选择一个喜剧类评论,或者反之。一共有250个短影评,包含5种题材,每种题材有50条评论。或者,喜剧类共涉及100条,其中50条短的,50条长的。这种看问题的方式等同于计算条件概率。这个概率是已知B发生的条件下A发生的概率(读作“给定B后A的概率”),定义如下:

 

这是B发生且A也发生的部分。对于我们的例子,在已知评论为短类型的条件下选择一个喜剧类评论的概率为:

 

很快就可以知道返回值为0.20,这与P(comedy)相等。事实上,独立性意味着,如果G和S是独立的,那么:

  

类似地,因为P(S | G)=P(S),所以P(short | comedy)=P(short),其值为0.50。

请注意,从上式可以推出下面的等价公式,这称为概率的乘法法则(multiplication rule):

 

当需要计算多于两个的随机变量的联合概率分布时,这个等式可以泛化为所谓的链式法则(chain rule):

 

当我们在自己的标注语料库上建立第一个语言模型时,这个法则将变得尤为重要。

上述条件概率的计算方法对于我们将在第7章中介绍的机器学习算法也非常重要。特别地,朴素贝叶斯分类器依赖于语料库的条件概率计算。

注意: 理解语料库中不同属性之间的关系有助于判断数据集的哪些方面应该包含到标注任务中。如果事实表明短评论出现的概率与某一个或多个电影题材有关,那么将这个信息加入标注任务(或者在之后为机器学习算法构造特征集时)将会非常有用。

与此同时,评论的长度与题材之间的关联也可能纯属巧合,或者恰好是因为语料库在某些方面是不平衡的。因此,从联合概率分布的角度审视语料库也能确保语料库更准确地代表你正在使用的数据。

3.1.2 贝叶斯定理

对条件概率的计算做出说明后,我们就能给出一个与之等价的公式,称为贝叶斯定理(Bayes Theorem),如下所述:

 

该定理允许我们在事件之间变换依赖关系的顺序。它将条件概率P(A|B)转换为另外3个概率,后者的估值一般来说更易于获取。当我们想要设计一个机器学习算法来对语料库中的各种实体进行自动分类时,这一点非常重要,而且还能容易地获取与算法中正在使用的不同判断相关联的概率的统计。第7章将再次讨论这个问题。

时间: 2024-08-03 02:52:01

面向机器学习的自然语言标注3.1 语料库分析中的基本概率知识的相关文章

面向机器学习的自然语言标注1.2 语料库语言学简史

1.2 语料库语言学简史 20世纪中叶,语言学实际上主要作为一种描述手段,用来研究语言中的结构属性和语言之间的类型差异.这使得构成语言表达的不同信息成分的描写模型相当复杂.在其他社会科学领域中,收集和分析数据一直来自统计学的计量技术.20世纪40年代,语言学家(如Bloomfield)开始思考语言可以用概率和行为主义术语来解释.经验和统计方法在20世纪50年代开始流行,同时香农(Shannon)的信息论给语言分析提供了可靠的量化方法,可以对语言结构进行量化建模. 不幸的是,语言分析的统计和量化方

面向机器学习的自然语言标注2.4 语料库的规模

2.4 语料库的规模 既然你已经知道想要寻找何种类型的数据以及如何表现它,那么你还需要决定实际需要收集与标注多少数据.如果你计划使用一个已有的语料库,那么语料库的总规模已经确定,但是你可能仍然需要决定对语料库的多少内容进行标注. 一般而言,无论标注目标是什么,收集与标注的数据越多,就离达成目标越近.然而,在多数情况下,在讨论语言标注任务时"越大越好"并不是切实可行的--时间.金钱.有限的资源以及精力都可能是限制你和你的标注人员能完成标注规模的因素. 注意: 如果这是你收集数据工作的第一

面向机器学习的自然语言标注.

面向机器学习的自然语言标注 James Pustejovsky & Amber Stubbs 著 邱立坤 金澎 王萌 译 图书在版编目(CIP)数据 面向机器学习的自然语言标注 / (美) 詹姆斯·普斯特若夫斯基(James Pustejovsky),安伯·斯塔布斯(Amber Stubbs)著:邱立坤,金澎,王萌译. -北京:机械工业出版社, 2017.1 (O'Reilly精品图书系列) 书名原文:Natural Language Annotation for Machine Learnin

面向机器学习的自然语言标注导读

前言 本书的读者是那些使用计算机来处理自然语言的人.自然语言是指人类所说的任何一种语言,可以是当代语言(如英语.汉语.西班牙语),也可以指过去曾经使用过的语言(如拉丁语.古希腊语.梵语).标注(annotation)是一个过程,它通过向文本中加入元数据来增强计算机执行自然语言处理(Natural Language Processing, NLP)的能力.特别地,我们考察如何通过标注将信息加入自然语言文本中以便改善机器学习(Machine Learning,ML)算法(一组设计好的计算机程序,它从

面向机器学习的自然语言标注1.1 语言标注的重要性

基础知识 人们几乎每天都会教计算机去解决一些新的激动人心的问题,这些问题包括如何在国际象棋比赛或"危险边缘"节目译注1中取胜,以及驾驶车辆时的最短路径选择.但仍有大量的问题是计算机不能完成的,特别是在理解人类语言方面.已经证明统计方法是解决这一问题的有效途径,但当可以为机器学习(Machine Learning, ML)算法提供关于数据集所包含信息的数据线索提示而不仅仅是数量巨大的数据时,ML通常可以产生更好的效果.讨论自然语言时,这些提示通常以标注的形式呈现--提供关于文本额外信息的

面向机器学习的自然语言标注1.4 标注开发循环

1.4 标注开发循环 对具体语言学现象进行编码的特征必须足够丰富,以便捕获训练算法中的预期行为.这些语言学描述通常来自对语言现象的理论建模.这些描述反过来形成了具体语言标注的基础,其自身可以作为特征用于训练和测试文本识别或标注算法的开发循环中.最后,基于对系统性能的分析和评价,语言现象的模型可能需要修改,进而可以重新训练和测试. 我们把这个开发循环称为MATTER方法,如图1-10所示(Pustejovsky 2006).   图1-10: MATTER循环 建模 结构化描述提供了有理论依据的属

面向机器学习的自然语言标注1.3 语言数据和机器学习

1.3 语言数据和机器学习 我们已经介绍了语言标注方法及其语言数据标注格式的例子,接下来将描述基于这些标注语料库的计算框架,即机器学习.机器学习是人工智能的一个分支,研究如何根据经验和已有数据学习和改善性能的算法.它们学习(或生成)一个函数,将具体的输入数据映射为想要的输出.就我们的目标而言,机器学习算法处理的"数据"是自然语言,最常见的格式是文本,更典型的是标注突显具体特征的标签,这些特征与学习任务相关.正如我们将要看到的,前面所讨论的标注为机器学习流程(训练阶段)提供了丰富的输入数

面向机器学习的自然语言标注3.3 语言模型

3.3 语言模型 n元语法的好处是什么呢?多年来自然语言处理已经利用n元语法开发了预测序列行为的统计语言模型(language model).序列行为涉及在包含多个X的序列中识别下一个X.例如,语音识别.机器翻译等.在给定前一个元素的前提下语言模型预测序列中的下一个元素. 让我们更仔细地看看它是如何工作的,以及如何使用前几章讨论的工具.假设有一个单词序列,w1,w2,?wn.预测序列中的任意"下一个单词"wi可以表示为下面的概率函数:   等价于:   请注意,这里涉及两个联合概率分布

面向机器学习的自然语言标注2.1 定义目标

确定目标与选择数据 对标注目标进行清晰的定义对于任何一个以应用于机器学习为目的的工程来说都是至关重要的.在设计标签集.撰写指南.与标注人员一起工作以及训练算法时,很容易因为细节而迷失方向以至于忘记最终想要实现的目标是什么.有一个清晰的目标用于引导方向有助于标注工作,本章将讨论为目标创建一个好的定义需要做些什么,以及目标会以怎样的方式影响数据集.具体地,我们将考察: 好的标注目标是什么  哪里可以找到相关研究 数据集如何反映标注目标 为标注人员准备数据 应该为标注人员准备多少数据 本章中你需要对以