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


Java CRF.setWeightsDimensionDensely方法代码示例

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


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

示例1: getCRF

import cc.mallet.fst.CRF; //导入方法依赖的package包/类
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;
}
 
开发者ID:kostagiolasn,项目名称:NucleosomePatternClassifier,代码行数:13,代码来源:SimpleTaggerWithConstraints.java

示例2: testSumLattice

import cc.mallet.fst.CRF; //导入方法依赖的package包/类
public void testSumLattice() {
	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 }), });

	SumLattice lattice = new SumLatticeDefault(crf, fvs, true);
	// We start in state0
	assertTrue(lattice.getGammaProbability(0, crf.getState(0)) == 1.0);
	assertTrue(lattice.getGammaProbability(0, crf.getState(1)) == 0.0);
	// We go to state1
	assertTrue(lattice.getGammaProbability(1, crf.getState(0)) == 0.0);
	assertTrue(lattice.getGammaProbability(1, crf.getState(1)) == 1.0);
	// And on through a self-transition
	assertTrue(lattice
			.getXiProbability(1, crf.getState(1), crf.getState(1)) == 1.0);
	assertTrue(lattice
			.getXiProbability(1, crf.getState(1), crf.getState(0)) == 0.0);
	assertTrue("Lattice weight = " + lattice.getTotalWeight(), lattice
			.getTotalWeight() == 4.0);
	// Gammas at all times sum to 1.0
	for (int time = 0; time < lattice.length() - 1; time++) {
		double gammasum = lattice
				.getGammaProbability(time, crf.getState(0))
				+ lattice.getGammaProbability(time, crf.getState(1));
		assertEquals("Gammas at time step " + time + " sum to " + gammasum,
				1.0, gammasum, 0.0001);
	}
	// Xis at all times sum to 1.0
	for (int time = 0; time < lattice.length() - 1; time++) {
		double xissum = lattice.getXiProbability(time, crf.getState(0), crf
				.getState(0))
				+ lattice.getXiProbability(time, crf.getState(0), crf
						.getState(1))
				+ lattice.getXiProbability(time, crf.getState(1), crf
						.getState(0))
				+ lattice.getXiProbability(time, crf.getState(1), crf
						.getState(1));
		assertEquals("Xis at time step " + time + " sum to " + xissum, 1.0,
				xissum, 0.0001);
	}
}
 
开发者ID:kostagiolasn,项目名称:NucleosomePatternClassifier,代码行数:72,代码来源:TestCRF.java

示例3: testMaxLattice

import cc.mallet.fst.CRF; //导入方法依赖的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


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