词是自然语言处理的基本单位,自动词法分析就是利用计算机对词的形态进行分析,判断词的结构和类别。
词性(Part of Speech)是词汇最重要的特性,链接词汇和句法

词的分类

屈折语:形态分析
分析语:分词
黏着语:分词+形态分析

基本任务

单词识别&形态还原
考虑特殊的单词:prof. 缩写 不规则变形
形态还原:时态 年代 序数词 货币符号 百分号
合成词还原 seven-year-old

形态分析的一般方法

  1. 查词典
  2. 根据不同的情况查找相对应的规则对单词进行处理,如果在字典找得到该单词的原型,则结束,如果找不到,就按照未登录词处理
  3. 完全陌生的词,按照未登录词处理

汉语自动分词

汉语分词问题

单字词与词素的区分
词与短语的区分

切分歧义

交集型歧义

中国人/为了/胜利
中国/人为/了/胜利
交集串的集合称为叫交集串链,交集串个数称为链长
e.g. 中国产品质量:中国/国产/产品/品质/质量 交集串为:国,产,品,质 ,交集串链为{国,产,品,质},链长为 4

组合型歧义

门/把/手/弄/坏/了
门/把手/弄/坏/了

未登录词的识别

  1. 人名,地名,组织名
  2. 新出现的词汇

汉语分词的基本规则:合并

成语:马马虎虎
定量结构:十三区
定名组合:六点
副词片语:或多或少
重叠结构:高高低低
不可拆分词:进出口

辅助规则:切分

  1. 有明显间隔符或语义分隔的
  2. 太过复杂,正反问句,动词带双音节补语:石油/化工/业,讨论/清楚,喜欢/不/喜欢
  3. 专有名词带普通名词:京沪/铁路

分词,标注的评价方法

测试:封闭测试/开放测试
评价指标:
正确率:测试结果中正确的切分占系统总输出的比例:NLP 是否为同义句 nlp是什么词性_词性标注
召回率:系统输出的答案里面正确的个数 5 占总正确的个数,与文本分类里的 Recall 一样:NLP 是否为同义句 nlp是什么词性_人工智能_02
F 测度:同上一章

汉语分词的基本算法

有词典切分/无词典切分
基于规则/基于统计

最大匹配法

-有词典切分,机械切分
正向最大匹配/逆向最大匹配/双向最大匹配
e.g.他是研究生物的一位科学家,假设词典当中的最长词汇长度为 7

正向最大匹配:

先进行最大长度的切分:他是研究生物的/一位化学家
随后逐渐缩小确定第一个切分词:他/是研究生物的一位化学家
然后接着上一个切分的词继续:他/是/研究生物的一位化学家
不断循环,可以得到:他/是/研究生/物/的/一/位/化学家

逆向最大匹配:

他/是/研究/生物/的/一/位/化学家
可以看出来正向匹配和逆向匹配之间存在着差别

优缺点

程序简单,但歧义的消解能力弱,切分准确率在 95% 左右。

最少分词法(最短路径法)

记待切分词串为 NLP 是否为同义句 nlp是什么词性_人工智能_03,其中 c 均为单个的字,n 为串的长度且大于等于 1,建立一个节点数为 n+1 的切分有向无环图:

NLP 是否为同义句 nlp是什么词性_人工智能_04

在相邻节点间创建有向边,边对应词,如果 NLP 是否为同义句 nlp是什么词性_最大匹配_05为一个单词,则建立有向边(Vi-1,Vj),重复建立并查看是否新词,最后直到考虑单词的长度上限停止,从所有路径中选覆盖了所有节点的尽可能长的路径作为分词结果
e.g. 他说的确实对 可以分为
他/说的/确实/对
他/说/的确/实/对
seg=4<seg=5,选择第一个分词

优缺点

简单方便,需要的资源少,但是对于多条最短路径和长句子时的复杂度表现并不好

基于语言模型的分词方式

对于一个待切分的句子 S,W 是一种可能的切分:NLP 是否为同义句 nlp是什么词性_最大匹配_06,其中 pW 为语言模型,另一个则为生成模型,用了朴素贝叶斯的理论

基于 HMM 的分词方式

基于字标注的分词方式

将分词过程看成是字的分类问题,每个字具有自己固定的词位:如词首(B)词中(M)词尾(E)或单独成词(S),使得处理未登录词也可以按照字的方向去看待

生成式与判别式

总的来说,通过大量数据构建样本的概率密度模型,并以此推理,就是生成式,建立在贝叶斯与统计基础上;如果直接使用观测值判断模型,而不考虑样本如何,那么就属于对后验概率建模的判别式

未登录词的识别

困难

未登录词的识别与描述规则太多;新出现的词速度太快

对于姓名的识别

  1. 名字用字范围广,分布松散,规律不明显
  2. 姓氏和名字可以拆开使用
  3. 许多名字中的字可以与其他字关联形成交集串
  4. 缺少文义分隔
    e.g. 祝/贺老板/生意/兴隆 or 祝贺/老板/生意/兴隆
    主要采用姓名库进行识别,并在一句中对可能出现姓名的概率估值进行计算,完成对姓名存在性的判断
计算概率估值

Cname = Xmn
NLP 是否为同义句 nlp是什么词性_最大匹配_07
NLP 是否为同义句 nlp是什么词性_最大匹配_08
NLP 是否为同义句 nlp是什么词性_人工智能_09
NLP 是否为同义句 nlp是什么词性_NLP 是否为同义句_10
NLP 是否为同义句 nlp是什么词性_最大匹配_11
确定阈值:
姓氏 X 构成名字的最小阈值:
NLP 是否为同义句 nlp是什么词性_最大匹配_12
通过训练得到 X 的该阈值 T,当 f>T 时,则当前识别的汉字串为中文姓名

使用其他修饰规则

如对于维吾尔族中会出现的点符,可以通过该符号来进一步判断

对于地名机构名识别——建立对应库(略)

基于神经网络的实体识别方法

主要为 RNN(LSTM),此处不展开,详细请在 RNN 相关章节查看

词性标注

主要目的:消除词性兼类的问题
在英文中:flies(动词三单,名次复数)
在中文中:好(形容词,副词,动词),教育(名次,动词)

词性标注的一般原则

标准性:使用普遍认可的分类标准与符号集
兼容性:与已有资源尽量一致
可扩展性:方便扩充与修改

词性标注的方法

  1. 基于规则的词性标注方法
  2. 基于统计模型(学习)的词性标注方法:HMM,CRF,NN
  3. 规则和统计方法相结合的词性标注方法:TBL

HMM 隐马尔可夫模型

学习过程

给定训练数据:NLP 是否为同义句 nlp是什么词性_人工智能_13,O 为词序列,Q 为词性序列

训练出函数 f(O),从 O 映射到 Q,即为词序列 O 找到最优的 Q

NLP 是否为同义句 nlp是什么词性_最大匹配_14

其中NLP 是否为同义句 nlp是什么词性_词性标注_15

P(Q)则为语言模型,可以使用我们先前提到的 n-gram 计算:

NLP 是否为同义句 nlp是什么词性_人工智能_16

这就是隐马尔可夫模型的原型

词性的马尔可夫链:

NLP 是否为同义句 nlp是什么词性_最大匹配_17

状态:t 时刻的状态为 NLP 是否为同义句 nlp是什么词性_最大匹配_18

转移概率:NLP 是否为同义句 nlp是什么词性_自然语言处理_19表示从状态 i 转移到 j 的转移概率

NLP 是否为同义句 nlp是什么词性_最大匹配_20

NLP 是否为同义句 nlp是什么词性_人工智能_21

起始状态:初始状态的概率向量NLP 是否为同义句 nlp是什么词性_最大匹配_22,表示各状态作为初始状态的概率

之所以使用隐马尔可夫,是因为马尔可夫只能处理表层的词序列,但是没法处理隐层的词性序列,因此拓展出了隐马尔可夫

NLP 是否为同义句 nlp是什么词性_词性标注_23


NLP 是否为同义句 nlp是什么词性_词性标注_24

隐马尔可夫的三个基本问题:
估算问题(计算产生观测序列的概率),解码问题(计算最优的状态序列),参数学习

观测的似然

e.g.已知每天吃冰淇淋的个数与天气的冷热程度挂钩
求解观测到 ICE CREAM 个数在 3 天里分别为 3-1-3 的概率有多大
NLP 是否为同义句 nlp是什么词性_词性标注_25
对于某个给定状态时观测的似然 P(O|Q)
如给出天气序列 H-H-C,即计算NLP 是否为同义句 nlp是什么词性_NLP 是否为同义句_26
NLP 是否为同义句 nlp是什么词性_词性标注_15
可得NLP 是否为同义句 nlp是什么词性_词性标注_28
再计算语言模型 P(Q)
NLP 是否为同义句 nlp是什么词性_词性标注_29
然后综合到一起:
NLP 是否为同义句 nlp是什么词性_词性标注_30
最后对所有天气状态序列求和
但是我们可以看到这样效率非常低,所以我们引入前向算法和后向算法

前向算法:格栅

NLP 是否为同义句 nlp是什么词性_人工智能_31

NLP 是否为同义句 nlp是什么词性_人工智能_32

.

NLP 是否为同义句 nlp是什么词性_人工智能_33

后向算法

NLP 是否为同义句 nlp是什么词性_NLP 是否为同义句_34
与前向算法不同之处在于 NLP 是否为同义句 nlp是什么词性_词性标注_35是推导对象还是已知数据,后向算法往前推导
初始化:NLP 是否为同义句 nlp是什么词性_人工智能_36
最终得到:NLP 是否为同义句 nlp是什么词性_自然语言处理_37
前向算法与后向算法结合可以得到:NLP 是否为同义句 nlp是什么词性_人工智能_38

解码

已知 Ice Cream 观测序列为 313,且拥有 HMM 的参数 A(状态转移矩阵)B(概率发射矩阵),找到 313 最可能对应的天气状态序列(隐层序列)
一种方法:对于一个观测序列 O 计算 P(Q|O),选取概率最大值对应的状态序列

Viterbi Algorithm

NLP 是否为同义句 nlp是什么词性_人工智能_39

NLP 是否为同义句 nlp是什么词性_NLP 是否为同义句_40


NLP 是否为同义句 nlp是什么词性_最大匹配_41

参数学习

如何找到 HMM 中最好的 A和 B:NLP 是否为同义句 nlp是什么词性_人工智能_42
可以分为有监督和无监督两种

有监督

基于已知的正确答案,统计状态的转移,与状态到观测的发射

无监督

基于不完全的数据来进行估计,很难得到解析解,但是可以通过 Baum-Welch (Forward-Backward) 局部最大化算法来逼近

前向-后向算法

随机取一个 lambda,可以计算出似然概率 P(O|lambda)
通过计算,可以看到哪些转移与发射的使用率最高,相对应的提高他们的概率,可以获得新的 lambda,就可以得到新的似然概率,不断逼近局部最优解
(没看明白)

两类概率

TAG 之间的转移概率

e.g.冠词后面即可以接形容词,也可以接名词
极大似然估计法,通过有标记预料估计 P(NN|OT)

词的似然概率