当前位置: 首页>>代码示例>>Java>>正文


Java MaxLatticeDefault类代码示例

本文整理汇总了Java中cc.mallet.fst.MaxLatticeDefault的典型用法代码示例。如果您正苦于以下问题:Java MaxLatticeDefault类的具体用法?Java MaxLatticeDefault怎么用?Java MaxLatticeDefault使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


MaxLatticeDefault类属于cc.mallet.fst包,在下文中一共展示了MaxLatticeDefault类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: apply

import cc.mallet.fst.MaxLatticeDefault; //导入依赖的package包/类
/**
 * Apply a transducer to an input sequence to produce the k highest-scoring
 * output sequences.
 *
 * @param model the <code>Transducer</code>
 * @param input the input sequence
 * @param k the number of answers to return
 * @return array of the k highest-scoring output sequences
 */
public static Sequence[] apply(Transducer model, Sequence input, int k)
{
  Sequence[] answers;
  if (k == 1) {
    answers = new Sequence[1];
    answers[0] = model.transduce (input);
  }
  else {
    MaxLatticeDefault lattice =
            new MaxLatticeDefault (model, input, null, cacheSizeOption.value());

    answers = lattice.bestOutputSequences(k).toArray(new Sequence[0]);
  }
  return answers;
}
 
开发者ID:kostagiolasn,项目名称:NucleosomePatternClassifier,代码行数:25,代码来源:SimpleTaggerWithConstraints.java

示例2: infoForDoc

import cc.mallet.fst.MaxLatticeDefault; //导入依赖的package包/类
private static ExtorInfo infoForDoc (String doc, String desc, String idx, DocumentExtraction docextr,
                                         CRFExtractor extor, boolean showLattice)
  {
//    Instance c2 = new Instance (doc, null, null, null, extor.getTokenizationPipe ());
//    TokenSequence input = (TokenSequence) c2.getData ();
    TokenSequence input = (TokenSequence) docextr.getInput (); 
    LabelSequence target = docextr.getTarget ();
    Sequence predicted = docextr.getPredictedLabels ();

    ExtorInfo info = new ExtorInfo (input, predicted, target, desc, idx);

    if (showLattice == true) {
      CRF crf = extor.getCrf();
      // xxx perhaps the next two lines could be a transducer method???
      Instance carrier = extor.getFeaturePipe().pipe(new Instance (input, null, null, null));
      info.fvs = (FeatureVectorSequence) carrier.getData ();
      info.lattice = new MaxLatticeDefault (crf, (Sequence) carrier.getData(), null);
      info.bestStates = info.lattice.bestOutputSequence();
    }

    return info;
  }
 
开发者ID:kostagiolasn,项目名称:NucleosomePatternClassifier,代码行数:23,代码来源:LatticeViewer.java

示例3: test

import cc.mallet.fst.MaxLatticeDefault; //导入依赖的package包/类
/**
 * 
 * @param num_best
 * @return
 */
@SuppressWarnings("unchecked")
public List<CRFResult> test(Integer num_best) {
	List<CRFResult> groups = new ArrayList<CRFResult>();
	for (Instance instance : this.test_data) {
		FeatureVectorSequence input = (FeatureVectorSequence) instance.getData();
		List<Sequence<Object>> seqs = null;
		if (num_best > 1)
			seqs = new MaxLatticeDefault(model, input, null, 100000).bestOutputSequences(num_best);
		else
			seqs = Arrays.asList((Sequence<Object>) model.transduce(input));
		if (isError(seqs, input))
			System.err.println("[ERROR] Error output at " + input);

		List<List<String>> outputs = new ArrayList<List<String>>();
		for (Sequence<Object> seq : seqs)
			outputs.add(toTagStrings(seq));

		groups.add(new CRFResult(input, outputs));
	}

	return groups;
}
 
开发者ID:hakchul77,项目名称:irnlp_toolkit,代码行数:28,代码来源:MalletWrapper.java

示例4: getStatistics

import cc.mallet.fst.MaxLatticeDefault; //导入依赖的package包/类
private void getStatistics(CRF crf, Instance inst,
		Map<Instance, Double> entropyMap, Map<Instance, Double> probMap,
		boolean setTarget) {
	FeatureVectorSequence input = (FeatureVectorSequence) inst.getData();
	MaxLatticeDefault maxLattice = new MaxLatticeDefault(crf, input);
	Sequence output = maxLattice.bestOutputSequence();
	double labeled = new SumLatticeDefault(crf, input, output)
			.getTotalWeight();
	SumLattice lattice = new SumLatticeDefault(crf, input, true);
	double unlabeled = lattice.getTotalWeight();
	EntropyLattice entropyLattice = new EntropyLattice(input,
			lattice.getGammas(), lattice.getXis(), crf, null, 1);
	double entropy = -entropyLattice.getEntropy();
	double prob = Math.exp(labeled - unlabeled);
	entropyMap.put(inst, entropy);
	probMap.put(inst, prob);
	if (setTarget) {
		inst.unLock();
		int n = output.size();
		LabelSequence seq = new LabelSequence(
				(LabelAlphabet) crf.getOutputAlphabet(), n);
		for (int i = 0; i < output.size(); i++) {
			seq.add(output.get(i));
		}
		inst.setTarget(seq);
		inst.lock();
	}
}
 
开发者ID:siqil,项目名称:udaner,代码行数:29,代码来源:CRFTrainerByBootstrapping.java

示例5: testViterbi

import cc.mallet.fst.MaxLatticeDefault; //导入依赖的package包/类
public void testViterbi ()
{
	double weight = new MaxLatticeDefault (transducer, seq).bestWeight();
	System.out.println ("weight = "+weight);
	assertTrue (weight == seqWeight);
}
 
开发者ID:kostagiolasn,项目名称:NucleosomePatternClassifier,代码行数:7,代码来源:TestFeatureTransducer.java

示例6: testMaxLattice

import cc.mallet.fst.MaxLatticeDefault; //导入依赖的package包/类
public void testMaxLattice() {
	int inputVocabSize = 1;
	int numStates = 2;
	Alphabet inputAlphabet = new Alphabet();
	for (int i = 0; i < inputVocabSize; i++)
		inputAlphabet.lookupIndex("feature" + i);
	Alphabet outputAlphabet = new Alphabet();

	CRF crf = new CRF(inputAlphabet, outputAlphabet);

	String[] stateNames = new String[numStates];
	for (int i = 0; i < numStates; i++)
		stateNames[i] = "state" + i;
	crf.addFullyConnectedStates(stateNames);

	crf.setWeightsDimensionDensely();
	crf.getState(0).setInitialWeight(1.0);
	crf.getState(1).setInitialWeight(Transducer.IMPOSSIBLE_WEIGHT);
	crf.getState(0).setFinalWeight(0.0);
	crf.getState(1).setFinalWeight(0.0);
	crf.setParameter(0, 0, 0, Transducer.IMPOSSIBLE_WEIGHT); // state0
	// self-transition
	crf.setParameter(0, 1, 0, 1.0); // state0->state1
	crf.setParameter(1, 1, 0, 1.0); // state1 self-transition
	crf.setParameter(1, 0, 0, Transducer.IMPOSSIBLE_WEIGHT); // state1->state0

	FeatureVectorSequence fvs = new FeatureVectorSequence(
			new FeatureVector[] {
					new FeatureVector((Alphabet) crf.getInputAlphabet(),
							new double[] { 1 }),
					new FeatureVector((Alphabet) crf.getInputAlphabet(),
							new double[] { 1 }),
					new FeatureVector((Alphabet) crf.getInputAlphabet(),
							new double[] { 1 }), });

	MaxLattice lattice = new MaxLatticeDefault(crf, fvs);
	Sequence<Transducer.State> viterbiPath = lattice.bestStateSequence();
	// We start in state0
	assertTrue(viterbiPath.get(0) == crf.getState(0));
	// We go to state1
	assertTrue(viterbiPath.get(1) == crf.getState(1));
	// And on through a self-transition to state1 again
	assertTrue(viterbiPath.get(2) == crf.getState(1));
}
 
开发者ID:kostagiolasn,项目名称:NucleosomePatternClassifier,代码行数:45,代码来源:TestCRF.java

示例7: testStateAddWeights

import cc.mallet.fst.MaxLatticeDefault; //导入依赖的package包/类
public void testStateAddWeights() {
	Pipe p = makeSpacePredictionPipe(); // This used to be
	// MEMM.makeSpacePredictionPipe(),
	// but I don't know why -akm 12/2007
	InstanceList training = new InstanceList(p);
	training.addThruPipe(new ArrayIterator(data)); // This used to be
	// MEMM.data, but I
	// don't know why -akm
	// 12/2007

	CRF crf = new CRF(p, null);
	crf.addFullyConnectedStatesForLabels();
	CRFTrainerByLabelLikelihood crft = new CRFTrainerByLabelLikelihood(crf);
	crft.trainIncremental(training);

	// Check that the notstart state is used at test time
	Sequence input = (Sequence) training.get(0).getData();
	Sequence output = new MaxLatticeDefault(crf, input)
			.bestOutputSequence();

	boolean notstartFound = false;
	for (int i = 0; i < output.size(); i++) {
		if (output.get(i).toString().equals("notstart")) {
			notstartFound = true;
		}
	}
	System.err.println(output.toString());
	assertTrue(notstartFound);

	// Now add -infinite weight onto a transition, and make sure that it's
	// honored.
	CRF.State state = crf.getState("notstart");
	int widx = crf.getWeightsIndex("BadBad");
	int numFeatures = crf.getInputAlphabet().size();
	SparseVector w = new SparseVector(new double[numFeatures]);
	w.setAll(Double.NEGATIVE_INFINITY);
	crf.setWeights(widx, w);

	state.addWeight(0, "BadBad");
	state.addWeight(1, "BadBad");

	// Verify that this effectively prevents the notstart state from being
	// used
	output = new MaxLatticeDefault(crf, input).bestOutputSequence();
	notstartFound = false;
	for (int i = 0; i < output.size() - 1; i++) {
		if (output.get(i).toString().equals("notstart")) {
			notstartFound = true;
		}
	}
	assertTrue(!notstartFound);
}
 
开发者ID:kostagiolasn,项目名称:NucleosomePatternClassifier,代码行数:53,代码来源:TestCRF.java

示例8: bestSequences

import cc.mallet.fst.MaxLatticeDefault; //导入依赖的package包/类
public opennlp.tools.util.Sequence[] bestSequences(int numSequences,
    T[] sequence, Object[] additionalContext,
    BeamSearchContextGenerator<T> cg, SequenceValidator<T> validator) {

  // TODO: CRF.getInputAlphabet
  Alphabet dataAlphabet = model.getInputPipe().getAlphabet();
  
  FeatureVector featureVectors[] = new FeatureVector[sequence.length];
  
  // TODO:: The feature generator needs to get the detected sequence in the end
  // to update the adaptive data!
  String prior[] = new String[sequence.length];
  Arrays.fill(prior, "s"); // <- HACK, this will degrade performance!
  
  // TODO: Put together a feature generator which doesn't fail if outcomes is null!
  for (int i = 0; i < sequence.length; i++) {
    String features[] = cg.getContext(i, sequence, null, additionalContext);
    
    List<Integer> malletFeatureList = new ArrayList<>(features.length);
    
    for (int featureIndex = 0; featureIndex < features.length; featureIndex++) {
      if (dataAlphabet.contains(features[featureIndex])) {
        malletFeatureList.add(dataAlphabet.lookupIndex(features[featureIndex]));
      }
    }

    int malletFeatures[] = new int[malletFeatureList.size()];
    for (int k = 0; k < malletFeatureList.size(); k++) {
      malletFeatures[k] = malletFeatureList.get(k);
    }
    
    // Note: Might contain a feature more than once ... will that work ?!
    featureVectors[i] = new FeatureVector(dataAlphabet, malletFeatures);
  }
  
  FeatureVectorSequence malletSequence = new FeatureVectorSequence(featureVectors);
  
  Sequence[] answers = null;
  if (numSequences == 1) {
    answers = new Sequence[1];
    answers[0] = model.transduce(malletSequence);
  } else {
    MaxLatticeDefault lattice = new MaxLatticeDefault(model, malletSequence, null, 3);

    answers = lattice.bestOutputSequences(numSequences).toArray(new Sequence[0]);
  }

  opennlp.tools.util.Sequence[] outcomeSequences = new opennlp.tools.util.Sequence[answers.length];
  
  for (int i = 0; i < answers.length; i++) {
    Sequence seq = answers[i];
    
    List<String> outcomes = new ArrayList<>(seq.size());
    
    for (int j = 0; j < seq.size(); j++) {
      outcomes.add(seq.get(j).toString());
    }
    
    outcomeSequences[i] = new opennlp.tools.util.Sequence(outcomes);
  }
  
  return outcomeSequences;
}
 
开发者ID:kottmann,项目名称:opennlp-mallet-addon,代码行数:64,代码来源:TransducerModel.java

示例9: ignoretestViterbi

import cc.mallet.fst.MaxLatticeDefault; //导入依赖的package包/类
public void ignoretestViterbi ()
{
	double weight = new MaxLatticeDefault (transducer, seq).bestWeight();
	System.out.println ("weight = "+weight);
	assertTrue (weight == seqWeight);
}
 
开发者ID:cmoen,项目名称:mallet,代码行数:7,代码来源:TestFeatureTransducer.java


注:本文中的cc.mallet.fst.MaxLatticeDefault类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。