终于到了👴自己的4.5学分专业课了。 痛苦。 所以这门课到底在讲什么?
一些定义
- NLP:一门以计算机为手段,通过建立语言现象的计算模型对自然语言进行研究和处理的学科
- 学术会议不接受语言起源的论文(因为无法证明)
- 语言和言语:个别和一般
- 言语:说话的行为,具体的话
- 语言:从言语概括出来的综合,约定俗成的体系
- 语言符号性
- 符号
- 能指(指代物)是所指(被指物)的符号
语言的主要性质
- 任意性:约定俗成
- 稳定性:短期,局部
- 渐变性:长期,全局
- 线性:书写口述理解都有先后
语言符号
- 音义结合的统一体
- 来自社会约定俗成
语言系统
- 组合关系-横向句子
- 聚合关系-纵向,互可替换的语言单位
文字
起源于图画
- 表意文字:不能存在
- 表音文字:拼音文字
- 意音文字
汉字:
- 词语文字
- 意音文字
- 语素文字
- 不是象形或表意文字
语法单位
- 句子
- 词组
- 词
- 语素
汉语的语法基于语序和虚词
语料库
- 自然语言的采样
- 大量的文本,通常经过整理,具有既定格式与标记
分类
- 共时语料库与历时语料库
- 共时研究一个平面
- 通用语料库与专用语料库
加工
- 杂质过滤
- 大小写
- 标记化
- 句子边界
- 格式标注
- 数据标注
统计
- 频率方法
- 均值和方差
Zipf
语料库中某个词的词频和它的词频排序有关系
粗糙的特性。
频率方法
如果两个词在一起出现很多次,它们很有可能是搭配;然而仅仅选择最频繁出现的二元组,结果并不 理想。因此需要设置一定的词性过滤器来进行过滤。
均值和方差方法
考虑两个词之间距离变量的方差和均值,如果方差较小,那么它们很可经常一起出现。
句子对齐
- 句子对齐就是给定双语文本S,T,获取一个句珠序列的问题
- 最小、唯一、无交叉
基于长度
基本思想:源语言和目标的句子长度存在一定关系
构造随机变量X:S中任意字符在T中对应的字符数。X服从正态分布,期望为c,方差
从而构造随机变量来度量双语中句子长度的关系。
- 不依赖具体的语言
- 速度快
- 效果好
词法分析
分词
基础问题
分词歧义
- 交集型切分歧义:AJB待切分,但是AJ和JB都成词
- 组合型切分歧义:AB待切分,但A,B,AB都成词
分词质量评价
- 准确率precision
- 召回率recall
- F评价
基于词典和匹配
- FMM/BMM正反向最大匹配
- 双向最大匹配:结合FMM与BMM的结果
- 最少分词法:分词结果中含词数最少;等价于最短路径。DP。
提高性能:
- 增加知识、局部修改(增加歧义词表,排歧规则)
基于统计
-
最大词频分词(一元语法):搜索基于字符串的所有可能切分,切分上各点的概率之积是该切分的概率
-
N元语法利用历史信息,提高了准确率
-
等价类映射:将N-1元历史信息映射为等价类,从而减少自由参数数目
Vertibi算法
利用DP,逐列获得最佳路径。
该算法可使用HMM完成词性分词一体化标注
语言模型
Markov模型
- t时间的状态取决于此前的状态
- 状态转移的概率已知
HMM
- 已知所有状态的集合
- 已知每个状态可能的输出集合
- 已知状态转移概率
- 已知初始状态概率分布
- 已知某个状态输出某个符号的概率分布
对应的问题:
- 已知观测序列和模型,求解该序列的概率
- 已知观测的符号序列,求解最佳状态序列
- 已知观测序列,最大似然估计模型
求解序列概率:前向算法
动态规划:前向变量表示t时间(已经输出了)下,位于状态的概率。
初始化:
迭代:
求和:
复杂度O()
求解序列概率:后向算法
动态规划:后向变量表示t时间,位于状态,继续输出序列。
初始化:
迭代:
求和:
复杂度O()
求解最佳状态序列: Vertibi算法
按列搜索;复杂度O()
参数估计:EM算法
- (E)计算最大期望,利用现有估计值,计算其最大似然估计
- (M)最大化E中求得的最大似然值来计算参数的值
- 迭代EM,直到求得的参数符合预期
句法分析
- 判断单词串是否属于某个语言;如果是,给出其树结构
- 常用CFG(复杂度可接受,具有一定的描述力)
乔姆斯基体系
- 无约束文法:0型文法
- 上下文相关文法:1型文法
- 上下文无关文法:2型文法
- 正则文法:3型文法
自底向上的规约算法
- 移进:将句子左端的一个终结符移入栈顶
- 规约:根据规则,替换栈顶的若干符号为一个符号
- 接受:所有词语已经入栈,且栈中只剩下符号S
- 拒绝:所有词语已经入栈,且栈中不只剩下符号S,也无法继续规约
:Chart算法
-
点规则:点左侧为已分析的,右侧为未分析的
-
Chart:保存分析过程中已建立的成分和位置
-
agenda:存放等待加入Chart的边
-
active arc:如果点不在产生式最右,则称为活动弧,存放分析的中间态
- 字符串w输入agenda初始化
- 循环,直到w和agenda为空
- 如果agenda空,则从缓冲区读入字符,并将字符及其起止位置(P1,P2)加入agenda
- 如果agenda非空,则从agenda弹出栈顶的边(P1,P2),其上标记为L
- 检查规则,对于形如的规则,在active arc集合中加入起止位置为(P1,P2), 弧上为的规则的active arc
- 把从agenda中弹出的标记为L的边加入Chart中的(P1,P2)之间
- 检查所有的active arc,如果存在起止位置(P0,P1)其弧上规则为的active arc,则加入新的active arc,起止位置(P0,P2),规则
- 如果一条active arc,起止位置(P0,P2)上的规则为,则将起止位置(P0,P2),符号位A的边加入agenda。
复杂度O(),易实现,但是依赖句法规则质量,难以区分歧义结构。
统计句法分析PCFG
为CFG的规则添加了概率约束。 CYK算法:集束搜索
- 利用概率减少分析过程中的搜索
- 利用概率剪枝,加快分析
- 可以定量比较语法性能
CYK算法
识别矩阵:对角线下全为0,对角线以上由文法G的非终结符构成,对角线由终结符构成
- 用所有单词(终结符)填写对角线(其中最左上角的元素为0)
- 对每一个终结符,所有可能推导出它的非终结符写在它的右边主对角线上方的位置上
- 按照平行于主对角线的方向,逐层填写矩阵
现代语法摘要
词汇功能语法LFG
- 把功能结构的描述作为语言描述中一个基本的独立层次
- LFG中的功能主要指语法功能,如主语、宾语、补语、修饰语,与传统的主语、宾语概念一致;时态、数、人称、格等语法特征;谓词功能
- LFG以功能为基础,定义句子的合格条件作为对成分结构的制约。有成分结构的句子不一定是合乎语法的句子,只有存在合法功能的句子,才是合乎语法的句子
- LFG本质上是一种以功能为基点的文法
格语法
- 格表示体词与谓词之间的关系
- 利用格框架约束分析可以分析语义
依存语法
- 一个句子中只有一个成分是独立的
- 除独立成分外,句子中其他成分都必须依存于某成分
- 句中任何一个成分都不能依存两个以上的其他成分
- 如果A成分从属于B成分,而C成分在句中处于A和B之间,则C成分或者从属于A,或者从属于B,或者从属于A,B之间的某个成分
链语法
基于单词,每个单词都可以链接其它单词;单词间的链接规则就是链语法。
语义计算
- 解释自然语言句子或篇章中各部分的意义。
词义消歧WSD
- 义项/义位:语义系统中能独立存在的基本 语义单位
- 义位关系
- 同位
- 包含(上下义)
- 整体-部分
- 义素:构成义位的最小意义单位
基于词典释义的WSD
利用上下文中单词在词典释义中的出现情况
基于义类词典的WSD
利用上下文中的特征词和贝叶斯法,判断当前多义词应该属于的义类
基于互信息的WSD
通过示意特征判断多义词意
基于Bayes判别的WSD
计算多义词W出现在给定语境C,各义项的概率
语篇分析
指代消解
- 指代语:语篇中提到实体后,再次提及时使用的表示(如代词)
- 实体:实际存在的对象,被指代的内容
- 指称:实体的语言表述
- 先行语:语篇中引入的一个相对明确的指称意义表述
- 共指:当两种表述均指称相同对象时,则称这两种表述具有共指关系
指代的形式
- 不定名词:一张红杀,引入新实体
- 有定名词:那个男人,无论读者是否知道,一定存在;或者出现过,需要指代消解
- 人称代词:他
- 指示代词:那
- 1指代:One
- 0指代:
消解
- 回指消解:寻找指代语对应的先行词
- 共指消解:发现指向相同实体的语言表示单元
中心理论
- 语篇由不同的语段组成
- 在篇章中,存在一个实体联系不同的语段,称他为中心C
基于分类的指代消解
利用机器学习方法建立分类器,考虑距离、特征等,完成共指消解
衔接与连贯
- 衔接:强调构成成分之间的关联性
- 连贯:强调整体上表达某种意义
修饰结构理论RST
认为语篇的构成具有树形层次结构,并通过修饰结构表示语篇结构。
篇章相似度
- 向量空间模型:把文本文件表示为向量的代数模型
机器翻译
用计算机把一种语言翻译成另一种语言的一门学科和技术。
传统翻译方法
基于规则
- 对源语言和目标语言均进行适当描述
- 用规则描述语法的翻译方法
基于实例
对比已存在的实例,给出翻译结果。