词性标注的数学描述

将词性标注转为数学描述问题。此文参考 NLP --- 词性标注

词性标注转数学描述

词性标注任务描述,已知句子S的单词序列 \(W\)\((w_1,w_2,...,w_n)\),则该句子对应的词性序列\(T=(t_1,t_2,...,t_n)\)便为隐藏的状态序列。现在假设\(W\)为分词后的句子序列,\(T\)\(W\)的某个可能的词性标注序列,\(T^*\)为最终的标注结果,即概率最大的词性序列,则有

\[T^* = argmaxP(T|W) \]

根据贝叶斯定理

\[P(B|A)=\frac{P(A|B)P(B)}{P(A)} \]

则有

\[T^* = argmaxP(T|W)=argmax\frac{P(W|T)P(T)}{P(W)} \]

对于一个给定的词序列 \(W\),其词序列的概率\(P(W)\)对于任意一个标注的序列都是相同的,故可以将上式的\(P(W)\)忽略,变为下式

\[T^* = argmaxP(T|W)=argmaxP(W|T)P(T) \]

我们对上式右侧计算进行说明

\[P(W|T)P(T)=P((w_1,w_2,...,w_n)|(t_1,t_2,...,t_n))p((t_1,t_2,...,t_n)) \]

针对 \(P(W|T)=P((w_1,w_2,...,w_n)|(t_1,t_2,...,t_n))\),我们利用马尔科夫假设,每个单词的词性仅与该单词相关,则

\[P(W|T)=P((w_1,w_2,...,w_n)|(t_1,t_2,...,t_n))=P(w_1|t_1)P(w_2|t_2)...P(w_n|t_n)=\prod_{i=1}^{n}P(w_i|t_i) \]

针对 \(p((t_1,t_2,...,t_n))\)利用链式法则及Bigram语言模型可以转换为下式

\[p((t_1,t_2,...,t_n))=P(t_1)P(t_2|t_1)P(t_3|t_2)...P(t_n|t_{n-1})=P(t_1)\prod_{i=2}^{n}P(t_i|t_{i-1}) \]

整合上述两式与求 \(T^*\)整合

\[T^* = argmaxP(T|W)=argmaxP(W|T)P(T)=\prod_{i=1}^{n}P(w_i|t_i)P(t_1)\prod_{i=2}^{n}P(t_i|t_{i-1}) \]

其中 \(P(w_i|t_i)\)解释为词性为\(t_i\)的词\(w_i\)的概率,\(P(t_i|t_{i-1})\)解释为词性\(t_{i-1}\)到词性\(t_i\)转移的概率。这两个概率的统计可以基于语料采用最大似然估计来统计得到

\[P(w_i|t_i)=\frac{C(w_i,t_i)}{C(t_i))} \\ P(t_i|t_{i-1})=\frac{C(t_i,t_{i-1})}{C(t_{i-1}))} \]

其中 \(C(w_i,t_i)\)指语料库中词\(w_i\)词性为\(t_i\)的出现次数,\(C(t_i)\)表示词性\(t_i\)出现的次数;\(C(t_i,t_{i-1})\)则为相邻两个词性\(t_{i-1},t_i\)出现的次数(考虑先后顺序)。

我们知道,在概率的计算中经常会出现underflow问题,所以一般我们都会对概率计算的两端取对数处理,上式转换为

\[T^* = argmaxlogP(T|W)=argmaxlogP(W|T)P(T)=argmaxlog\prod_{i=1}^{n}P(w_i|t_i)P(t_1)\prod_{i=2}^{n}P(t_i|t_{i-1})=argmax(\sum_{i=1}^{n}logP(w_i|t_i)+logP(t_1)+\sum_{i=2}^{n}logP(t_i|t_{i-1})) \]

\[A=P(w_i|t_i) \\ \pi=P(t_1) \\ B=P(t_i|t_{i-1}) \]

上述的表述便于后续我们对维特比算法的描述,其中A是词性为 \(t_i\)的词\(w_i\)的概率,\(\pi\)可以解释为开头的词性概率,B可解释为为词性\(t_{i-1}\)到词性\(t_i\)转移的概率。

posted @ 2020-07-18 11:12  yhzhou  阅读(250)  评论(0编辑  收藏  举报