本文整理汇总了Java中cc.mallet.fst.MEMM.State类的典型用法代码示例。如果您正苦于以下问题:Java State类的具体用法?Java State怎么用?Java State使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
State类属于cc.mallet.fst.MEMM包,在下文中一共展示了State类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: printInstanceLists
import cc.mallet.fst.MEMM.State; //导入依赖的package包/类
public void printInstanceLists ()
{
for (int i = 0; i < memm.numStates(); i++) {
State state = (State) memm.getState (i);
InstanceList training = state.trainingSet;
System.out.println ("State "+i+" : "+state.getName());
if (training == null) {
System.out.println ("No data");
continue;
}
for (int j = 0; j < training.size(); j++) {
Instance inst = training.get (j);
System.out.println ("From : "+state.getName()+" To : "+inst.getTarget());
System.out.println ("Instance "+j);
System.out.println (inst.getTarget());
System.out.println (inst.getData());
}
}
}
示例2: gatherExpectationsOrConstraints
import cc.mallet.fst.MEMM.State; //导入依赖的package包/类
protected double gatherExpectationsOrConstraints (boolean gatherConstraints)
{
// Instance values must either always or never be included in
// the total values; we can't just sometimes skip a value
// because it is infinite, this throws off the total values.
boolean initializingInfiniteValues = false;
CRF.Factors factors = gatherConstraints ? constraints : expectations;
CRF.Factors.Incrementor factorIncrementor = factors.new Incrementor ();
if (infiniteValues == null) {
infiniteValues = new BitSet ();
initializingInfiniteValues = true;
}
double labelLogProb = 0;
for (int i = 0; i < memm.numStates(); i++) {
MEMM.State s = (State) memm.getState (i);
if (s.trainingSet == null) {
System.out.println ("Empty training set for state "+s.name);
continue;
}
for (int j = 0; j < s.trainingSet.size(); j++) {
Instance instance = s.trainingSet.get (j);
double instWeight = s.trainingSet.getInstanceWeight (j);
FeatureVector fv = (FeatureVector) instance.getData ();
String labelString = (String) instance.getTarget ();
TransitionIterator iter = new TransitionIterator (s, fv, gatherConstraints?labelString:null, memm);
while (iter.hasNext ()) {
// gsc
iter.nextState(); // advance the iterator
// State destination = (MEMM.State) iter.nextState(); // Just to advance the iterator
double weight = iter.getWeight();
factorIncrementor.incrementTransition(iter, Math.exp(weight) * instWeight);
//iter.incrementCount (Math.exp(weight) * instWeight);
if (!gatherConstraints && iter.getOutput() == labelString) {
if (!Double.isInfinite (weight))
labelLogProb += instWeight * weight; // xxx ?????
else {
logger.warning ("State "+i+" transition "+j+" has infinite cost; skipping.");
if (initializingInfiniteValues)
throw new IllegalStateException ("Infinite-cost transitions not yet supported"); //infiniteValues.set (j);
else if (!infiniteValues.get(j))
throw new IllegalStateException ("Instance i used to have non-infinite value, "
+"but now it has infinite value.");
}
}
}
}
}
// Force initial & final weight parameters to 0 by making sure that
// whether factor refers to expectation or constraint, they have the same value.
for (int i = 0; i < memm.numStates(); i++) {
factors.initialWeights[i] = 0.0;
factors.finalWeights[i] = 0.0;
}
return labelLogProb;
}
示例3: gatherExpectationsOrConstraints
import cc.mallet.fst.MEMM.State; //导入依赖的package包/类
protected double gatherExpectationsOrConstraints (boolean gatherConstraints)
{
// Instance values must either always or never be included in
// the total values; we can't just sometimes skip a value
// because it is infinite, this throws off the total values.
boolean initializingInfiniteValues = false;
CRF.Factors factors = gatherConstraints ? constraints : expectations;
CRF.Factors.Incrementor factorIncrementor = factors.new Incrementor ();
if (infiniteValues == null) {
infiniteValues = new BitSet ();
initializingInfiniteValues = true;
}
double labelLogProb = 0;
for (int i = 0; i < memm.numStates(); i++) {
State s = (State) memm.getState (i);
if (s.trainingSet == null) {
System.out.println ("Empty training set for state "+s.name);
continue;
}
for (int j = 0; j < s.trainingSet.size(); j++) {
Instance instance = s.trainingSet.get (j);
double instWeight = s.trainingSet.getInstanceWeight (j);
FeatureVector fv = (FeatureVector) instance.getData ();
String labelString = (String) instance.getTarget ();
TransitionIterator iter = new TransitionIterator (s, fv, gatherConstraints?labelString:null, memm);
while (iter.hasNext ()) {
// gsc
iter.nextState(); // advance the iterator
// State destination = (MEMM.State) iter.nextState(); // Just to advance the iterator
double weight = iter.getWeight();
factorIncrementor.incrementTransition(iter, Math.exp(weight) * instWeight);
//iter.incrementCount (Math.exp(weight) * instWeight);
if (!gatherConstraints && iter.getOutput() == labelString) {
if (!Double.isInfinite (weight))
labelLogProb += instWeight * weight; // xxx ?????
else {
logger.warning ("State "+i+" transition "+j+" has infinite cost; skipping.");
if (initializingInfiniteValues)
throw new IllegalStateException ("Infinite-cost transitions not yet supported"); //infiniteValues.set (j);
else if (!infiniteValues.get(j))
throw new IllegalStateException ("Instance i used to have non-infinite value, "
+"but now it has infinite value.");
}
}
}
}
}
// Force initial & final weight parameters to 0 by making sure that
// whether factor refers to expectation or constraint, they have the same value.
for (int i = 0; i < memm.numStates(); i++) {
factors.initialWeights[i] = 0.0;
factors.finalWeights[i] = 0.0;
}
return labelLogProb;
}