edu.umass.cs.mallet.base.fst
Class CRFByGISUpdate

java.lang.Object
  extended byedu.umass.cs.mallet.base.fst.Transducer
      extended byedu.umass.cs.mallet.base.fst.CRFByGISUpdate
All Implemented Interfaces:
java.io.Serializable

public class CRFByGISUpdate
extends Transducer
implements java.io.Serializable

See Also:
Serialized Form

Nested Class Summary
 class CRFByGISUpdate.MinimizableCRF
           
static class CRFByGISUpdate.State
           
protected static class CRFByGISUpdate.TransitionIterator
           
 
Nested classes inherited from class edu.umass.cs.mallet.base.fst.Transducer
Transducer.BeamLattice, Transducer.Lattice, Transducer.ViterbiLattice, Transducer.ViterbiPath, Transducer.ViterbiPath_NBest, Transducer.ViterbiPathBeam, Transducer.ViterbiPathBeamB, Transducer.ViterbiPathBeamFB, Transducer.ViterbiPathBeamKL
 
Field Summary
 boolean printGradient
           
 
Fields inherited from class edu.umass.cs.mallet.base.fst.Transducer
INFINITE_COST, inputPipe, outputPipe, ZERO_COST
 
Constructor Summary
CRFByGISUpdate(Alphabet inputAlphabet, Alphabet outputAlphabet)
           
CRFByGISUpdate(Pipe inputPipe, Pipe outputPipe)
           
 
Method Summary
 void addFullyConnectedStates(java.lang.String[] stateNames)
           
 void addFullyConnectedStatesForBiLabels()
           
 void addFullyConnectedStatesForLabels()
           
 void addFullyConnectedStatesForTriLabels()
           
 void addSelfTransitioningStateForAllLabels(java.lang.String name)
           
 void addState(java.lang.String name, double initialCost, double finalCost, java.lang.String[] destinationNames, java.lang.String[] labelNames)
           
 void addState(java.lang.String name, double initialCost, double finalCost, java.lang.String[] destinationNames, java.lang.String[] labelNames, java.lang.String[] weightNames)
           
 void addState(java.lang.String name, double initialCost, double finalCost, java.lang.String[] destinationNames, java.lang.String[] labelNames, java.lang.String[][] weightNames)
           
 void addState(java.lang.String name, java.lang.String[] destinationNames)
           
 void addStatesForBiLabelsConnectedAsIn(InstanceList trainingSet)
          Add states to create a second-order Markov model on labels, adding only those transitions the occur in the given trainingSet.
 void addStatesForHalfLabelsConnectedAsIn(InstanceList trainingSet)
          Add as many states as there are labels, but don't create separate weights for each source-destination pair of states.
 void addStatesForLabelsConnectedAsIn(InstanceList trainingSet)
          Add states to create a first-order Markov model on labels, adding only those transitions the occur in the given trainingSet.
 void addStatesForThreeQuarterLabelsConnectedAsIn(InstanceList trainingSet)
          Add as many states as there are labels, but don't create separate observational-test-weights for each source-destination pair of states---instead have all the incoming transitions to a state share the same observational-feature-test weights.
 void estimate()
           
 void evaluate(TransducerEvaluator eval, InstanceList testing)
          This method is deprecated.
 double getGaussianPriorVariance()
           
 Alphabet getInputAlphabet()
          Create a new CRF sharing Alphabet and other attributes, but possibly having a larger weights array.
 CRFByGISUpdate.MinimizableCRF getMinimizableCRF(InstanceList ilist)
           
 Alphabet getOutputAlphabet()
           
 double getParameter(int sourceStateIndex, int destStateIndex, int featureIndex, double value)
          Only gets the parameter from the first group of parameters.
 double getParametersAbsNorm()
           
 Transducer.State getState(int index)
           
 CRFByGISUpdate.State getState(java.lang.String name)
           
 double getUseHyperbolicPriorSharpness()
           
 double getUseHyperbolicPriorSlope()
           
 SparseVector[] getWeights()
           
 SparseVector getWeights(int weightIndex)
           
 SparseVector getWeights(java.lang.String weightName)
           
 int getWeightsIndex(java.lang.String weightName)
          Increase the size of the weights[] parameters to match (a new, larger) input Alphabet size
 java.lang.String getWeightsName(int weightIndex)
           
 java.util.Iterator initialStateIterator()
           
 boolean isTrainable()
           
 int numStates()
           
 Sequence[] predict(InstanceList testing)
          This method is deprecated.
 void print()
           
 void reset()
           
 void setGaussianPriorVariance(double p)
           
 void setHyperbolicPriorSharpness(double p)
           
 void setHyperbolicPriorSlope(double p)
           
 void setParameter(int sourceStateIndex, int destStateIndex, int featureIndex, double value)
          Only sets the parameter from the first group of parameters.
 void setTrainable(boolean f)
           
 void setUseHyperbolicPrior(boolean f)
           
 void setWeights(int weightsIndex, SparseVector transitionWeights)
           
 void setWeights(SparseVector[] m)
           
 void setWeights(java.lang.String weightName, SparseVector transitionWeights)
           
 void setWeightsDimensionAsIn(InstanceList trainingData)
           
 boolean train(InstanceList ilist)
           
 boolean train(InstanceList ilist, InstanceList validation, InstanceList testing)
           
 boolean train(InstanceList ilist, InstanceList validation, InstanceList testing, TransducerEvaluator eval)
           
 boolean train(InstanceList training, InstanceList validation, InstanceList testing, TransducerEvaluator eval, int numIterations, int numIterationsPerProportion, double[] trainingProportions, Minimizer.ByGISUpdate minimizer)
           
 boolean train(InstanceList ilist, InstanceList validation, InstanceList testing, TransducerEvaluator eval, int numIterations, Minimizer.ByGISUpdate minimizer)
           
 boolean trainWithFeatureInduction(InstanceList trainingData, InstanceList validationData, InstanceList testingData, TransducerEvaluator eval, int numIterations, int numIterationsBetweenFeatureInductions, int numFeatureInductions, int numFeaturesPerFeatureInduction, double trueLabelProbThreshold, boolean clusteredFeatureInduction, double[] trainingProportions, Minimizer.ByGISUpdate minimizer)
           
 void write(java.io.File f)
           
 
Methods inherited from class edu.umass.cs.mallet.base.fst.Transducer
averageTokenAccuracy, averageTokenAccuracy, canIterateAllTransitions, forwardBackward, forwardBackward, forwardBackward, forwardBackward, forwardBackward, forwardBackward, forwardBackward, forwardBackward, forwardBackwardBeam, forwardBackwardBeam, forwardBackwardBeam, forwardBackwardBeam, forwardBackwardBeam, forwardBackwardBeam, forwardBackwardBeam, forwardBackwardBeam, generatePath, getBeamWidth, getInputPipe, getNstatesExpl, getOutputPipe, getViterbiLattice, incIter, isGenerative, pipe, setBeamWidth, setCurIter, setKLeps, setRmin, setUseForwardBackwardBeam, stateIndexOfString, sumNegLogProb, transduce, viterbiPath_NBest, viterbiPath_NBest, viterbiPath, viterbiPath, viterbiPath, viterbiPathBeam, viterbiPathBeam, viterbiPathBeam, viterbiPathBeamB, viterbiPathBeamB, viterbiPathBeamB, viterbiPathBeamB, viterbiPathBeamFB, viterbiPathBeamFB, viterbiPathBeamFB, viterbiPathBeamFB, viterbiPathBeamKL, viterbiPathBeamKL, viterbiPathBeamKL
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

printGradient

public boolean printGradient
Constructor Detail

CRFByGISUpdate

public CRFByGISUpdate(Pipe inputPipe,
                      Pipe outputPipe)

CRFByGISUpdate

public CRFByGISUpdate(Alphabet inputAlphabet,
                      Alphabet outputAlphabet)
Method Detail

getInputAlphabet

public Alphabet getInputAlphabet()
Create a new CRF sharing Alphabet and other attributes, but possibly having a larger weights array.


getOutputAlphabet

public Alphabet getOutputAlphabet()

setUseHyperbolicPrior

public void setUseHyperbolicPrior(boolean f)

setHyperbolicPriorSlope

public void setHyperbolicPriorSlope(double p)

setHyperbolicPriorSharpness

public void setHyperbolicPriorSharpness(double p)

getUseHyperbolicPriorSlope

public double getUseHyperbolicPriorSlope()

getUseHyperbolicPriorSharpness

public double getUseHyperbolicPriorSharpness()

setGaussianPriorVariance

public void setGaussianPriorVariance(double p)

getGaussianPriorVariance

public double getGaussianPriorVariance()

addState

public void addState(java.lang.String name,
                     double initialCost,
                     double finalCost,
                     java.lang.String[] destinationNames,
                     java.lang.String[] labelNames,
                     java.lang.String[][] weightNames)

addState

public void addState(java.lang.String name,
                     double initialCost,
                     double finalCost,
                     java.lang.String[] destinationNames,
                     java.lang.String[] labelNames,
                     java.lang.String[] weightNames)

addState

public void addState(java.lang.String name,
                     double initialCost,
                     double finalCost,
                     java.lang.String[] destinationNames,
                     java.lang.String[] labelNames)

addState

public void addState(java.lang.String name,
                     java.lang.String[] destinationNames)

addFullyConnectedStates

public void addFullyConnectedStates(java.lang.String[] stateNames)

addFullyConnectedStatesForLabels

public void addFullyConnectedStatesForLabels()

addStatesForLabelsConnectedAsIn

public void addStatesForLabelsConnectedAsIn(InstanceList trainingSet)
Add states to create a first-order Markov model on labels, adding only those transitions the occur in the given trainingSet.


addStatesForHalfLabelsConnectedAsIn

public void addStatesForHalfLabelsConnectedAsIn(InstanceList trainingSet)
Add as many states as there are labels, but don't create separate weights for each source-destination pair of states. Instead have all the incoming transitions to a state share the same weights.


addStatesForThreeQuarterLabelsConnectedAsIn

public void addStatesForThreeQuarterLabelsConnectedAsIn(InstanceList trainingSet)
Add as many states as there are labels, but don't create separate observational-test-weights for each source-destination pair of states---instead have all the incoming transitions to a state share the same observational-feature-test weights. However, do create separate default feature for each transition, (which acts as an HMM-style transition probability).


addFullyConnectedStatesForBiLabels

public void addFullyConnectedStatesForBiLabels()

addStatesForBiLabelsConnectedAsIn

public void addStatesForBiLabelsConnectedAsIn(InstanceList trainingSet)
Add states to create a second-order Markov model on labels, adding only those transitions the occur in the given trainingSet.


addFullyConnectedStatesForTriLabels

public void addFullyConnectedStatesForTriLabels()

addSelfTransitioningStateForAllLabels

public void addSelfTransitioningStateForAllLabels(java.lang.String name)

getState

public CRFByGISUpdate.State getState(java.lang.String name)

setWeights

public void setWeights(int weightsIndex,
                       SparseVector transitionWeights)

setWeights

public void setWeights(java.lang.String weightName,
                       SparseVector transitionWeights)

getWeightsName

public java.lang.String getWeightsName(int weightIndex)

getWeights

public SparseVector getWeights(java.lang.String weightName)

getWeights

public SparseVector getWeights(int weightIndex)

getWeights

public SparseVector[] getWeights()

setWeights

public void setWeights(SparseVector[] m)

setWeightsDimensionAsIn

public void setWeightsDimensionAsIn(InstanceList trainingData)

getWeightsIndex

public int getWeightsIndex(java.lang.String weightName)
Increase the size of the weights[] parameters to match (a new, larger) input Alphabet size


numStates

public int numStates()
Specified by:
numStates in class Transducer

getState

public Transducer.State getState(int index)
Specified by:
getState in class Transducer

initialStateIterator

public java.util.Iterator initialStateIterator()
Specified by:
initialStateIterator in class Transducer

isTrainable

public boolean isTrainable()
Overrides:
isTrainable in class Transducer

setTrainable

public void setTrainable(boolean f)
Overrides:
setTrainable in class Transducer

getParametersAbsNorm

public double getParametersAbsNorm()

setParameter

public void setParameter(int sourceStateIndex,
                         int destStateIndex,
                         int featureIndex,
                         double value)
Only sets the parameter from the first group of parameters.


getParameter

public double getParameter(int sourceStateIndex,
                           int destStateIndex,
                           int featureIndex,
                           double value)
Only gets the parameter from the first group of parameters.


reset

public void reset()

estimate

public void estimate()

print

public void print()
Overrides:
print in class Transducer

train

public boolean train(InstanceList ilist)
Overrides:
train in class Transducer

train

public boolean train(InstanceList ilist,
                     InstanceList validation,
                     InstanceList testing)

train

public boolean train(InstanceList ilist,
                     InstanceList validation,
                     InstanceList testing,
                     TransducerEvaluator eval)

train

public boolean train(InstanceList ilist,
                     InstanceList validation,
                     InstanceList testing,
                     TransducerEvaluator eval,
                     int numIterations,
                     Minimizer.ByGISUpdate minimizer)

train

public boolean train(InstanceList training,
                     InstanceList validation,
                     InstanceList testing,
                     TransducerEvaluator eval,
                     int numIterations,
                     int numIterationsPerProportion,
                     double[] trainingProportions,
                     Minimizer.ByGISUpdate minimizer)

trainWithFeatureInduction

public boolean trainWithFeatureInduction(InstanceList trainingData,
                                         InstanceList validationData,
                                         InstanceList testingData,
                                         TransducerEvaluator eval,
                                         int numIterations,
                                         int numIterationsBetweenFeatureInductions,
                                         int numFeatureInductions,
                                         int numFeaturesPerFeatureInduction,
                                         double trueLabelProbThreshold,
                                         boolean clusteredFeatureInduction,
                                         double[] trainingProportions,
                                         Minimizer.ByGISUpdate minimizer)

predict

public Sequence[] predict(InstanceList testing)
This method is deprecated.


evaluate

public void evaluate(TransducerEvaluator eval,
                     InstanceList testing)
This method is deprecated.


write

public void write(java.io.File f)

getMinimizableCRF

public CRFByGISUpdate.MinimizableCRF getMinimizableCRF(InstanceList ilist)