隐马尔可夫模型是一种用于建模序列数据的统计模型,包含 隐含状态(不可见)和 观测序列(可见)。其核心由以下三部分组成:
核心问题:
中文分词的目的是将连续的字符划分为词语。HMM通过将 字的位置标签(B、M、E、S)作为隐含状态,字作为观测值,实现分词。
初始概率(π):
转移概率(A):
| | B | M | E | S |
|—-|——-|——-|——-|——-|
| B | 0 | 0.7 | 0.3 | 0 |
| M | 0 | 0.4 | 0.6 | 0 |
| E | 0.4 | 0 | 0 | 0.6 |
| S | 0.3 | 0 | 0 | 0.7 |
发射概率(B):
| 状态 | 我 | 经 | 常 | 散 | 步 |
|———|——-|——-|——-|——-|——-|
| B | 0 | 0.8 | 0.1 | 0.7 | 0.2 |
| M | 0 | 0.1 | 0.8 | 0.1 | 0 |
| E | 0 | 0.1 | 0.7 | 0 | 0.6 |
| S | 0.9 | 0 | 0 | 0 | 0 |
初始化:
递推计算(t=2到t=5):
终止与回溯:
词性标注是为每个词语赋予词性标签(如名词、动词)。此处标签为隐含状态,词语为观测值。
初始概率(π):
转移概率(A):
| | PRP | VBZ | NNS |
|———-|———|———|———|
| PRP| 0 | 0.8 | 0.2 |
| VBZ| 0.3 | 0 | 0.7 |
| NNS| 0 | 0 | 0 |
发射概率(B):
| 状态 | She | loves | cats |
|———|———|———-|———|
| PRP | 0.9 | 0 | 0 |
| VBZ | 0 | 0.6 | 0 |
| NNS | 0 | 0 | 0.8 |
初始化(t=1,“She”):
[
\delta_1(PRP) = 0.7 \times 0.9 = 0.63
]
递推(t=2,“loves”):
[
\delta2(VBZ) = \delta_1(PRP) \cdot a{PRP \to VBZ} \cdot b_{VBZ}(loves) = 0.63 \times 0.8 \times 0.6 = 0.3024
]
最终路径回溯:PRP → VBZ → NNS。
HMM通过 维特比算法 解码最可能的隐含状态序列,广泛应用于分词和词性标注:
改进方向:HMM的局限性在于假设当前状态仅依赖前一状态(一阶马尔可夫性)。现代方法如CRF或深度学习模型(如BiLSTM)能捕捉更长距离依赖。