edu.umass.cs.mallet.base.fst
Class CRF
java.lang.Object
edu.umass.cs.mallet.base.fst.Transducer
edu.umass.cs.mallet.base.fst.CRF
- All Implemented Interfaces:
- java.io.Serializable
- public class CRF
- extends Transducer
- implements java.io.Serializable
- See Also:
- Serialized Form
Method Summary |
void |
addFullyConnectedStates(java.lang.String[] stateNames)
|
void |
addFullyConnectedStatesForBiLabels()
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 |
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,
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 |
estimate()
|
int |
getDefaultFeatureIndex()
|
double |
getGaussianPriorVariance()
|
Alphabet |
getInputAlphabet()
|
CRF.MinimizableCRF |
getMinimizableCRF(InstanceList ilist)
|
Alphabet |
getOutputAlphabet()
|
double |
getParameter(int sourceStateIndex,
int destStateIndex,
int featureIndex,
double value)
|
Transducer.State |
getState(int index)
|
double |
getUseHyperbolicPriorSharpness()
|
double |
getUseHyperbolicPriorSlope()
|
DenseVector |
getWeights(int weightIndex)
|
DenseVector |
getWeights(java.lang.String weightName)
|
int |
getWeightsIndex(java.lang.String weightName)
|
java.lang.String |
getWeightsName(int weightIndex)
|
void |
growWeightsDimensionToInputAlphabet()
Increase the size of the weights[] parameters to match (a new, larger)
input Alphabet size |
java.util.Iterator |
initialStateIterator()
|
boolean |
isTrainable()
|
int |
numStates()
|
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)
|
void |
setTrainable(boolean f)
|
void |
setUseHyperbolicPrior(boolean f)
|
void |
setWeights(int weightsIndex,
DenseVector transitionWeights)
|
void |
setWeights(java.lang.String weightName,
DenseVector transitionWeights)
|
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 ilist,
InstanceList validation,
InstanceList testing,
TransducerEvaluator eval,
int numIterations)
|
boolean |
train(InstanceList training,
InstanceList validation,
InstanceList testing,
TransducerEvaluator eval,
int numIterations,
int numIterationsPerProportion,
double[] trainingProportions)
|
boolean |
trainWithFeatureInduction(InstanceList trainingData,
InstanceList validationData,
InstanceList testingData,
TransducerEvaluator eval,
int numIterations,
int numIterationsBetweenFeatureInductions,
int numFeatureInductions,
int numFeaturesPerFeatureInduction,
double trueLabelProbThreshold,
boolean clusteredFeatureInduction,
double[] trainingProportions)
|
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 |
printGradient
public boolean printGradient
CRF
public CRF(Pipe inputPipe,
Pipe outputPipe)
CRF
public CRF(Alphabet inputAlphabet,
Alphabet outputAlphabet)
getInputAlphabet
public Alphabet getInputAlphabet()
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()
getDefaultFeatureIndex
public int getDefaultFeatureIndex()
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.
addFullyConnectedStatesForBiLabels
public void addFullyConnectedStatesForBiLabels()
- 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).
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)
setWeights
public void setWeights(int weightsIndex,
DenseVector transitionWeights)
setWeights
public void setWeights(java.lang.String weightName,
DenseVector transitionWeights)
getWeightsName
public java.lang.String getWeightsName(int weightIndex)
getWeights
public DenseVector getWeights(java.lang.String weightName)
getWeights
public DenseVector getWeights(int weightIndex)
growWeightsDimensionToInputAlphabet
public void growWeightsDimensionToInputAlphabet()
- Increase the size of the weights[] parameters to match (a new, larger)
input Alphabet size
getWeightsIndex
public int getWeightsIndex(java.lang.String weightName)
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
setParameter
public void setParameter(int sourceStateIndex,
int destStateIndex,
int featureIndex,
double value)
getParameter
public double getParameter(int sourceStateIndex,
int destStateIndex,
int featureIndex,
double value)
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)
train
public boolean train(InstanceList training,
InstanceList validation,
InstanceList testing,
TransducerEvaluator eval,
int numIterations,
int numIterationsPerProportion,
double[] trainingProportions)
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)
write
public void write(java.io.File f)
getMinimizableCRF
public CRF.MinimizableCRF getMinimizableCRF(InstanceList ilist)