使用viterbi算法通过网格图计算最佳路径的库。
viterbi-trellis的Python项目详细描述
使用Viterbi算法通过网格图计算最佳路径的库
The source for this project is available here
这个库提供了类ViterbiTrellis目前它只能做一件事: 通过网格图计算最佳路径。用户必须提供三个输入:
- 网格层结构,指定为列表列表。每个内部列表对应于 单层格架。外部列表中的第一项是起始层,而 最后一项是最后一层每个最里面的项都是一个表示状态的对象。这个 可以是原始类型(如int),也可以是元组或用户定义的类。
- 一个cost函数给出处于给定状态的代价。
- 一个转换函数,给出在两个特定状态之间转换的代价。
通过全局最小化状态代价和通过 维特比算法。
示例用法:
from viterbi_trellis import ViterbiTrellis v = ViterbiTrellis([[2, 6, 4], [4, 6], [0, 2, 6]], lambda x: x / 2.0, lambda x, y: abs(y - x)) best_path = v.viterbi_best_path()
最佳路径中的返回值是最佳路径中状态的索引列表:
>>> best_path [2, 0, 1]
此结果对应于输入网格中标记为[4,4,2]的状态