@Override protected void addVariables(ILPSolver xmp, InferenceVariableLexManager variableManager) { assert xmp != null; for (int predicateId = 0; predicateId < numPredicates; predicateId++) { SenseInstance senseX = instance.predicates.get(predicateId); String lemma = senseX.getPredicateLemma(); assert lemma != null; log.debug("Adding variables for " + lemma); double[] senseScores = manager.getScores(senseX, true); Set<Integer> set = new HashSet<>(); for (int senseId = 0; senseId < senseScores.length; senseId++) { if (!manager.isValidSense(lemma, senseId)) continue; String label = manager.getSense(senseId); double score = senseScores[senseId]; String variableIdentifier = getSenseVariableIdentifier(viewName, predicateId, label); int var = xmp.addBooleanVariable(score); variableManager.addVariable(variableIdentifier, var); set.add(var); log.debug("Sense variable: " + score + " " + variableIdentifier + " " + var + " " + label); } log.debug("Adding unique sense label constraint"); addUniqueLabelConstraint(xmp, set); } assert variableManager.size() > 0 : "No varaibles added for " + this.ta; }
@Override protected void addVariables(ILPSolver xmp, InferenceVariableLexManager variableManager) { assert xmp != null; for (int predicateId = 0; predicateId < numPredicates; predicateId++) { SenseInstance senseX = instance.predicates.get(predicateId); String lemma = senseX.getPredicateLemma(); assert lemma != null; log.debug("Adding variables for " + lemma); double[] senseScores = manager.getScores(senseX, true); Set<Integer> set = new HashSet<>(); for (int senseId = 0; senseId < senseScores.length; senseId++) { if (!manager.isValidSense(lemma, senseId)) continue; String label = manager.getSense(senseId); double score = senseScores[senseId]; String variableIdentifier = getSenseVariableIdentifier(viewName, predicateId, label); int var = xmp.addBooleanVariable(score); variableManager.addVariable(variableIdentifier, var); set.add(var); log.debug("Sense variable: " + score + " " + variableIdentifier + " " + var + " " + label); } log.debug("Adding unique sense label constraint"); addUniqueLabelConstraint(xmp, set); } assert variableManager.size() > 0 : "No varaibles added for " + this.ta; }
variableManager.addVariable(variableIdentifier, var); variableManager.addVariable(variableIdentifier, var);