@Override public Set<String> getOutcomeNames() { if (outcomeNames == null) { outcomeNames = new TreeSet<String>(); for (int i = 0; i < this.model.getNumOutcomes(); i++) { outcomeNames.add(this.model.getOutcome(i)); } } return outcomeNames; }
@Override public List<Decision> decide(List<FeatureResult<?>> featureResults) { List<String> contextList = new ArrayList<String>(); List<Float> weightList = new ArrayList<Float>(); OpenNLPDecisionMaker.prepareData(featureResults, contextList, weightList); String[] contexts = new String[contextList.size()]; float[] weights = new float[weightList.size()]; int i = 0; for (String context : contextList) { contexts[i++] = context; } i = 0; for (Float weight : weightList) { weights[i++] = weight; } double[] probs = model.eval(contexts, weights); String[] outcomes = new String[probs.length]; for (i = 0; i < probs.length; i++) outcomes[i] = model.getOutcome(i); TreeSet<Decision> outcomeSet = new TreeSet<Decision>(); for (i = 0; i < probs.length; i++) { Decision decision = new Decision(outcomes[i], probs[i]); outcomeSet.add(decision); } List<Decision> decisions = new ArrayList<Decision>(outcomeSet); return decisions; }
private void eval(Event event, boolean real) { String outcome = event.getOutcome(); // Is ignored String[] context = event.getContext(); double[] ocs; if (!real) { ocs = _model.eval(context); } else { float[] values = RealValueFileEventStream.parseContexts(context); ocs = _model.eval(context, values); } int numOutcomes = ocs.length; DoubleStringPair[] result = new DoubleStringPair[numOutcomes]; for (int i=0; i<numOutcomes; i++) result[i] = new DoubleStringPair(ocs[i], _model.getOutcome(i)); java.util.Arrays.sort(result); // Print the most likely outcome first, down to the least likely. for (int i=numOutcomes-1; i>=0; i--) System.out.print(result[i].stringValue + " " + result[i].doubleValue + " "); System.out.println(); }
private void eval(Event event, boolean real) { String outcome = event.getOutcome(); // Is ignored String[] context = event.getContext(); double[] ocs; if (!real) { ocs = _model.eval(context); } else { float[] values = RealValueFileEventStream.parseContexts(context); ocs = _model.eval(context, values); } int numOutcomes = ocs.length; DoubleStringPair[] result = new DoubleStringPair[numOutcomes]; for (int i=0; i<numOutcomes; i++) result[i] = new DoubleStringPair(ocs[i], _model.getOutcome(i)); java.util.Arrays.sort(result); // Print the most likely outcome first, down to the least likely. for (int i=numOutcomes-1; i>=0; i--) System.out.print(result[i].stringValue + " " + result[i].doubleValue + " "); System.out.println(); }
DoubleStringPair[] result = new DoubleStringPair[numOutcomes]; for (int i = 0; i < numOutcomes; i++) { result[i] = new DoubleStringPair(ocs[i], model.getOutcome(i));
if (scores[p] < min) continue; //only advance first "size" outcomes String out = model.getOutcome(p); if (validSequence(i, sequence, outcomes, out)) { Sequence ns = new Sequence(top, out, scores[p]); String out = model.getOutcome(p); if (validSequence(i, sequence, outcomes, out)) { Sequence ns = new Sequence(top, out, scores[p]);