public static CRF getCRF(InstanceList training, int[] orders, String defaultLabel, String forbidden, String allowed, boolean connected) { Pattern forbiddenPat = Pattern.compile(forbidden); Pattern allowedPat = Pattern.compile(allowed); CRF crf = new CRF(training.getPipe(), (Pipe)null); String startName = crf.addOrderNStates(training, orders, null, defaultLabel, forbiddenPat, allowedPat, connected); for (int i = 0; i < crf.numStates(); i++) crf.getState(i).setInitialWeight (Transducer.IMPOSSIBLE_WEIGHT); crf.getState(startName).setInitialWeight(0.0); crf.setWeightsDimensionDensely(); return crf; }
public static CRF getCRF(InstanceList training, int[] orders, String defaultLabel, String forbidden, String allowed, boolean connected) { Pattern forbiddenPat = Pattern.compile(forbidden); Pattern allowedPat = Pattern.compile(allowed); CRF crf = new CRF(training.getPipe(), (Pipe)null); String startName = crf.addOrderNStates(training, orders, null, defaultLabel, forbiddenPat, allowedPat, connected); for (int i = 0; i < crf.numStates(); i++) crf.getState(i).setInitialWeight (Transducer.IMPOSSIBLE_WEIGHT); crf.getState(startName).setInitialWeight(0.0); crf.setWeightsDimensionDensely(); return crf; }
public static CRF getCRF(InstanceList training, int[] orders, String defaultLabel, String forbidden, String allowed, boolean connected) { Pattern forbiddenPat = Pattern.compile(forbidden); Pattern allowedPat = Pattern.compile(allowed); CRF crf = new CRF(training.getPipe(), (Pipe)null); String startName = crf.addOrderNStates(training, orders, null, defaultLabel, forbiddenPat, allowedPat, connected); for (int i = 0; i < crf.numStates(); i++) crf.getState(i).setInitialWeight (Transducer.IMPOSSIBLE_WEIGHT); crf.getState(startName).setInitialWeight(0.0); crf.setWeightsDimensionDensely(); return crf; }
public CRFOptimizableByLabelLikelihood getOptimizableCRF (InstanceList trainingSet) { if (cachedWeightsStructureStamp != crf.weightsStructureChangeStamp) { if (!useNoWeights) { if (useSparseWeights) crf.setWeightsDimensionAsIn (trainingSet, useSomeUnsupportedTrick); else crf.setWeightsDimensionDensely (); } //reallocateSufficientStatistics(); // Not necessary here because it is done in the constructor for OptimizableCRF ocrf = null; cachedWeightsStructureStamp = crf.weightsStructureChangeStamp; } if (ocrf == null || ocrf.trainingSet != trainingSet) { //ocrf = new OptimizableCRF (crf, trainingSet); ocrf = new CRFOptimizableByLabelLikelihood(crf, trainingSet); ocrf.setGaussianPriorVariance(gaussianPriorVariance); ocrf.setHyperbolicPriorSharpness(hyperbolicPriorSharpness); ocrf.setHyperbolicPriorSlope(hyperbolicPriorSlope); ocrf.setUseHyperbolicPrior(usingHyperbolicPrior); opt = null; } return ocrf; }
public CRFOptimizableByLabelLikelihood getOptimizableCRF (InstanceList trainingSet) { if (cachedWeightsStructureStamp != crf.weightsStructureChangeStamp) { if (!useNoWeights) { if (useSparseWeights) crf.setWeightsDimensionAsIn (trainingSet, useSomeUnsupportedTrick); else crf.setWeightsDimensionDensely (); } //reallocateSufficientStatistics(); // Not necessary here because it is done in the constructor for OptimizableCRF ocrf = null; cachedWeightsStructureStamp = crf.weightsStructureChangeStamp; } if (ocrf == null || ocrf.trainingSet != trainingSet) { //ocrf = new OptimizableCRF (crf, trainingSet); ocrf = new CRFOptimizableByLabelLikelihood(crf, trainingSet); ocrf.setGaussianPriorVariance(gaussianPriorVariance); ocrf.setHyperbolicPriorSharpness(hyperbolicPriorSharpness); ocrf.setHyperbolicPriorSlope(hyperbolicPriorSlope); ocrf.setUseHyperbolicPrior(usingHyperbolicPrior); opt = null; } return ocrf; }
public CRFOptimizableByLabelLikelihood getOptimizableCRF(InstanceList trainingSet) { if (cachedWeightsStructureStamp != crf.weightsStructureChangeStamp) { if (!useNoWeights) { if (useSparseWeights) { crf.setWeightsDimensionAsIn(trainingSet, useSomeUnsupportedTrick); } else { crf.setWeightsDimensionDensely(); } } // reallocateSufficientStatistics(); // Not necessary here because it is done in the constructor for // OptimizableCRF ocrf = null; cachedWeightsStructureStamp = crf.weightsStructureChangeStamp; } if (ocrf == null || ocrf.trainingSet != trainingSet) { // ocrf = new OptimizableCRF (crf, trainingSet); ocrf = new CRFOptimizableByLabelLikelihood(crf, trainingSet); ocrf.setGaussianPriorVariance(gaussianPriorVariance); ocrf.setHyperbolicPriorSharpness(hyperbolicPriorSharpness); ocrf.setHyperbolicPriorSlope(hyperbolicPriorSlope); ocrf.setUseHyperbolicPrior(usingHyperbolicPrior); opt = null; } return ocrf; }
public CRFOptimizableByBatchLabelLikelihood getOptimizableCRF (InstanceList trainingSet) { if (cachedWeightsStructureStamp != crf.weightsStructureChangeStamp) { if (!useNoWeights) { if (useSparseWeights) { crf.setWeightsDimensionAsIn (trainingSet, useSomeUnsupportedTrick); } else { crf.setWeightsDimensionDensely (); } } optimizable = null; cachedWeightsStructureStamp = crf.weightsStructureChangeStamp; } if (optimizable == null || optimizable.trainingSet != trainingSet) { optimizable = new CRFOptimizableByBatchLabelLikelihood(crf, trainingSet, numThreads); optimizable.setGaussianPriorVariance(gaussianPriorVariance); threadedOptimizable = new ThreadedOptimizable(optimizable, trainingSet, crf.getParameters().getNumFactors(), new CRFCacheStaleIndicator(crf)); optimizer = null; } return optimizable; }
public CRFOptimizableByBatchLabelLikelihood getOptimizableCRF (InstanceList trainingSet) { if (cachedWeightsStructureStamp != crf.weightsStructureChangeStamp) { if (!useNoWeights) { if (useSparseWeights) { crf.setWeightsDimensionAsIn (trainingSet, useSomeUnsupportedTrick); } else { crf.setWeightsDimensionDensely (); } } optimizable = null; cachedWeightsStructureStamp = crf.weightsStructureChangeStamp; } if (optimizable == null || optimizable.trainingSet != trainingSet) { optimizable = new CRFOptimizableByBatchLabelLikelihood(crf, trainingSet, numThreads); optimizable.setGaussianPriorVariance(gaussianPriorVariance); threadedOptimizable = new ThreadedOptimizable(optimizable, trainingSet, crf.getParameters().getNumFactors(), new CRFCacheStaleIndicator(crf)); optimizer = null; } return optimizable; }
public CRFOptimizableByBatchLabelLikelihood getOptimizableCRF (InstanceList trainingSet) { if (cachedWeightsStructureStamp != crf.weightsStructureChangeStamp) { if (!useNoWeights) { if (useSparseWeights) { crf.setWeightsDimensionAsIn (trainingSet, useSomeUnsupportedTrick); } else { crf.setWeightsDimensionDensely (); } } optimizable = null; cachedWeightsStructureStamp = crf.weightsStructureChangeStamp; } if (optimizable == null || optimizable.trainingSet != trainingSet) { optimizable = new CRFOptimizableByBatchLabelLikelihood(crf, trainingSet, numThreads); optimizable.setGaussianPriorVariance(gaussianPriorVariance); // must shutdown existing thread pool before making a new one if (threadedOptimizable != null) { threadedOptimizable.shutdown(); } threadedOptimizable = new ThreadedOptimizable(optimizable, trainingSet, crf.getParameters().getNumFactors(), new CRFCacheStaleIndicator(crf)); optimizer = null; } return optimizable; }
crf.addFullyConnectedStates(stateNames); crf.setWeightsDimensionDensely(); crf.getState(0).setInitialWeight(1.0); crf.getState(1).setInitialWeight(Transducer.IMPOSSIBLE_WEIGHT);
crf.addFullyConnectedStates(stateNames); crf.setWeightsDimensionDensely(); crf.getState(0).setInitialWeight(1.0); crf.getState(1).setInitialWeight(Transducer.IMPOSSIBLE_WEIGHT);
crf.addFullyConnectedStates(stateNames); crf.setWeightsDimensionDensely(); crf.getState(0).setInitialWeight(1.0); crf.getState(1).setInitialWeight(Transducer.IMPOSSIBLE_WEIGHT);
crf.addFullyConnectedStates(stateNames); crf.setWeightsDimensionDensely(); crf.getState(0).setInitialWeight(1.0); crf.getState(1).setInitialWeight(Transducer.IMPOSSIBLE_WEIGHT);