算法过程大致如下:
初始化(t=0):
初始state(入口处)的Token的s=0
其他state的Token的s=-inf
执行过程(t>0):
复制若干数目Token,并将其传递至所有与该state连接的其他state中,并且对其值做如下操作:
在每个state中,比较所有token,留下分值最高的token,抛弃其他所有token(Viterbi剪枝过程)
终态(t=T):
比较所有终态(final state)的Token,保留其中分数最高的token
模型的每个状态都携带了一个令牌(token)。在当前时刻,首先将上一个时刻的某个状态的携带的令牌传递到当前时刻的同这个状态相连接的状态,同时将令牌得分根据当前的新状态增加pij+dj(t),对于上一个时刻每个状态携带的令牌都进行这样的操作,那么当前时刻每个状态内部暂存了多个令牌得分,选择其中最小的代价得分,保留下来作为令牌得分,其他的全部剔除。完成上面步骤,当前时刻的每个状态的令牌又只剩下了一个,可以进行下个时刻的令牌得分计算了。在这里令牌和令牌得分是对应的。
https://blog.csdn.net/JosephPai/article/details/80522367
https://blog.csdn.net/qq_37991715/article/details/100122319#11_token_passing_model_7