tags = ti.bestSequence(ts); } else { BeamBestSequenceFinder ti = new BeamBestSequenceFinder(flags.beamSize, true, true); tags = ti.bestSequence(ts, document.size());
tagInference = new ExactBestSequenceFinder(); } else if (flags.inferenceType.equalsIgnoreCase("Beam")) { tagInference = new BeamBestSequenceFinder(flags.beamSize); } else { throw new RuntimeException("Unknown inference type: " + flags.inferenceType + ". Your options are Viterbi|Beam.");
@Override public int[] bestSequence(SequenceModel ts) { return bestSequence(ts, (1024 * 128)); }
public static void main(String[] args) { BestSequenceFinder ti = new BeamBestSequenceFinder(4, true); SequenceModel ts = new TestSequenceModel(); int[] bestTags = ti.bestSequence(ts); System.out.println("The best sequence is .... " + Arrays.toString(bestTags)); }
public int[] bestSequence(SequenceModel ts) { return bestSequence(ts, (1024 * 128)); }
tags = ti.bestSequence(ts); } else { BeamBestSequenceFinder ti = new BeamBestSequenceFinder(flags.beamSize, true, true); tags = ti.bestSequence(ts, document.size());
private List<IN> classifyMaxEnt(List<IN> document, SequenceModel model) { if (document.isEmpty()) { return document; } if (flags.inferenceType == null) { flags.inferenceType = "Viterbi"; } BestSequenceFinder tagInference; if (flags.inferenceType.equalsIgnoreCase("Viterbi")) { tagInference = new ExactBestSequenceFinder(); } else if (flags.inferenceType.equalsIgnoreCase("Beam")) { tagInference = new BeamBestSequenceFinder(flags.beamSize); } else { throw new RuntimeException("Unknown inference type: "+flags.inferenceType+". Your options are Viterbi|Beam."); } int[] bestSequence = tagInference.bestSequence(model); if (flags.useReverse) { Collections.reverse(document); } for (int j = 0, docSize = document.size(); j < docSize; j++) { IN wi = document.get(j); String guess = classIndex.get(bestSequence[j + windowSize - 1]); wi.set(AnswerAnnotation.class, guess); } if (flags.useReverse) { Collections.reverse(document); } return document; }
public int[] bestSequence(SequenceModel ts) { return bestSequence(ts, (1024 * 128)); }
tags = ti.bestSequence(ts); } else { BeamBestSequenceFinder ti = new BeamBestSequenceFinder(flags.beamSize, true, true); tags = ti.bestSequence(ts, document.size());
private List<IN> classifyMaxEnt(List<IN> document, SequenceModel model) { if (document.isEmpty()) { return document; } if (flags.inferenceType == null) { flags.inferenceType = "Viterbi"; } BestSequenceFinder tagInference; if (flags.inferenceType.equalsIgnoreCase("Viterbi")) { tagInference = new ExactBestSequenceFinder(); } else if (flags.inferenceType.equalsIgnoreCase("Beam")) { tagInference = new BeamBestSequenceFinder(flags.beamSize); } else { throw new RuntimeException("Unknown inference type: " + flags.inferenceType + ". Your options are Viterbi|Beam."); } int[] bestSequence = tagInference.bestSequence(model); if (flags.useReverse) { Collections.reverse(document); } for (int j = 0, docSize = document.size(); j < docSize; j++) { IN wi = document.get(j); String guess = classIndex.get(bestSequence[j + windowSize - 1]); wi.set(CoreAnnotations.AnswerAnnotation.class, guess); } if (flags.useReverse) { Collections.reverse(document); } return document; }
public int[] bestSequence(SequenceModel ts) { return bestSequence(ts, (1024 * 128)); }
tags = ti.bestSequence(ts); } else { BeamBestSequenceFinder ti = new BeamBestSequenceFinder(flags.beamSize, true, true); tags = ti.bestSequence(ts, document.size());
tagInference = new ExactBestSequenceFinder(); } else if (flags.inferenceType.equalsIgnoreCase("Beam")) { tagInference = new BeamBestSequenceFinder(flags.beamSize); } else { throw new RuntimeException("Unknown inference type: " + flags.inferenceType + ". Your options are Viterbi|Beam.");