/** BSegmentCRF.java * Created on Apr 14, 2005 * * @author Sunita Sarawagi * @since 1.2 * @version 1.3 * * BSegmentCRF (A significantly faster version of Semi-CRFs that employs a compact feature representation) * for fast training and inference of semi-Markov models. */ package iitb.BSegmentCRF; import gnu.trove.map.hash.TIntDoubleHashMap; import iitb.CRF.DataSequence; import iitb.CRF.SegmentCRF; import iitb.CRF.Trainer; import iitb.CRF.Viterbi; import java.util.Properties; public class BSegmentCRF extends SegmentCRF { /** * */ private static final long serialVersionUID = 655531342585250258L; BFeatureGenerator bfgen; /** * @param numLabels * @param fgen * @param arg */ public BSegmentCRF(int numLabels, BFeatureGenerator fgen, String arg) { super(numLabels, fgen, arg); bfgen = fgen; } /** * @param numLabels * @param fgen * @param configOptions */ public BSegmentCRF(int numLabels, BFeatureGenerator fgen, Properties configOptions) { super(numLabels, fgen, configOptions); bfgen = fgen; } protected Trainer getTrainer() { Trainer thisTrainer = dynamicallyLoadedTrainer(); if (thisTrainer != null) return thisTrainer; return new BSegmentTrainer(params); } public Viterbi getViterbi(int beamsize) { return params.miscOptions.getProperty("segmentViterbi", "false").equals("true")? super.getViterbi(beamsize):new BSegmentViterbi(this,numY,beamsize); } public double segmentMarginalProbabilities(DataSequence dataSequence, TIntDoubleHashMap segmentMarginals[][], TIntDoubleHashMap edgeMarginals[][][]) { System.err.println("Not yet implemented for this CRF--use SegmentCRF"); System.exit(-1); return 0; } }