/** * Categorize the given text provided as tokens along with * the provided extra information * * @param text text tokens to categorize * @param extraInformation additional information */ @Override public double[] categorize(String[] text, Map<String, Object> extraInformation) { return model.getMaxentModel().eval( mContextGenerator.getContext(text, extraInformation)); }
@Override protected void advanceTop(Parse p) { buildModel.eval(buildContextGenerator.getContext(p.getChildren(), 0), bprobs); p.addProb(Math.log(bprobs[topStartIndex])); checkModel.eval(checkContextGenerator.getContext(p.getChildren(), TOP_NODE, 0, 0), cprobs); p.addProb(Math.log(cprobs[completeIndex])); p.setType(TOP_NODE); }
public String[] getOrderedTags(List<String> words, List<String> tags, int index,double[] tprobs) { if (modelPackage.getPosModel() != null) { MaxentModel posModel = modelPackage.getPosModel(); double[] probs = posModel.eval(contextGen.getContext(index, words.toArray(new String[words.size()]), tags.toArray(new String[tags.size()]),null)); String[] orderedTags = new String[probs.length]; for (int i = 0; i < probs.length; i++) { int max = 0; for (int ti = 1; ti < probs.length; ti++) { if (probs[ti] > probs[max]) { max = ti; } } orderedTags[i] = posModel.getOutcome(max); if (tprobs != null) { tprobs[i] = probs[max]; } probs[max] = 0; } return orderedTags; } else { throw new UnsupportedOperationException("This method can only be called if the " + "classifcation model is an event model!"); } }
@Override public Language[] predictLanguages(CharSequence content) { double[] eval = model.getMaxentModel().eval(mContextGenerator.getContext(content.toString())); Language[] arr = new Language[eval.length]; for (int i = 0; i < eval.length; i++) { arr[i] = new Language(model.getMaxentModel().getOutcome(i), eval[i]); } Arrays.sort(arr, (o1, o2) -> Double.compare(o2.getConfidence(), o1.getConfidence())); return arr; }
for (int j = origStart + 1; j < end; j++) { double[] probs = model.eval(cg.getContext(tok, j - origStart)); String best = model.getBestOutcome(probs); tokenProb *= probs[model.getIndex(best)];
double[] probs = model.eval(cgen.getContext(sb, cint)); String bestOutcome = model.getBestOutcome(probs);
List<Parse> newParsesList = new ArrayList<>(buildModel.getNumOutcomes()); buildModel.eval(buildContextGenerator.getContext(children, advanceNodeIndex), bprobs); double bprobSum = 0; while (bprobSum < probMass) { checkModel.eval(checkContextGenerator.getContext( collapsePunctuation(newParse1.getChildren(),punctSet), lastStartType, lastStartIndex, advanceNodeIndex), cprobs);
public static void testModel(MaxentModel model, double expecedAccuracy) throws IOException { List<Event> devEvents = readPpaFile("devset"); int total = 0; int correct = 0; for (Event ev: devEvents) { String targetLabel = ev.getOutcome(); double[] ocs = model.eval(ev.getContext()); int best = 0; for (int i = 1; i < ocs.length; i++) { if (ocs[i] > ocs[best]) { best = i; } } String predictedLabel = model.getOutcome(best); if (targetLabel.equals(predictedLabel)) correct++; total++; } double accuracy = correct / (double) total; System.out.println("Accuracy on PPA devset: (" + correct + "/" + total + ") " + accuracy); Assert.assertEquals(expecedAccuracy, accuracy, .00001); } }
List<Parse> newParsesList = new ArrayList<>(); buildModel.eval(buildContextGenerator.getContext(children, advanceNodeIndex), bprobs); double doneProb = bprobs[doneIndex]; if (debugOn) newParsesList.add(newParse1); if (checkComplete) { cprobs = checkModel.eval(checkContextGenerator.getContext(newNode, children, advanceNodeIndex,false)); if (debugOn) System.out.println("building " + tag + " " + bprob + " c=" + cprobs[completeIndex]); for (int fi = 0,fs = rf.size(); fi < fs; fi++) { Parse fn = rf.get(fi); attachModel.eval(attachContextGenerator.getContext(children, advanceNodeIndex, rf, fi), aprobs); if (debugOn) { newParsesList.add(newParse2); if (checkComplete) { cprobs = checkModel.eval( checkContextGenerator.getContext(updatedNode,newKids,advanceNodeIndex,true)); if (cprobs[completeIndex] > probMass) {
private void testModel(MaxentModel model, Event event, double higher_probability) { double[] outcomes = model.eval(event.getContext()); String outcome = model.getBestOutcome(outcomes); Assert.assertEquals(2, outcomes.length); Assert.assertEquals(event.getOutcome(), outcome); if (event.getOutcome().equals(model.getOutcome(0))) { Assert.assertEquals(higher_probability, outcomes[0], 0.0001); } if (!event.getOutcome().equals(model.getOutcome(0))) { Assert.assertEquals(1.0 - higher_probability, outcomes[0], 0.0001); } if (event.getOutcome().equals(model.getOutcome(1))) { Assert.assertEquals(higher_probability, outcomes[1], 0.0001); } if (!event.getOutcome().equals(model.getOutcome(1))) { Assert.assertEquals(1.0 - higher_probability, outcomes[1], 0.0001); } }
/** * Returns the analysis probabilities * * @param text * the text to categorize */ public double[] probabilities(String text[]) { return maxentModel.eval(contextGenerator.getContext(text)); }
String[] contexts = smallTest.split(" "); float[] values = RealValueFileEventStream.parseContexts(contexts); double[] smallResults = smallModel.eval(contexts, values); contexts = largeTest.split(" "); values = RealValueFileEventStream.parseContexts(contexts); double[] largeResults = largeModel.eval(contexts, values);
public double getNonReferentialProbability(MentionContext mention) { List<String> features = getFeatures(mention); double r = model.eval(features.toArray(new String[features.size()]))[nonRefIndex]; if (debugOn) System.err.println(this + " " + mention.toText() + " -> null " + r + " " + features); return r; }
/** * Categorize the given text provided as tokens along with * the provided extra information * * @param text text tokens to categorize * @param extraInformation additional information */ @Override public double[] categorize(String[] text, Map<String, Object> extraInformation) { return model.getMaxentModel().eval( mContextGenerator.getContext(text, extraInformation)); }
/** * Categorize the given text provided as tokens along with * the provided extra information * * @param text text tokens to categorize * @param extraInformation additional information */ @Override public double[] categorize(String[] text, Map<String, Object> extraInformation) { return model.getMaxentModel().eval( mContextGenerator.getContext(text, extraInformation)); }
@Override protected void advanceTop(Parse p) { buildModel.eval(buildContextGenerator.getContext(p.getChildren(), 0), bprobs); p.addProb(Math.log(bprobs[topStartIndex])); checkModel.eval(checkContextGenerator.getContext(p.getChildren(), TOP_NODE, 0, 0), cprobs); p.addProb(Math.log(cprobs[completeIndex])); p.setType(TOP_NODE); }
@Override protected void advanceTop(Parse p) { buildModel.eval(buildContextGenerator.getContext(p.getChildren(), 0), bprobs); p.addProb(Math.log(bprobs[topStartIndex])); checkModel.eval(checkContextGenerator.getContext(p.getChildren(), TOP_NODE, 0, 0), cprobs); p.addProb(Math.log(cprobs[completeIndex])); p.setType(TOP_NODE); }
@Override public Language[] predictLanguages(CharSequence content) { double[] eval = model.getMaxentModel().eval(mContextGenerator.getContext(content.toString())); Language[] arr = new Language[eval.length]; for (int i = 0; i < eval.length; i++) { arr[i] = new Language(model.getMaxentModel().getOutcome(i), eval[i]); } Arrays.sort(arr, (o1, o2) -> Double.compare(o2.getConfidence(), o1.getConfidence())); return arr; }
@Override public Language[] predictLanguages(CharSequence content) { double[] eval = model.getMaxentModel().eval(mContextGenerator.getContext(content.toString())); Language[] arr = new Language[eval.length]; for (int i = 0; i < eval.length; i++) { arr[i] = new Language(model.getMaxentModel().getOutcome(i), eval[i]); } Arrays.sort(arr, (o1, o2) -> Double.compare(o2.getConfidence(), o1.getConfidence())); return arr; }