1.背景介紹
首先,在noisy-channel model中,我們通過貝葉斯定義可以得到以下規律:
在詞性標註裡:
s 表示文字
t:tag 表示詞性
那麼有: p(t|s) ∝ p(s|t) * p(t)
2.訓練資料準備
ok,背景有了,然後我們可以準備一些訓練資料:
我/代詞 今天/時間 上課/動詞
明天/時間 天氣/名詞 很/副詞 好/形容詞
。。。。。
3.模型訓練
通過訓練資料,我們可以計算出以下概率:
p(w|t):出現某個詞性時,出現某個單詞的概率
p(t):出現某個詞性的概率
p(t|t):出現某個詞性時,再次出現某個詞性的概率
例如:在上述的測試資料中
p(今天|時間) = 1/2
p(時間) = 2/7 p(名詞) = 1/7
p(時間|代詞) = 1 (樣本只有乙個)
我們需要得到的模型,就是p(t|s),即知道某個文字的詞性是什麼。由貝葉斯定義可推得:argmax p(t|s) = argmax p(s|t) * p(t)
將句子s分割成單詞w,可得: argmax ∏ p(w_i|t_i) p(t1) p(t2|t1) p(t3|t1)
然後通過前面部分得到的概率資料,可以算出p(t|s)的值,然後將最大概率的tag設定為單詞的預設詞性。
詞性標註的詞性說明
1.cc coordinating conjunction 連線詞 2.cd cardinal number 基數詞 3.dt determiner 限定詞 如this,that,these,those,such,不定限定詞 no,some,any,each,every,enough,either,...
序列模型實現詞性標註
今天我們來看看 nlp 中乙個很重要且基本的問題 pos。pos part of speech tagging,即詞性標註,這是一種序列標註問題,就是輸入乙個句子,輸出每個詞在這句話中的詞性是什麼。例如,我喜歡吃酸辣的熱狗 這句話中,我 和 熱狗 是名詞,喜歡 和 吃 是動詞,酸辣的 是個形容詞。詞...
詞性標註維特比演算法實現
基於前幾篇文章對維特比演算法的說明,此文對維特比演算法進行實現,並基於維特比演算法實現給定語句的詞性標註。關於 pi,a,b 的說明參考文章詞性標註語料預處理實戰,維特比相關演算法說明參考詞性標註維特比演算法介紹 def log v if v 0 return np.log v 0.000001 r...