Search in sources :

Example 1 with AbstractInferenceSolver

use of edu.illinois.cs.cogcomp.sl.inference.AbstractInferenceSolver in project cogcomp-nlp by CogComp.

the class VerbSenseClassifierMain method train.

@CommandDescription(description = "Trains the verb-sense model.", usage = "train")
public static void train() throws Exception {
    SenseManager manager = getManager(true);
    int numThreads = Runtime.getRuntime().availableProcessors();
    ModelInfo modelInfo = manager.getModelInfo();
    String featureSet = "" + modelInfo.featureManifest.getIncludedFeatures().hashCode();
    String cacheFile = VerbSenseConfigurator.getPrunedFeatureCacheFile(featureSet, rm);
    AbstractInferenceSolver[] inference = new AbstractInferenceSolver[numThreads];
    // TODO Can I replace this with ILPInference?
    for (int i = 0; i < inference.length; i++) inference[i] = new MulticlassInference(manager);
    double c;
    FeatureVectorCacheFile cache;
    cache = new FeatureVectorCacheFile(cacheFile, manager);
    StructuredProblem cvProblem = cache.getStructuredProblem(20000);
    cache.close();
    LearnerParameters params = JLISLearner.crossvalStructSVMSense(cvProblem, inference, 4);
    c = params.getcStruct();
    log.info("c = {} after cv", c);
    cache = new FeatureVectorCacheFile(cacheFile, manager);
    StructuredProblem problem = cache.getStructuredProblem();
    cache.close();
    WeightVector w = JLISLearner.trainStructSVM(inference, problem, c);
    JLISLearner.saveWeightVector(w, manager.getModelFileName());
}
Also used : ModelInfo(edu.illinois.cs.cogcomp.verbsense.core.ModelInfo) StructuredProblem(edu.illinois.cs.cogcomp.sl.core.StructuredProblem) WeightVector(edu.illinois.cs.cogcomp.sl.util.WeightVector) SenseManager(edu.illinois.cs.cogcomp.verbsense.core.SenseManager) MulticlassInference(edu.illinois.cs.cogcomp.verbsense.inference.MulticlassInference) AbstractInferenceSolver(edu.illinois.cs.cogcomp.sl.inference.AbstractInferenceSolver) FeatureVectorCacheFile(edu.illinois.cs.cogcomp.verbsense.caches.FeatureVectorCacheFile) LearnerParameters(edu.illinois.cs.cogcomp.verbsense.learn.LearnerParameters) CommandDescription(edu.illinois.cs.cogcomp.core.utilities.commands.CommandDescription)

Example 2 with AbstractInferenceSolver

use of edu.illinois.cs.cogcomp.sl.inference.AbstractInferenceSolver in project cogcomp-nlp by CogComp.

the class CrossValidationHelper method splitInference.

private static AbstractInferenceSolver[][] splitInference(AbstractInferenceSolver[] inference, int nFolds) {
    @SuppressWarnings("unchecked") List<AbstractInferenceSolver>[] list = new List[nFolds];
    for (int i = 0; i < nFolds; i++) {
        list[i] = new ArrayList<>();
    }
    int foldId = 0;
    for (AbstractInferenceSolver anInference : inference) {
        list[foldId].add(anInference);
        foldId++;
        if (foldId == nFolds)
            foldId = 0;
    }
    AbstractInferenceSolver[][] foldInference = new AbstractInferenceSolver[nFolds][];
    for (int i = 0; i < nFolds; i++) {
        List<AbstractInferenceSolver> l = list[i];
        foldInference[i] = l.toArray(new AbstractInferenceSolver[l.size()]);
        assert foldInference[i] != null;
    }
    return foldInference;
}
Also used : ArrayList(java.util.ArrayList) List(java.util.List) AbstractInferenceSolver(edu.illinois.cs.cogcomp.sl.inference.AbstractInferenceSolver)

Aggregations

AbstractInferenceSolver (edu.illinois.cs.cogcomp.sl.inference.AbstractInferenceSolver)2 CommandDescription (edu.illinois.cs.cogcomp.core.utilities.commands.CommandDescription)1 StructuredProblem (edu.illinois.cs.cogcomp.sl.core.StructuredProblem)1 WeightVector (edu.illinois.cs.cogcomp.sl.util.WeightVector)1 FeatureVectorCacheFile (edu.illinois.cs.cogcomp.verbsense.caches.FeatureVectorCacheFile)1 ModelInfo (edu.illinois.cs.cogcomp.verbsense.core.ModelInfo)1 SenseManager (edu.illinois.cs.cogcomp.verbsense.core.SenseManager)1 MulticlassInference (edu.illinois.cs.cogcomp.verbsense.inference.MulticlassInference)1 LearnerParameters (edu.illinois.cs.cogcomp.verbsense.learn.LearnerParameters)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1