终于到了👴自己的4.5学分专业课了。
痛苦。
所以这门课到底在讲什么?

一些定义

  • NLP:一门以计算机为手段,通过建立语言现象的计算模型对自然语言进行研究和处理的学科
  • 学术会议不接受语言起源的论文(因为无法证明)
  • 语言和言语:个别和一般
    • 言语:说话的行为,具体的话
    • 语言:从言语概括出来的综合,约定俗成的体系
  • 语言符号性
    • 符号
    • 能指(指代物)是所指(被指物)的符号

语言的主要性质

  • 任意性:约定俗成
  • 稳定性:短期,局部
  • 渐变性:长期,全局
  • 线性:书写口述理解都有先后

语言符号

  • 音义结合的统一体
  • 来自社会约定俗成

语言系统

  • 组合关系-横向句子
  • 聚合关系-纵向,互可替换的语言单位

文字

起源于图画

  • 表意文字:不能存在
  • 表音文字:拼音文字
  • 意音文字

汉字:

  • 词语文字
  • 意音文字
  • 语素文字
  • 不是象形或表意文字

语法单位

  • 句子
  • 词组
  • 语素

汉语的语法基于语序和虚词

语料库

  • 自然语言的采样
  • 大量的文本,通常经过整理,具有既定格式与标记

分类

  • 共时语料库与历时语料库
    • 共时研究一个平面
  • 通用语料库与专用语料库

加工

  • 杂质过滤
  • 大小写
  • 标记化
  • 句子边界
  • 格式标注
  • 数据标注

统计

  • 频率方法
  • 均值和方差

Zipf

语料库中某个词的词频ff和它的词频排序rr有关系fr=k(CONST k)fr=k(CONST\space k)

粗糙的特性。

频率方法

如果两个词在一起出现很多次,它们很有可能是搭配;然而仅仅选择最频繁出现的二元组,结果并不
理想。因此需要设置一定的词性过滤器来进行过滤。

均值和方差方法

考虑两个词之间距离变量的方差和均值,如果方差较小,那么它们很可经常一起出现。

句子对齐

  • 句子对齐就是给定双语文本S,T,获取一个句珠序列的问题
  • 最小、唯一、无交叉

基于长度

基本思想:源语言和目标的句子长度存在一定关系

构造随机变量X:S中任意字符在T中对应的字符数。X服从正态分布,期望为c,方差V2V^2

从而构造随机变量δ(li,lj)=ljc×lili×V2\delta(l_i,l_j)=\frac{l_j-c\times l_i}{\sqrt{l_i\times V^2}}来度量双语中句子长度的关系。

  • 不依赖具体的语言
  • 速度快
  • 效果好

词法分析

分词

基础问题

分词歧义
  • 交集型切分歧义:AJB待切分,但是AJ和JB都成词
  • 组合型切分歧义:AB待切分,但A,B,AB都成词
分词质量评价
  • 准确率precisionP=P=\frac{正确分词}{结果的所有分词}
  • 召回率recallR=R=\frac{正确分词}{标准答案的所有分词}
  • F评价F=2PRP+RF=\frac{2PR}{P+R}

基于词典和匹配

  • FMM/BMM正反向最大匹配
  • 双向最大匹配:结合FMM与BMM的结果
  • 最少分词法:分词结果中含词数最少;等价于最短路径。DP。

提高性能:

  • 增加知识、局部修改(增加歧义词表,排歧规则)

基于统计

  • 最大词频分词(一元语法):搜索基于字符串的所有可能切分,切分上各点的概率之积是该切分的概率

  • N元语法利用历史信息,提高了准确率

  • 等价类映射:将N-1元历史信息映射为等价类,从而减少自由参数数目

Vertibi算法

参考

利用DP,逐列获得最佳路径。

该算法可使用HMM完成词性分词一体化标注

语言模型

Markov模型
  • t时间的状态取决于此前的状态
  • 状态转移的概率已知
HMM
  • 已知所有状态的集合SS
  • 已知每个状态可能的输出集合KK
  • 已知状态转移概率AA
  • 已知初始状态概率分布π\pi
  • 已知某个状态输出某个符号的概率分布BB

对应的问题:

  • 已知观测序列和模型,求解该序列的概率
  • 已知观测的符号序列,求解最佳状态序列
  • 已知观测序列,最大似然估计模型
求解序列概率:前向算法

动态规划:前向变量αt(i)\alpha_t(i)表示t时间(已经输出了O1O2OtO_1O_2\cdots O_t)下,位于状态sis_i的概率。

初始化:α1(i)=πibi(O1)\alpha_1(i)=\pi_ib_i(O_1)

迭代:

αt+1(j)=(i=1Nαt(i)aij)bj(Ot+1)\alpha_{t+1}(j)=\left(\sum_{i=1}^N \alpha_t(i)a_{ij}\right)b_j(O_{t+1})

求和:P(Oμ)=i=1NαT(i)P(O|\mu)=\sum_{i=1}^N \alpha_T(i)

复杂度O(N2TN^2T)

求解序列概率:后向算法

动态规划:后向变量βt(i)\beta_t(i)表示t时间,位于状态sis_i,继续输出序列Ot+1OTO_{t+1}\cdot O_T

初始化:βT(i)=1\beta_T(i)=1

迭代:

βt(i)=j=1Naijbj(Ot+1)βt+1(j)\beta_t(i)=\sum_{j=1}^N a_{ij}b_j(O_{t+1})\beta_{t+1}(j)

求和:P(Oμ)=i=1Nπibi(O1)β1(i)P(O|\mu)=\sum_{i=1}^N\pi_ib_i(O_1)\beta_1(i)

复杂度O(N2TN^2T)

求解最佳状态序列: Vertibi算法

按列搜索;复杂度O(N2TN^2T)

参数估计:EM算法
  1. (E)计算最大期望,利用现有估计值,计算其最大似然估计
  2. (M)最大化E中求得的最大似然值来计算参数的值
  3. 迭代EM,直到求得的参数符合预期

句法分析

  • 判断单词串是否属于某个语言;如果是,给出其树结构
  • 常用CFG(复杂度可接受,具有一定的描述力)

乔姆斯基体系

  • 无约束文法:0型文法
  • 上下文相关文法:1型文法
  • 上下文无关文法:2型文法
  • 正则文法:3型文法

自底向上的规约算法

  • 移进:将句子左端的一个终结符移入栈顶
  • 规约:根据规则,替换栈顶的若干符号为一个符号
  • 接受:所有词语已经入栈,且栈中只剩下符号S
  • 拒绝:所有词语已经入栈,且栈中不只剩下符号S,也无法继续规约

:Chart算法

  • 点规则:点左侧为已分析的,右侧为未分析的

  • Chart:保存分析过程中已建立的成分和位置

  • agenda:存放等待加入Chart的边

  • active arc:如果点不在产生式最右,则称为活动弧,存放分析的中间态

  1. 字符串w输入agenda初始化
  2. 循环,直到w和agenda为空
    1. 如果agenda空,则从缓冲区读入字符,并将字符及其起止位置(P1,P2)加入agenda
    2. 如果agenda非空,则从agenda弹出栈顶的边(P1,P2),其上标记为L
    3. 检查规则,对于形如ALβA\rightarrow L\beta的规则,在active arc集合中加入起止位置为(P1,P2), 弧上为ALβA\rightarrow L\cdot\beta的规则的active arc
    4. 把从agenda中弹出的标记为L的边加入Chart中的(P1,P2)之间
    5. 检查所有的active arc,如果存在起止位置(P0,P1)其弧上规则为AαLβA\rightarrow\alpha\cdot L\beta的active arc,则加入新的active arc,起止位置(P0,P2),规则AαLβA\rightarrow \alpha L\cdot\beta
    6. 如果一条active arc,起止位置(P0,P2)上的规则为AαLA\rightarrow\alpha L\cdot,则将起止位置(P0,P2),符号位A的边加入agenda。

复杂度O(N3N^3),易实现,但是依赖句法规则质量,难以区分歧义结构。

统计句法分析PCFG

为CFG的规则添加了概率约束。
CYK算法:集束搜索

  • 利用概率减少分析过程中的搜索
  • 利用概率剪枝,加快分析
  • 可以定量比较语法性能

CYK算法

识别矩阵:对角线下全为0,对角线以上由文法G的非终结符构成,对角线由终结符构成

  1. 用所有单词(终结符)填写对角线(其中最左上角的元素为0)
  2. 对每一个终结符wiAi,iw_i位于A_{i,i},所有可能推导出它的非终结符写在它的右边主对角线上方的位置上
  3. 按照平行于主对角线的方向,逐层填写矩阵

现代语法摘要

词汇功能语法LFG

  • 把功能结构的描述作为语言描述中一个基本的独立层次
  • LFG中的功能主要指语法功能,如主语、宾语、补语、修饰语,与传统的主语、宾语概念一致;时态、数、人称、格等语法特征;谓词功能
  • LFG以功能为基础,定义句子的合格条件作为对成分结构的制约。有成分结构的句子不一定是合乎语法的句子,只有存在合法功能的句子,才是合乎语法的句子
  • LFG本质上是一种以功能为基点的文法

格语法

  • 格表示体词与谓词之间的关系
  • 利用格框架约束分析可以分析语义

依存语法

  1. 一个句子中只有一个成分是独立的
  2. 除独立成分外,句子中其他成分都必须依存于某成分
  3. 句中任何一个成分都不能依存两个以上的其他成分
  4. 如果A成分从属于B成分,而C成分在句中处于A和B之间,则C成分或者从属于A,或者从属于B,或者从属于A,B之间的某个成分

链语法

基于单词,每个单词都可以链接其它单词;单词间的链接规则就是链语法。

语义计算

  • 解释自然语言句子或篇章中各部分的意义。

词义消歧WSD

  • 义项/义位:语义系统中能独立存在的基本语义单位
  • 义位关系
    • 同位
    • 包含(上下义)
    • 整体-部分
  • 义素:构成义位的最小意义单位

基于词典释义的WSD

利用上下文中单词在词典释义中的出现情况

基于义类词典的WSD

利用上下文中的特征词和贝叶斯法,判断当前多义词应该属于的义类

基于互信息的WSD

通过示意特征判断多义词意

基于Bayes判别的WSD

计算多义词W出现在给定语境C,各义项的概率P(siC)P(s_i|C)

语篇分析

指代消解

  • 指代语:语篇中提到实体后,再次提及时使用的表示(如代词)
  • 实体:实际存在的对象,被指代的内容
  • 指称:实体的语言表述
  • 先行语:语篇中引入的一个相对明确的指称意义表述
  • 共指:当两种表述均指称相同对象时,则称这两种表述具有共指关系
指代的形式
  • 不定名词:一张红杀,引入新实体
  • 有定名词:那个男人,无论读者是否知道,一定存在;或者出现过,需要指代消解
  • 人称代词:他
  • 指示代词:那
  • 1指代:One
  • 0指代:
消解
  • 回指消解:寻找指代语对应的先行词
  • 共指消解:发现指向相同实体的语言表示单元
中心理论
  • 语篇由不同的语段{U1,U2,Un}\{U_1,U_2\cdots,U_n\}组成
  • 在篇章中,存在一个实体联系不同的语段,称他为中心C
基于分类的指代消解

利用机器学习方法建立分类器,考虑距离、特征等,完成共指消解

衔接与连贯

  • 衔接:强调构成成分之间的关联性
  • 连贯:强调整体上表达某种意义

修饰结构理论RST

认为语篇的构成具有树形层次结构,并通过修饰结构表示语篇结构。

篇章相似度

  • 向量空间模型:把文本文件表示为向量的代数模型

机器翻译

用计算机把一种语言翻译成另一种语言的一门学科和技术。

传统翻译方法

基于规则

  • 对源语言和目标语言均进行适当描述
  • 用规则描述语法的翻译方法

基于实例

对比已存在的实例,给出翻译结果。

基于统计的翻译方法

信道噪声模型

一种语言T由于经过一个噪声信道而发生变形从而在信道的另一端呈现为另一种语言S (信道意义上的输出,翻译意义上的源语言)。

从而翻译问题可定义为:

  • 如何根据观察到的S,恢复最为可能的T。
  • 这种观点认为,任何一种语言的任何一个句子都有可能是另外一种语言中的某个句子的译文,只是可能有所出入。

T^=argmaxTP(T)P(ST)\hat T= \underset{T}{argmax}P(T)P(S|T)

基于词的翻译模型
IBM1

通过EM算法完成词对齐,但是无法刻画翻译中的重排序和增减词过程。

IBM2

引入对齐概率分布(绝对对齐)

a(ajj,m,l)=P(aja1j1,sij1,m,l)a(a_j|j,m,l)=P(a_j|a_1^{j-1},s_i^{j-1},m,l)

l:目标语单词个数
m:源语单词个数
s:源语言

IBM3

引入繁衍率

基于短语的翻译模型
  • 最小翻译单元为连续字串(短语)
  • 抽取短语:列举源语言所有可能的短语,根据对齐检查相容性
对数线性模型

设e,f是机器翻译的目标语言和源语言句子,h1(e,f),,hM(e,f)h_1(e,f),\cdots, h_M(e,f)是e,f上的M个特征,λ1,,λM\lambda_1,\cdots ,\lambda_M是与这些特征对应的M个参数,那么翻译概率可模拟为:

Pr(ef)pλ1λM(ef)=exp(m=1Mλmhm(e,f))eexp(m=1Mλmhm(e,f))Pr(e|f)\approx p_{\lambda_1\cdots\lambda_M}(e|f)=\frac{exp(\sum_{m=1}^M\lambda_mh_m(e,f))}{\sum_{e'}exp(\sum_{m=1}^M\lambda_mh_m(e',f))}

从而对于给定的f,最佳译文为

e^=argmaxe(Pr(ef))=argmaxe(m=1Mλmhm(e,f))\hat{e}=\underset{e}{argmax}(Pr(e|f))=\underset{e}{argmax}(\sum_{m=1}^M\lambda_mh_m(e,f))

BLEU

BLEU=BPexp(n=1NwnlogPn)BLEU=BP\cdot exp(\sum_{n=1}^N w_nlogP_n)

其中:

BP={1c>re1r/ccrBP=\begin{cases} 1&c\gt r\\ e^{1-r/c}&c\le r \end{cases}

称为过短惩罚,c是候选句子长度,r是参考译文最接近候选译文的长度。

w1,w2,,wnw_1,w_2,\cdots ,w_n是求平均的权重;P1,P2,,PnP_1,P_2,\cdots,P_n是n元文法下的概率(根据参考译文计算)

概率的计算方式为MinMax\frac{\sum Min}{\sum Max},其中Max为参考译文中(n元词组)出现次数的最大值,Min为候选译文和Max之中的最小值。

信息抽取

NER

  • 基于规则
  • 基于词典
  • 机器学习

最大熵

转载自CSDN::救人赋荒年

最大熵原理
  • 满足已知信息
  • 不做任何未知假设(剩下的等概率)

CRF

  • 条件下的马尔可夫随机场;
  • 输入为条件;
  • 马尔可夫链

深度学习

评价

  • 准确率precisionP=tptp+fpP=\frac{tp}{tp+fp}
  • 召回率recall=R=tptp+fnR=\frac{tp}{tp+fn}
  • F1度量F1=2PRP+RF1=\frac{2PR}{P+R}

实体链接

将实体提及链接到知识库中对应的实体

  • 多层歧义消解框架
    1. 基于词典匹配的识别
    2. 基于最大熵的候选选择
    3. 基于知识的歧义消解

关系抽取

自动识别由一对实体和联系这对实体的关系构成的相关三元组

  • 基于特征向量:最大熵模型,支持向量机
  • 基于核函数
  • 基于神经网络:RNN,CNN

神经网络

  • DNN:语音技术
  • CNN卷积神经网络:图像技术
  • RNN递归神经网络:句法分析,语句表示
  • LSTM长短时记忆循环神经网络
  • GRU:门限循环单元
  • 注意力机制
  • 导数计算

应用

  • DBN深度置信网络:问答对挖掘
  • CNN:物体识别
  • LSTM-RNN:机器翻译,文本摘要

自然语言处理技术

文本分类和聚类

文本分类

  • 朴素贝叶斯

分类评估标准:

  • PrecisionP=tptp+fpP=\frac{tp}{tp+fp}
  • RecallR=tptp+fnR=\frac{tp}{tp+fn}
  • F-MesureF=2PRP+RF=\frac{2PR}{P+R}
  • AccuracyA=tp+tntp+fp+tn+fnA=\frac{tp+tn}{tp+fp+tn+fn}

文本聚类

利用“距离”进行聚类

  • k-均值算法
  • BFR算法
困惑度

PP(W)=P(w1w2wn)1NPP(W)=P(w_1w_2\cdots w_n)^{-\frac{1}{N}}

文档表示与相似度计算

  • One-Hot
  • Bag of words(One-hot求和)

相似度计算

对文档构造Bag of words向量djd_j,则计算两个文本的余弦相似度

sim(di,dj)=didjdidjsim(d_i,d_j)=\frac{d_i\cdot d_j}{|d_i||d_j|}

TF-IDF

评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度.

如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

fijf_{ij}是元素tit_i在文本djd_j中的频率,则TF词频

TFj=fijmaxkfkjTF_{j}=\frac{f_{ij}}{\underset{k}{max}f_{kj}}

nin_i为提到元素i的文档数,N为文档总数,则IDF逆向文件频率

IDF=logNniIDF=log\frac{N}{n_i}

TF-IDF评分为wij=TFij×IDFiw_{ij}=TF_{ij}\times IDF_i

词的表示是NLP的基础

  • Word2vec

语言自动生成

  • 模板生成技术:构造模板,使用用户输入信息代替模板中的变量
  • 模式生成技术:文本表示为结构树的形式
  • 短语规则扩展技术:基于RST
  • 属性特征生成技术

知识图谱

  • 知识是计算的基础;
  • 用谓词逻辑表示知识;
  • 知识图谱三元组:对象-属性-值

情感分析技术

  • 朴素贝叶斯
  • 交叉验证
  • CNN

对话系统

  • 聊天型

    • 娱乐
    • 医疗
  • 任务型

  • Eliza,Parry: 基于规则

  • Cleverbot小冰:基于检索的聊天型对话系统

  • Siri,GUS:基于框架的任务型聊天系统