package iitb.CRF;
/**
*
* @author Sunita Sarawagi
*
*/
public class NestedCRF extends CRF {
FeatureGeneratorNested featureGenNested;
transient NestedViterbi nestedViterbi;
public NestedCRF(int numLabels, FeatureGeneratorNested fgen, String arg) {
super(numLabels,fgen,arg);
featureGenNested = fgen;
nestedViterbi = new NestedViterbi(this,1);
}
public NestedCRF(int numLabels, FeatureGeneratorNested fgen, java.util.Properties configOptions) {
super(numLabels,fgen,configOptions);
featureGenNested = fgen;
nestedViterbi = new NestedViterbi(this,1);
}
protected Trainer getTrainer() {
if (params.trainerType.startsWith("SegmentCollins"))
return new NestedCollinsTrainer(params);
return new NestedTrainer(params);
}
public Viterbi getViterbi(int beamsize) {
return new NestedViterbi(this,beamsize);
}
public double apply(DataSequence dataSeq) {
return apply((SegmentDataSequence)dataSeq);
}
public double apply(SegmentDataSequence dataSeq) {
if (nestedViterbi==null)
nestedViterbi = new NestedViterbi(this,1);
if (params.debugLvl > 2)
Util.printDbg("NestedCRF: Applying on " + dataSeq);
return nestedViterbi.bestLabelSequence(dataSeq,lambda);
}
};