Natural Language Process Lesson


自然语言处理概论

  • 参考书

    • Speech and Language Processing, Jurafsky, D. and Martin, 2nd Edition, J.H., Prentice Hall, 2008
    • Neural Network Methods for Natural Language Processing. Y. oav, Goldberg. M&C publisher, 2017
  • 相关学术期刊和会议

    • Computational Linguistics (ACL)
    • Transactions of the Association for Computational Linguistics (ACL)
    • 中文信息学报 (中文信息学会)
    • 计算机学报、软件学报
    • Annual Meeting of the Association for Computational Linguistics (ACL年会)
    • Conference on Empirical methods in natural language processing(EMNLP)
    • International Conference on Computational Linguistics (COLING)
    • 全国计算语言学联合学术会议(CCL) (中文信息学会)
    • 自然语言处理与中文计算会议(NLPCC ) (计算机学会)

自然语言处理概要

  • 人类语言能力
    • 理解语言:“听”与“读”
    • 生成语言:“说”与“写”
    • 利用语言实现交际意图
  • 可否让计算机具有人类的语言能力?
    • 计算机理解自然语言
    • 计算机生成自然语言
    • 计算机和人类用自然语言交流 并实现相应的交际意图

自然语言处理

  • 通过建立形式化计算模型来分析、理解和生成自然语 言的学科
  • 终极目标: 让计算机拥有自然语言交际能力

  • 两大问题

    • 自然语言理解(Natural Language Understanding, NLU)
    • 自然语言生成(Natural Language Generation, NLG)
  • 交叉学科

    • 计算机科学 (自然语言处理的研究工具)
    • 语言学 (自然语言是处理对象)
    • 数学 (自然语言处理的建模工具)

语言处理的机器模型

  • 分而治之?
    • 分层进行、层层递进
    • 词法分析、句法分析、语义分析、语用分析
  • 逐步把“理解”推向深入

词法分析

  • 汉语分词(Chinese word segmentation)
    • 汉语中词和词之间没有空格;识别出句子中的词。
    • 字符序列 ⇒ 词的序列

词法分析

  • 词类标注(Part-of-speech tagging, POS tagging)

  • 命名实体识别(Named Entity Recognition, NER)

句法分析

  • 句法分析(syntactic parsing)

    • 分析句子,得到句子的句法结构
    • 通常是树结构
  • 词组成短语、短语组成句子

语义分析

  • 词义标注(Word Sense Tagging)

  • 语义角色标记(Semantic Role Labeling, SRL)
    • 识别谓词论元及其充当的角色
    • 部分句义分析、浅层句义分析

自然语言处理的基本方法

NLP的基本方法

  • 基于规则的方法
    • 也叫符号主义、理性主义方法
    • 专家以规则的形式注入知识
  • 基于统计的方法
    • 也叫机器学习方法、经验主义方法
    • 机器从语言样本中自动学习知识

基于规则的方法

基于统计的方法

  • 词袋模型
    • 语言就像掷骰子
    • 多项分布
  • 马尔科夫过程
    • 句子是随机过程的产物
  • 隐马尔科夫过程

理解:

  • All models are wrong. (George Box, 1978)
    • 模型只是现实世界的简化
  • 需要大量的语言样本
    • 样本的代表性
    • 标注代价高昂
  • 数据稀疏问题
    • 长尾效应

自然语言处理的挑战性

无处不在的歧义(Ambiguity)

  • 歧义:对同一个语言形式有不止一种解读

  • 结构歧义

海量的知识需求

  • 语言知识(linguistic knowledge)
    • 词法、句法、语法、语义、语用……
  • 领域知识(domain knowledge)
    • 物理、化学、生物、计算机….
  • 世界知识(world knowledge)
    • 妈妈是女的、爸爸是男的
    • 父母的年龄比子女的年龄大
  • 知识表示、知识获取、知识库构建及维护存在 巨大挑战

挑战

  • 不存在完备的规则
    • 理性主义建模方法的困境
  • 数据稀疏问题
    • 经验主义建模方法的困境

自然语言处理的应用领域

  • 机器翻译
  • 自动问答
  • 自动摘要
  • 信息提取
  • 自动写作
  • 情感分析
  • 文本分类
  • 垃圾邮件过滤
  • 汉字输入技术
  • 术语提取

自然语言处理发展简史

机器学习和自然语言处理

任务及思路:判别垃圾邮件

  • 特征提取

  • 模型设计

  • 损失函数

  • 梯度下降

机器学习总结

独立同分布假设(i.i.d. assumption)

  • 根据已标注邮件学习模型
  • 模型能否用于过滤未来的邮件?
  • 未来的邮件应和已标注的邮件具有相同的统计规律

模型推广能力(model generalization)

  • 如何衡量模型处理未来数据的性能?
  • 把标注数据分成两个部分
    • 训练集(training set):训练模型
    • 测试集(test set):衡量模型的效果
  • 测试集上错误率表征模型的推广能力(generalization ability)

=

  • 过拟合(overfitting):低训练集错误率、高测试集错误率
  • 理想状态
    • 低训练集错误率
    • 低测试集错误率 (或者 较小的训练集与测试集错误率差异)
  • 不能单纯基于训练集损失最小求解模型
  • 训练时,监控模型在测试集上的错误率?
  • 选择测试集上错误率较小的模型?
    • 测试集代表未来数据
    • 基于测试集选择模型参数,扭曲模型推广能力评价

开发集(development set)和早停止(early stop)

模型容量(capacity)

过拟合、欠拟合和容量

  • 模型容量过小,欠拟合现象
    • 高训练集错误率、高测试集错误率
  • 模型容量过大,过拟合现象
    • 更容易学到训练集的特质
    • 低训练集错误率、高测试集错误率

奥卡姆剃刀(Occam’s razor)原则

  • 吝啬原则(law of parsimony)
    • 如无必要,勿增实体
    • 如果你有两个原理,它们都能解释观测到的事实, 那么你应该使用简单的那个(让事情保持简单)
  • 如果有两个模型,都可以同样好地解释观察数据 (训练集),我们应该优先选择简单的模型。

正则化(regularization)

模型越复杂,越容易出现过拟合现象

  • 正则化——控制模型复杂度
  • 求解参数,尽量让损失最小
  • 求解参数,尽量让模型简单

损失函数(Loss)

  • 铰链损失(hinge loss)

  • 交叉熵损失(cross entropy loss)

梯度下降(gradient descent)

随机梯度下降(stochastic gradient descent)

关于任务

  • 分类任务(classification)
  • 序列标注任务(sequence labeling)
  • 结构预测任务(structured prediction)
  • 序列转写任务(sequence transduction

分类任务(Classification)

序列标注任务(Sequence Labeling)

结构预测任务(Structure Prediction)

序列转写任务(sequence transduction)

没有免费的午餐(No free lunch theorem)

n元模型

语言建模(Language Modeling)

𝑛元模型

𝑛的选择

  • 𝑛 较大时
    • 提供了更多的语境信息,语境更具区别性
    • 参数个数多、计算代价大、训练语料需要多、 参数估计不可靠。
  • 𝑛 较小时
    • 语境信息少,不具区别性
    • 但是,参数个数少、计算代价小、训练语料 无需太多、参数估计可靠。

马尔可夫模型

如何建立𝑛元模型

相对频率法

最大似然估计

计算句子的概率

数据稀疏(Data Sparseness)

Zipf 定律

  • 语言中只有很少的常用词
  • 语言中大部分词都是低频词
  • 词的分布是长尾分布,𝑛元组分布亦是如此
  • 大多数词( 𝑛元组)在语料中的出现是稀疏的
  • 语料库可以提供少量常用词( 𝑛元组)的可靠样本
  • 语料库规模扩大,主要是高频词词例的增加
  • 扩大语料规模不能从根本上解决稀疏问题

由于数据稀疏,MLE估计值不是理想的参数估计值

解决办法: 平滑(smoothing)

  • 把在训练样本中出现过的事件的概率适当减小
  • 把减小得到的概率质量分配给训练语料中没有出现过的事件
  • 这个过程有时也称作减值(discounting)法

加法平滑

  • 训练语料中未出现的𝑛元组的概率不再为0,而 是一个大于0的较小的概率值。
  • 但由于训练语料中未出现𝑛元组数量太多,平滑 后,所有未出现的𝑛元组占据了整个概率分布中 的一个很大的比例。因此,在NLP中,加1平滑 给训练语料中没有出现过的𝑛元组分配了太多的 概率空间。

加𝛿平滑

组合平滑方法

绝对减值法

Kneser–Ney平滑

熵(Entropy)

联合熵和条件熵

相对熵

交叉熵

语言模型的评价—交叉熵

困惑度(perplexity)

隐马尔科夫模型

  • 隐马尔科夫模型(Hidden Markov Model, HMM)
  • 马尔科夫模型的一种扩充
  • 在自然语言处理领域应用广泛:词类自动标注

马尔科夫模型

隐马尔科夫模型

隐马尔可夫过程是一个双重随机过程,其中一重随机过程 不能直接观察到,通过状态转移概率矩阵描述。另一重随 机过程输出可以观察到的观察符号,由输出概率矩阵定义。

隐马尔可夫模型和自然语言

隐马尔科夫模型是生成模型

抛掷硬币

隐马尔科夫模型的三个问题

问题1: 估算观察序列概率

向前算法(Forward Algorithm)

向后算法(Backward Algorithm)

问题2:求解最佳状态转换序列

隐马尔可夫模型的第二个问题: 计算能最好解释观察序列的状态转换序列。

韦特比算法(Viterbi Algorithm)

问题3:参数学习

有指导的参数学习(supervised learning)

无指导的参数学习(unsupervised learning)

直观的想法

隐马尔科夫模型的实现

词类自动标注

词的分类依据

英语中词的分类

  • 英语词类:

    • preposition:介词
    • determiner:限定词
    • pronoun:代词
    • conjunction:连词
    • nouns
    • verbs
    • adjectives
    • adverbs
    • numeral:数词
    • interjection:叹词
  • closed class and open class

    • Closed classes are those that have relative fixed membership, in which new words are rarely coined.
  • function word and content word

  • 词类的子类

汉语中词的分类

汉语分类标准:分布标准

  • 汉语中词的分类依据

    • 缺乏形态,形态特征不能用作分类依据。
    • 汉语中划分词类也不用意义作为分类依据。 概念相近的词,语法性质未必相同,例:战争(名词)、战斗(动词)
    • 词的分布特征,或者说词的语法功能
  • 词的语法功能:词在句法结构里所能占据的语法位置

    • 词在句法结构中充当句法成分的能力
    • 词与某类词或某些词组合成短语的能力
  • 虽然不能根据意义对词进行分类,但按照分布特征同属一 类的词,意义上也常有共性。

    • 名词通常表示事物的名称、动词通常表示动作和行为、形容词表示 事物的性质和状态
  • 实词和虚词

    • 从功能上看,实词可以充当主语、谓语和宾语。虚 词则不可以。
    • 从意义上看,实词有实在的意义,表示事物、动作、 行为、变化、性质、状态、处所、时间等。虚词基 本只起语法作用,本身多无实在意义。
    • 从数量上看,实词多为开放类,虚词多为封闭类。
  • 体词和谓词

    • 实词通常可进一步分成体词和谓词。体词可以做主 语和宾语。谓词主要做谓语。
  • 体词

    • 名词(1)、处所词(2)、方位词(3)、时间词(4)、 区别词(5)、数词(6)、量词(7)、代词(8)
  • 谓词

    • 动词(9)、形容词(10)
  • 虚词

    • 副词(11)、介词(12)、连词(13)、助词(14)、语气词(15)
  • 拟声词(16)、感叹词(17)

  • 为什么说一个词是形容词?

兼类问题

如果同一个词具有不同词类的语法功能,则认为这个 词兼属不同的词类,简称兼类。

英语词类标记集

汉语词类标记集

词类自动标注

  • 词类自动标注的任务
    • 判定自然语言句子中的每个词的词类并给每 个词赋以词类标记。

  • 对于兼类词,词类标注程序应根据上下文确定 兼类词在句子中最合适的词类标记。

  • 词类自动标注是深层语言分析的基础

    • 句法分析
  • 词类标注程序判定依据

    • 要标注的词的不同词类的分布
      • dumb tagger 统计每个兼类词的词类概率分布, 并给每个词赋概率最大的词类。
    • 上下文中其它词的词类信息
      • 英语中,词类串DT JJ NN比DT JJ VBZ更加可能。

基本方法

  • 基于规则的词类标注
  • 基于统计的词类标注

基于规则的词类标注方法

基于隐马尔科夫模型的词类标注

未登录词

  • 未登录词
    • 视作兼类词,可能是任何一个词类
    • 依照出现一次的词(hapax legomenon)的规律处理
      • 更可能是名词 不大可能是限定词等
      • 将出现一次的词的分布平均作为未登录词的分布
    • 对于英文等语言可以利用形态特性(词缀)、拼写特 性判定(首字母大小写)
  • 未登录词的词性标注是难点

其他方法

词类标注问题是经典问题,曾得到了持续关注,不断 有新的方法和模型提出,除我们介绍的方法外,下列 方法也取得了较好的标注效果:

  • 基于决策树(Schmid 1994)
  • 基于转换(Brill 1995)
  • 基于最大熵原则(Ratnaparkhi 1996)

最大熵和条件随机场模型

最大熵模型导引

can的词类

从最大熵模型到条件随机场

最大熵模型

例子

最大熵原则(Principle of Maximum Entropy)

  • 熵描述了随机变量的不确定性,熵越大表明随机变量 的不确定性越大,该随机变量也就越接近均匀分布。

  • 在只掌握关于未知分布的部分知识时,应该选取符合 这些知识但熵最大的概率分布。这就是最大熵原则。

  • 按最大熵原则所做的选择,是人们可作出的唯一的不 偏不倚的选择,任何其它选择都意味着增加了额外的 约束和假设,这些约束和假设根据人们掌握的信息无 法作出。

  • 基于最大熵原则构建的统计模型称为最大熵模型,利 用最大熵原则进行统计建模的方法称为最大熵方法。

  • 按照最大熵原则,对于前面的例子进行建模,即为求 解下面的问题

最大熵方法中的特征表示

最大熵方法中约束表达

求解最大熵分布

条件最大熵分布

最大熵方法的模型训练

最大熵方法的优点

  • 只需针对具体任务,集中精力选择特征
  • 特征选择灵活,特征之间无需独立
  • 特征的类型与数量都可随时调整
  • 无需考虑平滑问题

特征选择

  • 给定样本数据,可设计出成千上万的特征,并非所有 特征的样本期望都是可靠的,很多特征的样本期望带 有偶然性,与特征的真实期望并不一致,引入这样的 特征无益于统计建模工作。
  • 特征选择 (1) 截止频率 要求特征在样本中出现的频率大于截止频率 (2) 特征选择算法 从所有特征集合F中选择对建模有益的特征S

词类标注中最大熵方法的应用

条件随机场模型

图模型(Graphical Model)

有向图模型举例

  • N-gram Model和HMM模型

无向图模型

有向图模型与无向图模型的对比

  • 共同之处 将联合分布分解为多个因子
  • 不同之处
    • 有向图模型: 因子是概率分布、无需全局归一
    • 无向图模型: 因子是势函数,需要全局归一
  • 优缺点
    • 无向图模型中势函数设计不受概率分布约束,设计灵 活,但全局归一代价高
    • 有向图模型无需全局归一、训练相对高效

条件随机场模型(Conditional Random Fields)

)

  • 理论上较为完善的序列标记模型 无标记偏执问题
  • 兼具判别模型和无向图模型的优点 特征设计灵活、无需要求特征独立
  • 条件随机场模型训练代价大、复杂度高
  • 除链式图结构,亦可设计其他图结构 如:网页的链接结构
  • 在自然语言处理领域应用广泛

判别模型和生成模型

  • 生成模型 —联合分布
  • 判别模型 —条件分布
  • 如何对待观察序列
    • 生成模型中,观察序列作为模型的一部分
    • 判别模型中,观察序列只作为条件,可以针对观察序列 灵活提取特征
  • 训练复杂度不同
    • 判别模型训练复杂度通常高
  • 是否支持无指导训练
    • 生成模型支持无指导训练,判别模型无指导训练代价高

汉语自动切分

简介

什么是汉语自动切分?

  • 汉语书写时词和词之间没有空格
  • 通过计算机程序把组成汉语文本的字串自动转换 为词串的过程被称为自动切分

英语中的切分问题?

  • 英语也不能仅凭空格和标点符号解决切分问题

  • 英语切分通常称作 Tokenization
  • 英语切分远比汉语容易

为什么要对汉语进行切分?

  • 切词是深层汉语分析的基础
    • 词是汉语信息处理的基本单位
    • 句法分析、语义分析

基本方法

  • 基于词表的方法
    • 需要配备词表
    • 通过词表匹配确定字串是否成词
    • 规则驱动、数据驱动
  • 字序列标记方法
    • 无需配备词表
    • 根据语境判断字在词中的位置
    • 数据驱动

最大匹配法

  • 正向最大匹配法(MM) 从左向右匹配词表
  • 逆向最大匹配法(RMM) 从右向左匹配词表

  • 最大匹配法的特点
    • 算法简单
    • 长词优先

字序列标记方法

汉语切分的关键问题

切分歧义类型

交集型歧义的链长

真歧义与伪歧义

歧义的发现

  • 歧义消解的前提是发现歧义
    • 切分算法应有发现输入文本中是否出现歧义切 分字段的能力
  • MM和RMM均没有检测歧义的能力
    • 只能给出一种切分结果

双向最大匹配(MM+RMM)

  • 双向最大匹配法不能发现所有的歧义,有盲点

    • 不能发现组合型歧义 (长词优先)
    • 链长是偶数时,不能发现交集型歧义
  • 发现组合型歧义

    • MM+逆向最小匹配法
  • 发现所有切分歧义

    • 全切分算法
  • 歧义切分的表示—词图

歧义消解

  • 基于记忆的伪歧义消解

    • 伪歧义所占比例非常大
    • 伪歧义消解与上下文无关,对高频伪歧义字段,可把 它们的正确(唯一)切分形式预先记录在一张表中,其 歧义消解通过直接查表即可实现。
  • 基于规则的歧义消解

  • 基于统计的歧义消解

    • 在词图上搜寻统计意义上的最佳路径
  • 定义路径分值

    • 基于𝑛元模型,计算路径概率

字序列标记法

未登录词识别

  • 中国人名:李素丽 老张 李四 王二麻子
  • 中国地名:定福庄 白沟 三义庙 韩村河 马甸
  • 翻译人名:乔治·布什 叶利钦 包法利夫人 酒井法子
  • 翻译地名:阿尔卑斯山 新奥尔良 约克郡
  • 机构名:方正公司 联想集团 国际卫生组织 外贸部
  • 商标字号:非常可乐 乐凯 波导 杉杉 同仁堂
  • 专业术语:万维网 主机板 模态逻辑 贝叶斯算法
  • 缩略语:三个代表 五讲四美 打假 扫黄打非 计生办
  • 新词语:温拿、卢瑟、给力、吊丝、骚年
  • 未登录词识别困难
    • 未登录词没有明确边界
    • 许多未登录词的构成单元可独立成词
  • 传统上,逐类构造专门未登录词识别算法
    • 在字序列标注法中,未登录词无需单独处理
  • 识别依据
    • 内部构成规律(用字规律)
    • 外部环境(上下文)

未登录词识别进展

  • 较成熟

    • 中国人名、译名

    • 中国地名

  • 较困难

    • 商标字号
    • 机构名
  • 很困难

    • 专业术语
    • 缩略语
    • 新词语

中文人名识别

  • 在汉语的未登录词中,中国人名是规律性 最强,也是最容易识别的一类

  • 识别模型举例

  • 计算一个可能的人名字串的概率,若其概 率大于某个阈值,则判别为人名。

自动切分评价指标

什么是词?

  • 词是由语素构成的、能够独立运用的最小的语 言单位。
  • 缺乏操作标准。
  • 汉语中语素、词和词组的界线模糊。
  • 关于什么是词,不同的人有不同的把握

汉语分词规范

深度学习

  • 导引
  • 前馈神经网络
  • 卷积神经网络
  • 循环神经网络

词向量

词向量概要

词的表示

  • 词的嵌入表示——词向量(word vector/embedding)
  • 把词表示成低维空间中的向量。
  • 句法语义特性相近的词在空间中位置相近
  • 更为细致的语义结构信息——类比特性
  • 词义相似性 常常 反映为分布相似性
  • 分布假设(Distributional Hypothesis)
  • 词义相似性 常常 反映为分布相似性
  • 分布假设(Distributional Hypothesis)

预测式模型

神经网络建模

Collobert & Weston模型

CBOW模型(continuous bag-of-words )

SkipGram

负采样训练

负例构造方式

矩阵分解式模型

共现矩阵M

PMI和PPMI

矩阵分解

GloVe

词向量的评价

  • 预测具有同样类比关系的词,计算准确率

注意力和Transformer

注意力机制

人类在完成不同任务时对不同信息元素关注程度不同,注意 力机制可视作是对此的一种模拟:

  • 自注意力机制(self attention)
    • 单独用于编码器端(encoder)或解码器端(decoder)
    • 用于融合语境信息生成语境敏感的语言表示(词向量)
    • 一般而言,建模单一序列元素之间依赖关系
  • 一般注意力机制(attention)
    • 同时用于编码器端和解码器端
    • 解码器端状态向量作为query向量,编码器端向量作为key 向量和value向量
    • 用于动态确定编码器端信息对解码决策的不同影响
    • 建模编码序列与解码序列间的依赖关系

残差连接

网络深度和拟合精度

  • 增加深度并不总能改进拟合精度
  • 缓解梯度消失问题
  • 有助于建立深层网络
  • 残差连接有很多成功应用:ResNet, Transformer

Layer Normalization

Transformer

成分句法分析

句法分析导引

句法知识的形式化

上下文无关文法(CFG) 最常用的句法知识形式化工具

计算语言学研究人员提出了许多形式语法系统(grammar formalism) ,上下文无关文法是核心组成部分

  • 功能合一语法(FUG)
  • 词汇功能语法(LFG)
  • 中心词驱动的短语结构语法(HPSG)

基于上下文无关文法的句法分析 建立在上下文无关文法基础上的句法分析算法

CFG的形式定义

句法分析

  • 句法分析的任务

自然语言的句法分析

人工语言的句法分析

句法分析算法

自顶向下

自底向上

分析算法的确定性

  • 自顶向下的分析方法,左部相同的重写规则
  • 自底而上的分析方法,右部相同的重写规则
  • 算法的确定性和非确定性 回溯 (并行)
  • 回溯导致重复计算、效率低下
  • 对于人工语言,由于语法受限,通常可以做到彻底消除 非确定性,从而形成确定性分析算法
  • 对于自然语言而言,彻底消除非确定性是困难的或有风 险的

CKY算法

解释参考:

PCFG和统计句法分析

参考:

基于统计的句法分析

  • 句法分析,理论上可由两个阶段完成
  • 生成句子的所有句法树
  • 句法排歧,找出正确的句法树

统计句法分析的基本思路

什么是概率上下文无关文法?

概率上下文无关文法举例

利用PCFG计算分析树的概率

PCFG 用于句法分析

PCFG的基本问题

向内算法(Inside Algorithm)

基于CKY算法的向内概率计算

向外算法(outside algorithm)

韦特比算法(Viterbi Algorithm)

模型训练

向内向外算法(inside-outside算法)

IO算法描述

基于PCFG的句法分析

结构依存关系

句法分析的评价


文章作者: 杰克成
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 杰克成 !
评论
  目录