詞性標註器的實現邏輯

2021-09-11 11:28:33 字數 775 閱讀 4607

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...