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