public class SequenceGibbsSampler extends java.lang.Object implements BestSequenceFinder
Modifier and Type | Field and Description |
---|---|
boolean |
returnLastFoundSequence |
static int |
verbose |
Constructor and Description |
---|
SequenceGibbsSampler(int numSamples,
int sampleInterval,
SequenceListener listener) |
SequenceGibbsSampler(int numSamples,
int sampleInterval,
SequenceListener listener,
int samplingStyle,
int chromaticSize,
java.util.List<java.util.List<java.lang.Integer>> partition,
int speedUpThreshold,
EmpiricalNERPriorBIO priorEn,
EmpiricalNERPriorBIO priorCh) |
SequenceGibbsSampler(int numSamples,
int sampleInterval,
SequenceListener listener,
java.util.List document) |
SequenceGibbsSampler(int numSamples,
int sampleInterval,
SequenceListener listener,
java.util.List document,
boolean returnLastFoundSequence,
int samplingStyle,
int chromaticSize,
java.util.List<java.util.List<java.lang.Integer>> partition,
int speedUpThreshold,
EmpiricalNERPriorBIO priorEn,
EmpiricalNERPriorBIO priorCh) |
Modifier and Type | Method and Description |
---|---|
int[] |
bestSequence(SequenceModel model)
Finds the best sequence by collecting numSamples samples, scoring them, and then choosing
the highest scoring sample.
|
java.util.List<int[]> |
collectSamples(SequenceModel model,
int numSamples,
int sampleInterval)
Collects numSamples samples of sequences, from the distribution over sequences defined
by the sequence model passed on construction.
|
java.util.List<int[]> |
collectSamples(SequenceModel model,
int numSamples,
int sampleInterval,
int[] initialSequence)
Collects numSamples samples of sequences, from the distribution over sequences defined
by the sequence model passed on construction.
|
static int[] |
copy(int[] a) |
int[] |
findBestUsingAnnealing(SequenceModel model,
CoolingSchedule schedule) |
int[] |
findBestUsingAnnealing(SequenceModel model,
CoolingSchedule schedule,
int[] initialSequence) |
int[] |
findBestUsingSampling(SequenceModel model,
int numSamples,
int sampleInterval,
int[] initialSequence)
Finds the best sequence by collecting numSamples samples, scoring them, and then choosing
the highest scoring sample.
|
static int[] |
getRandomSequence(SequenceModel model) |
void |
printSamples(java.util.List samples,
java.io.PrintStream out) |
double |
samplePosition(SequenceModel model,
int[] sequence,
int pos)
Samples a single position in the sequence.
|
double |
samplePosition(SequenceModel model,
int[] sequence,
int pos,
double temperature)
Samples a single position in the sequence.
|
double |
sampleSequenceBackward(SequenceModel model,
int[] sequence)
Samples the complete sequence once in the backward direction
Destructively modifies the sequence in place.
|
double |
sampleSequenceBackward(SequenceModel model,
int[] sequence,
double temperature)
Samples the complete sequence once in the backward direction
Destructively modifies the sequence in place.
|
double |
sampleSequenceForward(SequenceModel model,
int[] sequence)
Samples the complete sequence once in the forward direction
Destructively modifies the sequence in place.
|
double |
sampleSequenceForward(SequenceModel model,
int[] sequence,
double temperature,
java.util.Set<java.lang.Integer> onlySampleThesePositions)
Samples the complete sequence once in the forward direction
Destructively modifies the sequence in place.
|
double |
sampleSequenceRepeatedly(SequenceModel model,
int numSamples)
Samples the sequence repeatedly, making numSamples passes over the entire sequence.
|
double |
sampleSequenceRepeatedly(SequenceModel model,
int[] sequence,
int numSamples)
Samples the sequence repeatedly, making numSamples passes over the entire sequence.
|
public static int verbose
public boolean returnLastFoundSequence
public SequenceGibbsSampler(int numSamples, int sampleInterval, SequenceListener listener, java.util.List document, boolean returnLastFoundSequence, int samplingStyle, int chromaticSize, java.util.List<java.util.List<java.lang.Integer>> partition, int speedUpThreshold, EmpiricalNERPriorBIO priorEn, EmpiricalNERPriorBIO priorCh)
document
- the underlying document which is a list of HasWord; a slight abstraction violation, but useful for debugging!!public SequenceGibbsSampler(int numSamples, int sampleInterval, SequenceListener listener, java.util.List document)
public SequenceGibbsSampler(int numSamples, int sampleInterval, SequenceListener listener)
public SequenceGibbsSampler(int numSamples, int sampleInterval, SequenceListener listener, int samplingStyle, int chromaticSize, java.util.List<java.util.List<java.lang.Integer>> partition, int speedUpThreshold, EmpiricalNERPriorBIO priorEn, EmpiricalNERPriorBIO priorCh)
public static int[] copy(int[] a)
public static int[] getRandomSequence(SequenceModel model)
public int[] bestSequence(SequenceModel model)
bestSequence
in interface BestSequenceFinder
public int[] findBestUsingSampling(SequenceModel model, int numSamples, int sampleInterval, int[] initialSequence)
public int[] findBestUsingAnnealing(SequenceModel model, CoolingSchedule schedule)
public int[] findBestUsingAnnealing(SequenceModel model, CoolingSchedule schedule, int[] initialSequence)
public java.util.List<int[]> collectSamples(SequenceModel model, int numSamples, int sampleInterval)
public java.util.List<int[]> collectSamples(SequenceModel model, int numSamples, int sampleInterval, int[] initialSequence)
public double sampleSequenceRepeatedly(SequenceModel model, int[] sequence, int numSamples)
public double sampleSequenceRepeatedly(SequenceModel model, int numSamples)
public double sampleSequenceForward(SequenceModel model, int[] sequence)
sequence
- the sequence to start with.public double sampleSequenceForward(SequenceModel model, int[] sequence, double temperature, java.util.Set<java.lang.Integer> onlySampleThesePositions)
sequence
- the sequence to start with.public double sampleSequenceBackward(SequenceModel model, int[] sequence)
sequence
- the sequence to start with.public double sampleSequenceBackward(SequenceModel model, int[] sequence, double temperature)
sequence
- the sequence to start with.public double samplePosition(SequenceModel model, int[] sequence, int pos)
sequence
- the sequence to start withpos
- the position to sample.public double samplePosition(SequenceModel model, int[] sequence, int pos, double temperature)
sequence
- the sequence to start withpos
- the position to sample.temperature
- the temperature to control annealingpublic void printSamples(java.util.List samples, java.io.PrintStream out)