public Instance pipe (Instance carrier) { if (prefix != null) System.out.print (prefix); String targetString = "<null>"; if (carrier.getTarget() != null) targetString = carrier.getTarget().toString(); System.out.println ("name: "+carrier.getName()+"\ninput: "+carrier.getData().toString()+"\ntarget: "+targetString); return carrier; }
public Instance pipe (Instance carrier) { if (carrier.getTarget() != null) { if (carrier.getTarget() instanceof Label) throw new IllegalArgumentException ("Already a label."); LabelAlphabet ldict = (LabelAlphabet) getTargetAlphabet(); carrier.setTarget(ldict.lookupLabel (carrier.getTarget())); } return carrier; }
public double InstanceAccuracy(Sequence viterbiSequence, Instance instance) { return InstanceAccuracy(viterbiSequence, (Sequence)instance.getTarget(), instance); }
public Instance pipe(Instance carrier) { StringBuffer sb = new StringBuffer(); String source = (String) carrier.getSource(); Transducer.ViterbiPath vp = (Transducer.ViterbiPath) carrier.getTarget(); ArraySequence as = (ArraySequence) vp.output(); //int startLabelIndex = as.getAlphabet().lookupIndex("start"); for (int i = 0; i < source.length(); i++) { System.out.println("target[" + i + "]=" + as.get(i).toString()); if (as.get(i).toString().equals("start") && i != 0) sb.append(' '); sb.append(source.charAt(i)); } carrier.setSource(sb.toString()); System.out.println("carrier.getSource() = " + carrier.getSource()); return carrier; }
public Instance pipe(Instance carrier) { StringBuffer sb = new StringBuffer(); String source = (String) carrier.getSource(); Transducer.ViterbiPath vp = (Transducer.ViterbiPath) carrier.getTarget(); ArraySequence as = (ArraySequence) vp.output(); //int startLabelIndex = as.getAlphabet().lookupIndex("start"); for (int i = 0; i < source.length(); i++) { System.out.println("target[" + i + "]=" + as.get(i).toString()); if (as.get(i).toString().equals("start") && i != 0) sb.append(' '); sb.append(source.charAt(i)); } carrier.setSource(sb.toString()); System.out.println("carrier.getSource() = " + carrier.getSource()); return carrier; }
public InstanceWithConfidence (Instance inst, double c, Sequence predicted) { this.instance = inst; this.confidence = c; this.correct = true; Sequence truth = (Sequence) inst.getTarget (); for (int i=0; i < truth.size(); i++) { if (!truth.get(i).equals (predicted.get(i))) { this.correct = false; break; } } }
public LabelVector targetLabelDistribution () { if (instances.size() == 0) return null; if (!(getInstance(0).getTarget() instanceof Labeling)) throw new IllegalStateException ("Target is not a labeling."); double[] counts = new double[getTargetAlphabet().size()]; for (int i = 0; i < instances.size(); i++) { Instance instance = getInstance(i); Labeling l = (Labeling) instance.getTarget(); l.addTo (counts, getInstanceWeight(i)); } return new LabelVector ((LabelAlphabet)getTargetAlphabet(), counts); }
private static void printClusterList (InstanceList clusters) { for (InstanceList.Iterator it = clusters.iterator(); it.hasNext();) { Instance instance = (Instance) it.next(); InstanceList thisCluster = (InstanceList) instance.getData(); System.out.println("\n\nCLUSTER *** " + instance.getName()); for (InstanceList.Iterator it2 = thisCluster.iterator(); it2.hasNext();) { Instance inner = (Instance) it2.next(); String targetString = "<null>"; if (inner.getTarget() != null) targetString = inner.getTarget().toString(); System.out.println("name: " + inner.getName() + "\ninput: " + inner.getData().toString() + "\ntarget: " + targetString); } } }
void gatherTrainingSets (InstanceList training) { if (trainingGatheredFor != null) { // It would be easy enough to support this, just got through all the states and set trainingSet to null. throw new UnsupportedOperationException ("Training with multiple sets not supported."); } trainingGatheredFor = training; gatheringTrainingData = true; for (int i = 0; i < training.size(); i++) { Instance instance = training.getInstance(i); FeatureVectorSequence input = (FeatureVectorSequence) instance.getData(); FeatureSequence output = (FeatureSequence) instance.getTarget(); // Do it for the paths consistent with the labels... forwardBackward (input, output, true); } gatheringTrainingData = false; }
private static void printTrialClassification(Trial trial) { ArrayList classifications = trial.toArrayList(); for (int i = 0; i < classifications.size(); i++) { Instance instance = trial.getClassification(i).getInstance(); System.out.print(instance.getName() + " " + instance.getTarget() + " "); Labeling labeling = trial.getClassification(i).getLabeling(); for (int j = 0; j < labeling.numLocations(); j++){ System.out.print(labeling.getLabelAtRank(j).toString() + ":" + labeling.getValueAtRank(j) + " "); } System.out.println(); } }
/** Adds to this list every instance generated by the iterator, * passing each one through this list's pipe. Checks are made to * ensure an OutOfMemoryError is not thrown when instantiating a new * Instance. */ public void add (PipeInputIterator pi) { while (pi.hasNext()) { Instance carrier = pi.nextInstance(); add (carrier.getData(), carrier.getTarget(), carrier.name, carrier.getSource()); } }
/** Adds to this list every instance generated by the iterator, * passing each one through this list's pipe. */ public void add (PipeInputIterator pi) { int i=0; while (pi.hasNext()) { Instance carrier = pi.nextInstance(); // xxx Perhaps try to arrange this so that a new Instance does not have to allocated. add (new Instance (carrier.getData(), carrier.getTarget(), carrier.name, carrier.getSource(), this.pipe)); } }
public double averageTokenAccuracy (InstanceList ilist) { double accuracy = 0; for (int i = 0; i < ilist.size(); i++) { Instance instance = ilist.getInstance(i); Sequence input = (Sequence) instance.getData(); Sequence output = (Sequence) instance.getTarget(); assert (input.size() == output.size()); double pathAccuracy = viterbiPath(input).tokenAccuracy(output); accuracy += pathAccuracy; logger.info ("Transducer path accuracy = "+pathAccuracy); } return accuracy/ilist.size(); }
public Instance pipe (Instance carrier) { //Object in = carrier.getData(); Object target = carrier.getTarget(); if (target instanceof FeatureSequence) ; // Nothing to do else if (target instanceof TokenSequence) { TokenSequence ts = (TokenSequence) target; FeatureSequence fs = new FeatureSequence (getTargetAlphabet(), ts.size()); for (int i = 0; i < ts.size(); i++) fs.add (ts.getToken(i).getText()); carrier.setTarget(fs); } else { throw new IllegalArgumentException ("Unrecognized target type."); } return carrier; }
public Instance nextInstance () { final Instance instance = iter.nextInstance (); Instance ret = new Instance (instance.getData(), instance.getTarget(), instance.getName(), instance.getSource()); ret.setPropertyList (instance.getPropertyList ()); return ret; }
public String viterbiCRFInstance(Instance instance, boolean sgml ) { assert(crf != null); viterbiP = crf.viterbiPath((Sequence)instance.getData());// regular viterbi viterbiSequence = viterbiP.output(); // confidence = Math.exp(viterbiP.getCost()/viterbiSequence.size()); // confidence = viterbiP.getCost()/viterbiSequence.size(); instance_accuracy= InstanceAccuracy(viterbiSequence, (Sequence)instance.getTarget(), instance); tokenSequence = (TokenSequence)instance.getSource(); assert(viterbiSequence.size() == tokenSequence.size()); return printResultInFormat(sgml); }
public String viterbiCRFInstance(Instance instance, boolean sgml ) { assert(crf != null); viterbiP = crf.viterbiPath((Sequence)instance.getData());// regular viterbi viterbiSequence = viterbiP.output(); // confidence = Math.exp(viterbiP.getCost()/viterbiSequence.size()); // confidence = viterbiP.getCost()/viterbiSequence.size(); // viterbiSequence = crf.viterbiPath((Sequence)instance.getData()).output(); instance_accuracy= InstanceAccuracy(viterbiSequence, (Sequence)instance.getTarget()); tokenSequence = (TokenSequence)instance.getSource(); assert(viterbiSequence.size() == tokenSequence.size()); return printResultInFormat(sgml); }
private boolean[][] labelConnectionsIn (InstanceList trainingSet) { int numLabels = outputAlphabet.size(); boolean[][] connections = new boolean[numLabels][numLabels]; for (int i = 0; i < trainingSet.size(); i++) { Instance instance = trainingSet.getInstance(i); FeatureSequence output = (FeatureSequence) instance.getTarget(); for (int j = 1; j < output.size(); j++) { int sourceIndex = outputAlphabet.lookupIndex (output.get(j-1)); int destIndex = outputAlphabet.lookupIndex (output.get(j)); assert (sourceIndex >= 0 && destIndex >= 0); connections[sourceIndex][destIndex] = true; } } return connections; }
private boolean[][] labelConnectionsIn (InstanceList trainingSet) { int numLabels = outputAlphabet.size(); boolean[][] connections = new boolean[numLabels][numLabels]; for (int i = 0; i < trainingSet.size(); i++) { Instance instance = trainingSet.getInstance(i); FeatureSequence output = (FeatureSequence) instance.getTarget(); for (int j = 1; j < output.size(); j++) { int sourceIndex = outputAlphabet.lookupIndex (output.get(j-1)); int destIndex = outputAlphabet.lookupIndex (output.get(j)); assert (sourceIndex >= 0 && destIndex >= 0); connections[sourceIndex][destIndex] = true; } } return connections; }
private boolean[][] labelConnectionsIn (InstanceList trainingSet) { int numLabels = outputAlphabet.size(); boolean[][] connections = new boolean[numLabels][numLabels]; for (int i = 0; i < trainingSet.size(); i++) { Instance instance = trainingSet.getInstance(i); FeatureSequence output = (FeatureSequence) instance.getTarget(); for (int j = 1; j < output.size(); j++) { int sourceIndex = outputAlphabet.lookupIndex (output.get(j-1)); int destIndex = outputAlphabet.lookupIndex (output.get(j)); assert (sourceIndex >= 0 && destIndex >= 0); connections[sourceIndex][destIndex] = true; } } return connections; }