自然語言處理複習彙總(南京大學)
標籤(空格分隔): 自然語言處理
參考書籍:統計自然語言處理–宗成慶
該文檔用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:
就是將內向算法的遞推式取最大
然後用變量