自然语言处理复习汇总(南京大学)
标签(空格分隔): 自然语言处理
参考书籍:统计自然语言处理–宗成庆
该文档用markdown编写,github地址为https://github.com/lyfadvance/nlp/blob/master/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E5%A4%8D%E4%B9%A0%E6%96%87%E6%A1%A3.md
如果想继续编写,可以fork
统计语言模型
N-Gram
N-1阶马尔可夫链我们称之为N元语言模型
进行平滑处理:
线性平滑:
laplace 平滑:
简单线性插值平滑:
Neural language model
word2vector
文本分类
朴素贝叶斯模型
D为待分类的文档,
1. Bernoulli document model(伯努利文档模型)
一个文档被表示成01向量.向量中每一个元素表示相应的单词是否在文档中出现了
令
令
则
2. Multinomial document model
一个文档被表示成整数向量.向量中每一个元素表示相应的单词在文档中出现了多少次
令
令
训练句向量
一般来讲每一个类别
文本
训练句向量也就是训练打分模型
可以根据这个设计各种loss函数。用SVM的loss函数训练
文本或句子向量化
词袋模型
0-1向量
N-Gram Bag-of-Words
Vocab = set of all n-grams in corpus
Document = n-grams in document w.r.t vocab with multiplicity
For bigram:
Sentence 1: “The cat sat on the hat”
Sentence 2: “The dog ate the cat and the hat”
Vocab = { the cat, cat sat, sat on, on the, the hat, the dog, dog ate, ate the, cat and, and the}
Sentence 1: { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}
Sentence 2 : { 1, 0, 0, 0, 0, 1, 1, 1, 1, 1}
TF-IDF
TF(词频)
IDF(逆文档频率)
特征过滤
- 停用词
- 基于文档频率(DF)的特征提取法
从训练预料中统计出包含某个特征的文档的频率(个数),然后根据设定的阈值,当该特征项的DF值小于某个阈值时,从特征空间中去掉该特征项,因为该特征项使文档出现的频率太低,没有代表性;当该特征项的DF值大于另外一个阈值时,从特征空间中也去掉该特征项,因为该特征项使文档出现的频率太高,没有区分度 - 信息增益法
信息增益(IG)法依据某特征项ti 为整个分类所能提供的信息量多少来衡量该特征项的重要程度,从而决定对该特征项的取舍。某个特征项ti 的信息增益是指有该特征或没有该特征时,为整个分类所能提供的信息量的差别,其中,信息量的多少由熵来衡量。因此,信息增益即不考虑任何特征时文档的熵和考虑该特征后文档的熵的差值:
Gain(ti)=Entropy(S)−Expected Entropy(Sti)={−∑j=1MP(Cj)⋅logP(Cj)}−{P(ti)⋅[−∑j=1MP(Cj|ti)⋅logP(Cj|ti)] +P(ti¯)⋅[−∑j=1MP(Cj|ti¯)⋅logP(Cj|ti¯)]}
其中P(Cj) 表示Cj 类文档在预料中出现的概率,P(ti) 表示语料中包含特征项ti 的文档的概率,P(Cj|ti) 表示文档包含特征项ti 时属于Cj 类的条件概率,P(ti¯) 表示语料中不包含特征项ti 的文档的概率,P(Cj|ti¯) 表示文档不包含特征项ti 时属于Cj 的条件概率,M 表示类别数 - mutual information(互信息法)
-
χ2 统计量
Distributional similarity-based representations
- LSI
- First Propose
- Word2vec
- Doc2Vec
词性标注与隐马尔科夫模型
维特比算法和算法
隐马尔科夫模型的三个基本问题
- 概率计算问题。给定模型
λ=(A,B,π) 和观测序列O=(o1,o2,...,oT) ,计算在模型λ 下观测序列O 出现的概率P(O|λ) - 学习问题.已知观测序列
O=(o1,o2,...,oT) .估计模型λ=(A,B,π) 参数,使得在该模型下观测序列概率P(O|λ) 最大.即用极大似然估计的方法估计参数. - 预测问题,也称为解码(decoding)问题。已知模型
λ=(A,B,π) 和观测序列O=(o1,o2,...,oT) ,求对给定观测序列条件概率P(I|O) 最大的状态序列I=(i1,i2,...,iT) .即给定观测序列,求最有可能的对应的状态序列.
问题1:
前向算法.
定义前向概率:
给定隐马尔科夫模型
输入:隐马尔科夫模型
λ ,观测序列O 输出:观测序列概率
P(O|λ) (1) 初值
α1(i)=πibi(o1),i=1,2,...,N (2) 递推 对t=1,2,…,T-1
αt+1(i)=⎡⎣∑j=1Nαt(j)aji⎤⎦bi(ot+1),i=1,2,...N (3) 终止
P(O|λ)=∑i=1NαT(i) (4)最优路径回溯
后向算法:
定义后向概率:
给定隐马尔科夫模型
输入:隐马尔可夫模型
λ ,观测序列O :输出:观测序列概率
P(O|λ) (1)
βT(i)=1,i=1,2,...,N (2)对
t=T−1,T−2,...,1
βt(i)=∑j=1Naijbj(ot+1)βt+1(j),i=1,2...N (3)
P(O|λ)=∑i=1Nπibi(o1)β1(i)
问题2
Baum-Welch算法(无监督学习方法)
假设给定训练数据只包含
它的参数学习可以由
参数估计问题是HMM面临的第三个问题,即给定一个观察序列
模型的参数是指构成
但实际上,由于HMM中的状态序列Q是观察不到的(隐变量),因此,这种最大似然估计的方法不可行。所幸的是,期望最大化(expectation maximization,EM)算法可以用于含有隐变量的统计模型的参数最大似然估计。其基本思想是,初始时随机地给模型的参数赋值,该复制遵循模型对参数的限制,例如,从某一状态出发的所有转移概率的和为1。给模型参数赋初值以后,得到模型
问题3
维特比算法:
其实就是前向算法的变种形式
输入:隐马尔科夫模型
λ ,观测序列O 输出:最优路径
I∗=(i∗1,i∗2,...,i∗T) (1) 初值
α1(i)=πibi(o1),i=1,2,...,N
ψ1(i)=0
(2) 递推 对t=1,2,…,T-1
αt+1(i)=max1≤j≤N⎡⎣∑j=1Nαt(j)aji⎤⎦bi(ot+1),i=1,2,...N
ψt+1(i)=argmax1≤j≤N⎡⎣∑j=1Nαt(j)aji⎤⎦,i=1,2,...N
(3) 终止
P∗=max1≤i≤NαT(i)
i∗T=argmaxi≤i≤NαT(i)
统计语义分析
PCFG,概率上下文无关文法
三个基本问题
- 给定一个句子
- 给定一个句子
- 给定PCFG G和句子
问题1:
内向算法和外向算法:
内向算法的基本思想是:利用动态规划算法计算非终结符
有递推公式如下:
算法如下:
输入:PCFG G(S)和句子
W=w1w2...wn 输出:
aij(A),1≤i≤j≤n 步1 初始化:
aii(A)=P(A→wi),1≤i≤n 步2 归纳计算:
j=1...n,i=1...n−j ,重复下列计算:
ai(i+j)(A)=∑B,C∑i≤k≤i+j−1P(A→BC)∗aik(B)∗a(k+1)(i+j)(C) 步3 终结:
P(S→w1w2...wn)=a1n(S)
外向算法的基本思想是:
定义外向变量
有如下递推公式:
问题2:
就是将内向算法的递推式取最大
然后用变量