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

java.lang.Object
  extended byedu.umass.cs.mallet.base.fst.Transducer
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
CRF, CRF2, CRF3, CRF4, CRFByGISUpdate, FeatureTransducer, HMM

public abstract class Transducer
extends java.lang.Object
implements java.io.Serializable

See Also:
Serialized Form

Nested Class Summary
 class Transducer.BeamLattice
           
 class Transducer.Lattice
           
static class Transducer.State
           
static class Transducer.TransitionIterator
           
 class Transducer.ViterbiLattice
           
 class Transducer.ViterbiPath
           
 class Transducer.ViterbiPath_NBest
           
 class Transducer.ViterbiPathBeam
           
 class Transducer.ViterbiPathBeamB
           
 class Transducer.ViterbiPathBeamFB
           
 class Transducer.ViterbiPathBeamKL
           
 
Field Summary
static double INFINITE_COST
           
protected  Pipe inputPipe
          A pipe that should produce a Sequence in the "data" slot, (and possibly one in the "target" slot also
protected  Pipe outputPipe
          A pipe that should expect a ViterbiPath in the "target" slot, and should produce something printable in the "source" slot that indicates the results of transduction.
static double ZERO_COST
           
 
Constructor Summary
Transducer()
           
 
Method Summary
 double averageTokenAccuracy(InstanceList ilist)
           
 double averageTokenAccuracy(InstanceList ilist, java.lang.String fileName)
           
 boolean canIterateAllTransitions()
           
 Transducer.Lattice forwardBackward(Sequence inputSequence)
           
 Transducer.Lattice forwardBackward(Sequence inputSequence, boolean increment)
           
 Transducer.Lattice forwardBackward(Sequence inputSequence, Sequence outputSequence)
           
 Transducer.Lattice forwardBackward(Sequence inputSequence, Sequence outputSequence, boolean increment)
           
 Transducer.Lattice forwardBackward(Sequence inputSequence, Sequence outputSequence, boolean increment, boolean saveXis, LabelAlphabet outputAlphabet)
           
 Transducer.Lattice forwardBackward(Sequence inputSequence, Sequence outputSequence, boolean increment, LabelAlphabet outputAlphabet)
           
 Transducer.Lattice forwardBackward(Sequence inputSequence, Sequence outputSequence, int[] constraints)
           
 Transducer.Lattice forwardBackward(Sequence inputSequence, Sequence outputSequence, Segment requiredSegment, Sequence constrainedSequence)
          Create constrained lattice such that all paths pass through the the labeling of requiredSegment as indicated by constrainedSequence
 Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence)
           
 Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence, boolean increment)
           
 Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence, Sequence outputSequence)
           
 Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence, Sequence outputSequence, boolean increment)
           
 Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence, Sequence outputSequence, boolean increment, boolean saveXis, LabelAlphabet outputAlphabet)
           
 Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence, Sequence outputSequence, boolean increment, LabelAlphabet outputAlphabet)
           
 Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence, Sequence outputSequence, int[] constraints)
           
 Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence, Sequence outputSequence, Segment requiredSegment, Sequence constrainedSequence)
          Create constrained lattice such that all paths pass through the the labeling of requiredSegment as indicated by constrainedSequence
 SequencePairAlignment generatePath()
           
 int getBeamWidth()
           
 Pipe getInputPipe()
           
 double[] getNstatesExpl()
           
 Pipe getOutputPipe()
           
abstract  Transducer.State getState(int index)
           
 Transducer.ViterbiLattice getViterbiLattice(Sequence input, Sequence output, int cacheSize)
           
 void incIter()
           
abstract  java.util.Iterator initialStateIterator()
           
 boolean isGenerative()
           
 boolean isTrainable()
           
abstract  int numStates()
           
 Instance pipe(Instance carrier)
          We aren't really a Pipe subclass, but this method works like Pipes' do.
 void print()
           
 void setBeamWidth(int beamWidth)
           
 void setCurIter(int curIter)
           
 void setKLeps(double KLeps)
           
 void setRmin(double Rmin)
           
 void setTrainable(boolean f)
           
 void setUseForwardBackwardBeam(boolean state)
           
 int stateIndexOfString(java.lang.String s)
           
static double sumNegLogProb(double a, double b)
           
 boolean train(InstanceList instances)
           
 Sequence transduce(Sequence input)
          Converts the given sequence into another sequence according to this transducer.
 Transducer.ViterbiPath_NBest viterbiPath_NBest(Sequence inputSequence, int N)
           
 Transducer.ViterbiPath_NBest viterbiPath_NBest(Sequence inputSequence, Sequence outputSequence, int N)
           
 Transducer.ViterbiPath viterbiPath(java.lang.Object unpipedObject)
           
 Transducer.ViterbiPath viterbiPath(Sequence inputSequence)
           
 Transducer.ViterbiPath viterbiPath(Sequence inputSequence, Sequence outputSequence)
           
 Transducer.ViterbiPathBeam viterbiPathBeam(Sequence inputSequence)
           
 Transducer.ViterbiPathBeam viterbiPathBeam(Sequence inputSequence, int Bwidth)
           
 Transducer.ViterbiPathBeam viterbiPathBeam(Sequence inputSequence, Sequence outputSequence, int Bwidth)
           
 Transducer.ViterbiPathBeamB viterbiPathBeamB(java.lang.Object unpipedObject)
           
 Transducer.ViterbiPathBeamB viterbiPathBeamB(Sequence inputSequence)
           
 Transducer.ViterbiPathBeamB viterbiPathBeamB(Sequence inputSequence, int Bwidth)
           
 Transducer.ViterbiPathBeamB viterbiPathBeamB(Sequence inputSequence, Sequence outputSequence, int Bwidth)
           
 Transducer.ViterbiPathBeamFB viterbiPathBeamFB(java.lang.Object unpipedObject)
           
 Transducer.ViterbiPathBeamFB viterbiPathBeamFB(Sequence inputSequence)
           
 Transducer.ViterbiPathBeamFB viterbiPathBeamFB(Sequence inputSequence, int Bwidth)
           
 Transducer.ViterbiPathBeamFB viterbiPathBeamFB(Sequence inputSequence, Sequence outputSequence, int Bwidth)
           
 Transducer.ViterbiPathBeamKL viterbiPathBeamKL(Sequence inputSequence)
           
 Transducer.ViterbiPathBeamKL viterbiPathBeamKL(Sequence inputSequence, int Bwidth)
           
 Transducer.ViterbiPathBeamKL viterbiPathBeamKL(Sequence inputSequence, Sequence outputSequence, int Bwidth)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ZERO_COST

public static final double ZERO_COST
See Also:
Constant Field Values

INFINITE_COST

public static final double INFINITE_COST
See Also:
Constant Field Values

inputPipe

protected Pipe inputPipe
A pipe that should produce a Sequence in the "data" slot, (and possibly one in the "target" slot also


outputPipe

protected Pipe outputPipe
A pipe that should expect a ViterbiPath in the "target" slot, and should produce something printable in the "source" slot that indicates the results of transduction.

Constructor Detail

Transducer

public Transducer()
Method Detail

getInputPipe

public Pipe getInputPipe()

getOutputPipe

public Pipe getOutputPipe()

getBeamWidth

public int getBeamWidth()

setBeamWidth

public void setBeamWidth(int beamWidth)

setCurIter

public void setCurIter(int curIter)

incIter

public void incIter()

setKLeps

public void setKLeps(double KLeps)

setRmin

public void setRmin(double Rmin)

getNstatesExpl

public double[] getNstatesExpl()

setUseForwardBackwardBeam

public void setUseForwardBackwardBeam(boolean state)

pipe

public Instance pipe(Instance carrier)
We aren't really a Pipe subclass, but this method works like Pipes' do.


transduce

public Sequence transduce(Sequence input)
Converts the given sequence into another sequence according to this transducer. For exmaple, robabilistic transducer may do something like Viterbi here. Subclasses of transducer may specify that they only accept special kinds of sequence.

Parameters:
input - Input sequence
Returns:
Sequence output by this transudcer

numStates

public abstract int numStates()

getState

public abstract Transducer.State getState(int index)

initialStateIterator

public abstract java.util.Iterator initialStateIterator()

canIterateAllTransitions

public boolean canIterateAllTransitions()

isGenerative

public boolean isGenerative()

isTrainable

public boolean isTrainable()

setTrainable

public void setTrainable(boolean f)

train

public boolean train(InstanceList instances)

averageTokenAccuracy

public double averageTokenAccuracy(InstanceList ilist)

averageTokenAccuracy

public double averageTokenAccuracy(InstanceList ilist,
                                   java.lang.String fileName)

generatePath

public SequencePairAlignment generatePath()

forwardBackward

public Transducer.Lattice forwardBackward(Sequence inputSequence)

forwardBackward

public Transducer.Lattice forwardBackward(Sequence inputSequence,
                                          boolean increment)

forwardBackward

public Transducer.Lattice forwardBackward(Sequence inputSequence,
                                          Sequence outputSequence)

forwardBackward

public Transducer.Lattice forwardBackward(Sequence inputSequence,
                                          Sequence outputSequence,
                                          boolean increment)

forwardBackward

public Transducer.Lattice forwardBackward(Sequence inputSequence,
                                          Sequence outputSequence,
                                          boolean increment,
                                          LabelAlphabet outputAlphabet)

forwardBackward

public Transducer.Lattice forwardBackward(Sequence inputSequence,
                                          Sequence outputSequence,
                                          boolean increment,
                                          boolean saveXis,
                                          LabelAlphabet outputAlphabet)

forwardBackward

public Transducer.Lattice forwardBackward(Sequence inputSequence,
                                          Sequence outputSequence,
                                          Segment requiredSegment,
                                          Sequence constrainedSequence)
Create constrained lattice such that all paths pass through the the labeling of requiredSegment as indicated by constrainedSequence

Parameters:
inputSequence - input sequence
outputSequence - output sequence
requiredSegment - segment of sequence that must be labelled
constrainedSequence - lattice must have labels of this sequence from requiredSegment.start to requiredSegment.end correctly

stateIndexOfString

public int stateIndexOfString(java.lang.String s)

print

public void print()

forwardBackward

public Transducer.Lattice forwardBackward(Sequence inputSequence,
                                          Sequence outputSequence,
                                          int[] constraints)

forwardBackwardBeam

public Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence)

forwardBackwardBeam

public Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence,
                                                  boolean increment)

forwardBackwardBeam

public Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence,
                                                  Sequence outputSequence)

forwardBackwardBeam

public Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence,
                                                  Sequence outputSequence,
                                                  boolean increment)

forwardBackwardBeam

public Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence,
                                                  Sequence outputSequence,
                                                  boolean increment,
                                                  LabelAlphabet outputAlphabet)

forwardBackwardBeam

public Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence,
                                                  Sequence outputSequence,
                                                  boolean increment,
                                                  boolean saveXis,
                                                  LabelAlphabet outputAlphabet)

forwardBackwardBeam

public Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence,
                                                  Sequence outputSequence,
                                                  Segment requiredSegment,
                                                  Sequence constrainedSequence)
Create constrained lattice such that all paths pass through the the labeling of requiredSegment as indicated by constrainedSequence

Parameters:
inputSequence - input sequence
outputSequence - output sequence
requiredSegment - segment of sequence that must be labelled
constrainedSequence - lattice must have labels of this sequence from requiredSegment.start to requiredSegment.end correctly

forwardBackwardBeam

public Transducer.BeamLattice forwardBackwardBeam(Sequence inputSequence,
                                                  Sequence outputSequence,
                                                  int[] constraints)

viterbiPath

public Transducer.ViterbiPath viterbiPath(java.lang.Object unpipedObject)

viterbiPath

public Transducer.ViterbiPath viterbiPath(Sequence inputSequence)

viterbiPath

public Transducer.ViterbiPath viterbiPath(Sequence inputSequence,
                                          Sequence outputSequence)

viterbiPath_NBest

public Transducer.ViterbiPath_NBest viterbiPath_NBest(Sequence inputSequence,
                                                      int N)

viterbiPath_NBest

public Transducer.ViterbiPath_NBest viterbiPath_NBest(Sequence inputSequence,
                                                      Sequence outputSequence,
                                                      int N)

viterbiPathBeam

public Transducer.ViterbiPathBeam viterbiPathBeam(Sequence inputSequence)

viterbiPathBeam

public Transducer.ViterbiPathBeam viterbiPathBeam(Sequence inputSequence,
                                                  int Bwidth)

viterbiPathBeam

public Transducer.ViterbiPathBeam viterbiPathBeam(Sequence inputSequence,
                                                  Sequence outputSequence,
                                                  int Bwidth)

viterbiPathBeamKL

public Transducer.ViterbiPathBeamKL viterbiPathBeamKL(Sequence inputSequence)

viterbiPathBeamKL

public Transducer.ViterbiPathBeamKL viterbiPathBeamKL(Sequence inputSequence,
                                                      int Bwidth)

viterbiPathBeamKL

public Transducer.ViterbiPathBeamKL viterbiPathBeamKL(Sequence inputSequence,
                                                      Sequence outputSequence,
                                                      int Bwidth)

viterbiPathBeamB

public Transducer.ViterbiPathBeamB viterbiPathBeamB(Sequence inputSequence)

viterbiPathBeamB

public Transducer.ViterbiPathBeamB viterbiPathBeamB(java.lang.Object unpipedObject)

viterbiPathBeamB

public Transducer.ViterbiPathBeamB viterbiPathBeamB(Sequence inputSequence,
                                                    int Bwidth)

viterbiPathBeamB

public Transducer.ViterbiPathBeamB viterbiPathBeamB(Sequence inputSequence,
                                                    Sequence outputSequence,
                                                    int Bwidth)

viterbiPathBeamFB

public Transducer.ViterbiPathBeamFB viterbiPathBeamFB(Sequence inputSequence)

viterbiPathBeamFB

public Transducer.ViterbiPathBeamFB viterbiPathBeamFB(java.lang.Object unpipedObject)

viterbiPathBeamFB

public Transducer.ViterbiPathBeamFB viterbiPathBeamFB(Sequence inputSequence,
                                                      int Bwidth)

viterbiPathBeamFB

public Transducer.ViterbiPathBeamFB viterbiPathBeamFB(Sequence inputSequence,
                                                      Sequence outputSequence,
                                                      int Bwidth)

getViterbiLattice

public Transducer.ViterbiLattice getViterbiLattice(Sequence input,
                                                   Sequence output,
                                                   int cacheSize)

sumNegLogProb

public static double sumNegLogProb(double a,
                                   double b)