词性标注器的实现逻辑

1.背景介绍

首先,在noisy-channel model中,我们通过贝叶斯定义可以得到以下规律:
在词性标注里:
s 表示文本
t:tag 表示词性
那么有: P(t|s) ∝ P(s|t) * P(t)

2.训练数据准备

OK,背景有了,然后我们可以准备一些训练数据:

  1. 我/代词 今天/时间 上课/动词
  2. 明天/时间 天气/名词 很/副词 好/形容词
  3. 。。。。。

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设置为单词的默认词性。

你可能感兴趣的:(自然语言处理)