com.hankcs.hanlp.algoritm
类 Viterbi

java.lang.Object
  继承者 com.hankcs.hanlp.algoritm.Viterbi

public class Viterbi
extends Object

维特比算法

作者:
hankcs

构造方法摘要
Viterbi()
           
 
方法摘要
static int[] compute(int[] obs, int[] states, double[] start_p, double[][] trans_p, double[][] emit_p)
          求解HMM模型,所有概率请提前取对数
static void compute(List<Vertex> vertexList, TransformMatrixDictionary<Nature> transformMatrixDictionary)
          特化版的求解HMM模型
static
<E extends Enum<E>>
List<E>
computeEnum(List<EnumItem<E>> roleTagList, TransformMatrixDictionary<E> transformMatrixDictionary)
          标准版的Viterbi算法,查准率高,效率稍低
static
<E extends Enum<E>>
List<E>
computeEnumSimply(List<EnumItem<E>> roleTagList, TransformMatrixDictionary<E> transformMatrixDictionary)
          仅仅利用了转移矩阵的“维特比”算法
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Viterbi

public Viterbi()
方法详细信息

compute

public static int[] compute(int[] obs,
                            int[] states,
                            double[] start_p,
                            double[][] trans_p,
                            double[][] emit_p)
求解HMM模型,所有概率请提前取对数

参数:
obs - 观测序列
states - 隐状态
start_p - 初始概率(隐状态)
trans_p - 转移概率(隐状态)
emit_p - 发射概率 (隐状态表现为显状态的概率)
返回:
最可能的序列

compute

public static void compute(List<Vertex> vertexList,
                           TransformMatrixDictionary<Nature> transformMatrixDictionary)
特化版的求解HMM模型

参数:
vertexList - 包含Vertex.B节点的路径
transformMatrixDictionary - 词典对应的转移矩阵

computeEnum

public static <E extends Enum<E>> List<E> computeEnum(List<EnumItem<E>> roleTagList,
                                                      TransformMatrixDictionary<E> transformMatrixDictionary)
标准版的Viterbi算法,查准率高,效率稍低

类型参数:
E - EnumItem的具体类型
参数:
roleTagList - 观测序列
transformMatrixDictionary - 转移矩阵
返回:
预测结果

computeEnumSimply

public static <E extends Enum<E>> List<E> computeEnumSimply(List<EnumItem<E>> roleTagList,
                                                            TransformMatrixDictionary<E> transformMatrixDictionary)
仅仅利用了转移矩阵的“维特比”算法

类型参数:
E - EnumItem的具体类型
参数:
roleTagList - 观测序列
transformMatrixDictionary - 转移矩阵
返回:
预测结果


Copyright © 2014–2015 码农场. All rights reserved.