Linxii's Blog
NLP课程学习Blur image

1.隐马尔可夫模型#

  隐马尔可夫模型主要解决三类问题:

  1. 评估问题:给定模型参数和观察序列,计算该观察序列的概率。
  2. 解码/预测问题:给定模型参数和观察序列,找到最可能的状态序列。
  3. 学习问题:给定观察序列,估计模型参数。

1.1前向算法#

  用来解决评估问题,计算给定模型参数和观察序列的概率。联合概率可以表示为:

p(x,y)=p(y)p(xy)=p(y1)t=2Tp(ytyt1)t=1Tp(xtyt)p(x,y)=p(y)p(x|y) = p(y_{1})\prod_{t=2}^{T} p(y_t|y_{t-1})\prod_{t=1}^{T}p(x_t|y_t)

  其中,p(y1)p(y_{1})是初始状态的概率,t=2Tp(ytyt1)\prod_{t=2}^{T} p(y_t|y_{t-1})是状态转移概率的乘积,t=1Tp(xtyt)\prod_{t=1}^{T}p(x_t|y_t)是观察概率的乘积。

  就中文分词任务而言,yty_{t}代表BMES标签中的一个标签,xtx_{t}代表中文的一个字。

1.2 维特比算法#

  用来解决解码/预测问题,找到给定模型参数和观察序列的最可能的状态序列。维特比算法通过动态规划的方法,计算每个时间步的最优路径概率,并记录路径以便回溯。

  对于[湿度为1、湿度为2、湿度为3]、[晴天、雨天、多云]的例子,维特比算法会计算每个时间步的最优路径概率,并最终找到最可能的天气序列。

NLP课程学习
https://linxii-blog.tyuou2.workers.dev/blog/nlp-course
Author 林夕夕
Published at March 24, 2026
Comment seems to stuck. Try to refresh?✨