本文整理汇总了Java中cc.mallet.fst.MEMM.setWeightsDimensionAsIn方法的典型用法代码示例。如果您正苦于以下问题:Java MEMM.setWeightsDimensionAsIn方法的具体用法?Java MEMM.setWeightsDimensionAsIn怎么用?Java MEMM.setWeightsDimensionAsIn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cc.mallet.fst.MEMM
的用法示例。
在下文中一共展示了MEMM.setWeightsDimensionAsIn方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testSpaceSerializable
import cc.mallet.fst.MEMM; //导入方法依赖的package包/类
public void testSpaceSerializable () throws IOException, ClassNotFoundException
{
Pipe p = makeSpacePredictionPipe ();
InstanceList training = new InstanceList (p);
training.addThruPipe (new ArrayIterator (data));
MEMM memm = new MEMM (p, null);
memm.addFullyConnectedStatesForLabels ();
memm.addStartState();
memm.setWeightsDimensionAsIn(training);
MEMMTrainer memmt = new MEMMTrainer (memm);
memmt.train (training, 10);
MEMM memm2 = (MEMM) TestSerializable.cloneViaSerialization (memm);
Optimizable.ByGradientValue mcrf1 = memmt.getOptimizableMEMM(training);
double val1 = mcrf1.getValue ();
Optimizable.ByGradientValue mcrf2 = memmt.getOptimizableMEMM(training);
double val2 = mcrf2.getValue ();
assertEquals (val1, val2, 1e-5);
}
示例2: disabledtestPrint
import cc.mallet.fst.MEMM; //导入方法依赖的package包/类
public void disabledtestPrint ()
{
Pipe p = new SerialPipes (new Pipe[] {
new CharSequence2TokenSequence("."),
new TokenText(),
new TestMEMM.TestMEMMTokenSequenceRemoveSpaces(),
new TokenSequence2FeatureVectorSequence(),
new PrintInputAndTarget(),
});
InstanceList one = new InstanceList (p);
String[] data = new String[] { "ABCDE", };
one.addThruPipe (new ArrayIterator (data));
MEMM crf = new MEMM (p, null);
crf.addFullyConnectedStatesForLabels();
crf.setWeightsDimensionAsIn (one);
MEMMTrainer memmt = new MEMMTrainer (crf);
MEMMTrainer.MEMMOptimizableByLabelLikelihood mcrf = memmt.getOptimizableMEMM(one);
double[] params = new double[mcrf.getNumParameters()];
for (int i = 0; i < params.length; i++) {
params [i] = i;
}
mcrf.setParameters (params);
crf.print ();
}
示例3: disabledtestPrint
import cc.mallet.fst.MEMM; //导入方法依赖的package包/类
public void disabledtestPrint ()
{
Pipe p = new SerialPipes (new Pipe[] {
new CharSequence2TokenSequence("."),
new TokenText(),
new TestMEMMTokenSequenceRemoveSpaces(),
new TokenSequence2FeatureVectorSequence(),
new PrintInputAndTarget(),
});
InstanceList one = new InstanceList (p);
String[] data = new String[] { "ABCDE", };
one.addThruPipe (new ArrayIterator (data));
MEMM crf = new MEMM (p, null);
crf.addFullyConnectedStatesForLabels();
crf.setWeightsDimensionAsIn (one);
MEMMTrainer memmt = new MEMMTrainer (crf);
MEMMTrainer.MEMMOptimizableByLabelLikelihood mcrf = memmt.getOptimizableMEMM(one);
double[] params = new double[mcrf.getNumParameters()];
for (int i = 0; i < params.length; i++) {
params [i] = i;
}
mcrf.setParameters (params);
crf.print ();
}
示例4: ignoretestSpaceSerializable
import cc.mallet.fst.MEMM; //导入方法依赖的package包/类
public void ignoretestSpaceSerializable () throws IOException, ClassNotFoundException
{
Pipe p = makeSpacePredictionPipe ();
InstanceList training = new InstanceList (p);
training.addThruPipe (new ArrayIterator (data));
MEMM memm = new MEMM (p, null);
memm.addFullyConnectedStatesForLabels ();
memm.addStartState();
memm.setWeightsDimensionAsIn(training);
MEMMTrainer memmt = new MEMMTrainer (memm);
memmt.train (training, 10);
MEMM memm2 = (MEMM) TestSerializable.cloneViaSerialization (memm);
Optimizable.ByGradientValue mcrf1 = memmt.getOptimizableMEMM(training);
double val1 = mcrf1.getValue ();
Optimizable.ByGradientValue mcrf2 = memmt.getOptimizableMEMM(training);
double val2 = mcrf2.getValue ();
assertEquals (val1, val2, 1e-5);
}
示例5: testSpaceMaximizable
import cc.mallet.fst.MEMM; //导入方法依赖的package包/类
public void testSpaceMaximizable ()
{
Pipe p = makeSpacePredictionPipe ();
InstanceList training = new InstanceList (p);
// String[] data = { TestMEMM.data[0], }; // TestMEMM.data[1], TestMEMM.data[2], TestMEMM.data[3], };
// String[] data = { "ab" };
training.addThruPipe (new ArrayIterator (data));
// CRF4 memm = new CRF4 (p, null);
MEMM memm = new MEMM (p, null);
memm.addFullyConnectedStatesForLabels ();
memm.addStartState();
memm.setWeightsDimensionAsIn(training);
MEMMTrainer memmt = new MEMMTrainer (memm);
// memm.gatherTrainingSets (training); // ANNOYING: Need to set up per-instance training sets
memmt.train (training, 1); // Set weights dimension, gathers training sets, etc.
// memm.print();
// memm.printGradient = true;
// memm.printInstanceLists();
// memm.setGaussianPriorVariance (Double.POSITIVE_INFINITY);
Optimizable.ByGradientValue mcrf = memmt.getOptimizableMEMM(training);
TestOptimizable.setNumComponents (150);
TestOptimizable.testValueAndGradient (mcrf);
}
示例6: ignoretestSpaceMaximizable
import cc.mallet.fst.MEMM; //导入方法依赖的package包/类
public void ignoretestSpaceMaximizable ()
{
Pipe p = makeSpacePredictionPipe ();
InstanceList training = new InstanceList (p);
// String[] data = { TestMEMM.data[0], }; // TestMEMM.data[1], TestMEMM.data[2], TestMEMM.data[3], };
// String[] data = { "ab" };
training.addThruPipe (new ArrayIterator (data));
// CRF4 memm = new CRF4 (p, null);
MEMM memm = new MEMM (p, null);
memm.addFullyConnectedStatesForLabels ();
memm.addStartState();
memm.setWeightsDimensionAsIn(training);
MEMMTrainer memmt = new MEMMTrainer (memm);
// memm.gatherTrainingSets (training); // ANNOYING: Need to set up per-instance training sets
memmt.train (training, 1); // Set weights dimension, gathers training sets, etc.
// memm.print();
// memm.printGradient = true;
// memm.printInstanceLists();
// memm.setGaussianPriorVariance (Double.POSITIVE_INFINITY);
Optimizable.ByGradientValue mcrf = memmt.getOptimizableMEMM(training);
TestOptimizable.setNumComponents (150);
TestOptimizable.testValueAndGradient (mcrf);
}
示例7: disabledtestAddOrderNStates
import cc.mallet.fst.MEMM; //导入方法依赖的package包/类
public void disabledtestAddOrderNStates ()
{
Pipe p = makeSpacePredictionPipe ();
InstanceList instances = new InstanceList (p);
instances.addThruPipe (new ArrayIterator(data));
InstanceList[] lists = instances.split (new java.util.Random (678), new double[]{.5, .5});
// Compare 3 CRFs trained with addOrderNStates, and make sure
// that having more features leads to a higher likelihood
MEMM crf1 = new MEMM(p.getDataAlphabet(), p.getTargetAlphabet());
crf1.addOrderNStates (lists [0],
new int[] { 1, },
new boolean[] { false, },
"START",
null,
null,
false);
crf1.setWeightsDimensionAsIn(lists[0]);
MEMMTrainer memmt1 = new MEMMTrainer (crf1);
memmt1.train(lists [0]);
MEMM crf2 = new MEMM(p.getDataAlphabet(), p.getTargetAlphabet());
crf2.addOrderNStates (lists [0],
new int[] { 1, 2, },
new boolean[] { false, true },
"START",
null,
null,
false);
crf2.setWeightsDimensionAsIn(lists[0]);
MEMMTrainer memmt2 = new MEMMTrainer (crf2);
memmt2.train(lists [0]);
MEMM crf3 = new MEMM(p.getDataAlphabet(), p.getTargetAlphabet());
crf3.addOrderNStates (lists [0],
new int[] { 1, 2, },
new boolean[] { false, false },
"START",
null,
null,
false);
crf3.setWeightsDimensionAsIn(lists[0]);
MEMMTrainer memmt3 = new MEMMTrainer (crf3);
memmt3.train(lists [0]);
// Prevent cached values
double lik1 = getLikelihood (memmt1, lists[0]);
double lik2 = getLikelihood (memmt2, lists[0]);
double lik3 = getLikelihood (memmt3, lists[0]);
System.out.println("CRF1 likelihood "+lik1);
assertTrue ("Final zero-order likelihood <"+lik1+"> greater than first-order <"+lik2+">",
lik1 < lik2);
assertTrue ("Final defaults-only likelihood <"+lik2+"> greater than full first-order <"+lik3+">",
lik2 < lik3);
assertEquals (-167.335971702, lik1, 0.0001);
assertEquals (-166.212235389, lik2, 0.0001);
assertEquals ( -90.386005741, lik3, 0.0001);
}