我正致力于实体的集体分类并使用 用于序列标记的CRFClassifier类。我要求一个 某些特征F_i不应与某些类别标签C_i一起考虑。
我已在CRFClassifier(Stanford CoreNLP)的属性文件中指定了各种标志,因此NERFeature工厂会生成这些功能。在内部,我想 它生成总L * N二进制特征函数(指标函数),其中,L = #classLabels和N =#特征。在这个交叉产品的总功能中,我不想考虑几对。实现这一目标的最佳方法是什么?
注意:我认为L * N函数是由 - getObjectiveFunction at生成的 以下位置。
CRFClassifier {
protected double[] trainWeights(int[][][][] data, .......) {
CRFLogConditionalObjectiveFunction func =
getObjectiveFunction(data, labels);
}
}
EHat protected variable in Class CRFLogConditionalObjectiveFunction
contains the empirical counts for these L*N features
对于我在分类器中不需要的组合, 是否可以将经验计数显式设置为0 在我调用Minimizer之前组合(在EHat变量中)?是不是说我的模型中没有这种组合?
Mallet是否提供了这样做的方法?