更新時(shí)間:2023-02-03 來(lái)源:黑馬程序員 瀏覽量:
在NLP領(lǐng)域, HMM用來(lái)解決文本序列標(biāo)注問(wèn)題. 如分詞, 詞性標(biāo)注, 命名實(shí)體識(shí)別都可以看作是序列標(biāo)注問(wèn)題。同HMM一樣, CRF一般也以文本序列數(shù)據(jù)為輸入,
以該序列對(duì)應(yīng)的隱含序列為輸出。
HMM模型
HMM模型表示為: lambda = HMM(A, B, pi), 其中A, B, pi都是模型的參數(shù), 分別稱(chēng)作: 轉(zhuǎn)移概率矩陣, 發(fā)射概率矩陣和初始概率矩陣.
接著, 我們開(kāi)始訓(xùn)練HMM模型, 語(yǔ)料就是事先準(zhǔn)備好的一定數(shù)量的觀(guān)測(cè)序列及其對(duì)應(yīng)的隱含序列, 通過(guò)極大似然估計(jì)求得一組參數(shù), 使由觀(guān)測(cè)序列到對(duì)應(yīng)隱含序列的概率最大。
在訓(xùn)練過(guò)程中, 為了簡(jiǎn)化計(jì)算, 馬爾可夫提出一種假設(shè): 隱含序列中每個(gè)單元的可能性只與上一個(gè)單元有關(guān). 這個(gè)假設(shè)就是著名的隱含假設(shè).
訓(xùn)練后, 我們就得到了具備預(yù)測(cè)能力的新模型: lambda = HMM(A, B, pi), 其中的模型參數(shù)已經(jīng)改變。
之后給定輸入序列(x1, x2, ..., xn), 經(jīng)過(guò)模型計(jì)算lambda(x1, x2, ..., xn)得到對(duì)應(yīng)隱含序列的條件概率分布。
最后, 使用維特比算法從隱含序列的條件概率分布中找出概率最大的一條序列路徑就是我們需要的隱含序列: (y1, y2, ..., yn)。
CRF模型
首先, CRF模型表示為: lambda = CRF(w1, w2, ..., wn), 其中w1到wn是模型參數(shù).
接著, 我們開(kāi)始訓(xùn)練CRF模型, 語(yǔ)料同樣是事先準(zhǔn)備好的一定數(shù)量的觀(guān)測(cè)序列及其對(duì)應(yīng)的隱含序列.與此同時(shí)我們還需要做人工特征工程, 然后通過(guò)不斷訓(xùn)練求得一組參數(shù), 使由觀(guān)測(cè)序列到對(duì)應(yīng)隱含序列的概率最大.
訓(xùn)練后, 我們就得到了具備預(yù)測(cè)能力的新模型: lambda = CRF(w1, w2, ..., wn), 其中的模型參數(shù)已經(jīng)改變.之后給定輸入序列(x1, x2, ..., xn), 經(jīng)過(guò)模型計(jì)算lambda(x1, x2, ..., xn)得到對(duì)應(yīng)隱含序列的條件概率分布.
最后, 還是使用維特比算法從隱含序列的條件概率分布中找出概率最大的一條序列路徑就是我們需要的隱含序列: (y1, y2, ..., yn).
HMM與CRF模型之間差異
HMM模型存在隱馬假設(shè), 而CRF不存在, 因此HMM的計(jì)算速度要比CRF模型快很多, 適用于對(duì)預(yù)測(cè)性能要求較高的場(chǎng)合。同樣因?yàn)殡[馬假設(shè), 當(dāng)預(yù)測(cè)問(wèn)題中隱含序列單元并不是只與上一個(gè)單元有關(guān)時(shí), HMM的準(zhǔn)確率會(huì)大大降低, 而CRF不受這樣限制, 準(zhǔn)確率明顯高于HMM。