← 返回题库
初级

第11章 条件随机场 - 实现前向-后向算法

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
import numpy as np

def forward_algorithm(transition_matrix, emission_matrix, start_prob, observations):
    num_states = len(start_prob)
    seq_len = len(observations)
    alpha = np.zeros((seq_len, num_states))
    
    alpha[0] = start_prob * emission_matrix[:, observations[0]]
    
    for t in range(1, seq_len):
        for s in range(num_states):
            alpha[t, s] = np.sum(alpha[t-1] * transition_matrix[:, s]) * emission_matrix[s, observations[t]]
    
    return alpha, np.sum(alpha[-1])

def backward_algorithm(transition_matrix, emission_matrix, end_prob, observations):
    num_states = len(end_prob)
    seq_len = len(observations)
    beta = np.zeros((seq_len, num_states))
    
    beta[-1] = end_prob
    
    for t in range(seq_len - 2, -1, -1):
        for s in range(num_states):
            beta[t, s] = np.sum(transition_matrix[s, :] * emission_matrix[:, observations[t+1]] * beta[t+1])
    
    return beta
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码