package cc.mallet.fst; import java.io.Serializable; import cc.mallet.types.LabelAlphabet; import cc.mallet.types.Sequence; /** * Provides factory methods to create inference engine for training a transducer. */ public abstract class SumLatticeFactory implements Serializable { public SumLattice newSumLattice (Transducer trans, Sequence input) { return newSumLattice (trans, input, null, (Transducer.Incrementor)null, false, null); } public SumLattice newSumLattice (Transducer trans, Sequence input, Transducer.Incrementor incrementor) { return newSumLattice (trans, input, null, incrementor, false, null); } public SumLattice newSumLattice (Transducer trans, Sequence input, Sequence output) { return newSumLattice (trans, input, output, (Transducer.Incrementor)null, false, null); } public SumLattice newSumLattice (Transducer trans, Sequence input, Sequence output, Transducer.Incrementor incrementor) { return newSumLattice (trans, input, output, incrementor, false, null); } public SumLattice newSumLattice (Transducer trans, Sequence input, Sequence output, Transducer.Incrementor incrementor, LabelAlphabet outputAlphabet) { return newSumLattice (trans, input, output, incrementor, false, outputAlphabet); } public SumLattice newSumLattice (Transducer trans, Sequence input, Sequence output, Transducer.Incrementor incrementor, boolean saveXis) { return newSumLattice (trans, input, output, incrementor, saveXis, null); } /** * Returns a SumLattice object to run forward-backward. * * @param trans Transducer model * @param input Input sequence * @param output If output is null then the forward-backward is not constrained to match the output * @param incrementor If null then do not update the weights * @param saveXis If true then save the transition weights as well * @param outputAlphabet If outputAlphabet is non-null, this will create a LabelVector for each * position in the output sequence indicating the probability distribution * over possible outputs at that time index. */ public abstract SumLattice newSumLattice (Transducer trans, Sequence input, Sequence output, Transducer.Incrementor incrementor, boolean saveXis, LabelAlphabet outputAlphabet); }