本文整理汇总了Java中cc.mallet.classify.Classification.getLabelVector方法的典型用法代码示例。如果您正苦于以下问题:Java Classification.getLabelVector方法的具体用法?Java Classification.getLabelVector怎么用?Java Classification.getLabelVector使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cc.mallet.classify.Classification
的用法示例。
在下文中一共展示了Classification.getLabelVector方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: add
import cc.mallet.classify.Classification; //导入方法依赖的package包/类
/**
* Adds classification results to the ROC data
*
* @param trial Trial results to add to ROC data
*/
public void add(Classification classification) {
int correctIndex = classification.getInstance().getLabeling().getBestIndex();
LabelVector lv = classification.getLabelVector();
double[] values = lv.getValues();
if (!Alphabet.alphabetsMatch(this, lv)) {
throw new IllegalArgumentException ("Alphabets do not match");
}
int numLabels = this.labelAlphabet.size();
for (int label = 0; label < numLabels; label++) {
double labelValue = values[label];
int[][] thresholdCounts = this.counts[label];
int threshold = 0;
// add the trial to all the thresholds it would be positive for
for (; threshold < this.thresholds.length && labelValue >= this.thresholds[threshold]; threshold++) {
if (correctIndex == label) {
thresholdCounts[threshold][TRUE_POSITIVE]++;
} else {
thresholdCounts[threshold][FALSE_POSITIVE]++;
}
}
// add the trial to the thresholds it would be negative for
for (; threshold < this.thresholds.length; threshold++) {
if (correctIndex == label) {
thresholdCounts[threshold][FALSE_NEGATIVE]++;
} else {
thresholdCounts[threshold][TRUE_NEGATIVE]++;
}
}
}
}
示例2: pipe
import cc.mallet.classify.Classification; //导入方法依赖的package包/类
/**
* Add the token classifier's predictions as features to the instance.
* This method assumes the input instance contains FeatureVectorSequence as data
*/
public Instance pipe(Instance carrier)
{
FeatureVectorSequence fvs = (FeatureVectorSequence) carrier.getData();
InstanceList ilist = convert(carrier, (Noop) m_tokenClassifiers.getInstancePipe());
assert (fvs.size() == ilist.size());
// For passing instances to the token classifier, each instance's data alphabet needs to
// match that used by the token classifier at training time. For the resulting piped
// instance, each instance's data alphabet needs to contain token classifier's prediction
// as features
FeatureVector[] fva = new FeatureVector[fvs.size()];
for (int i = 0; i < ilist.size(); i++) {
Instance inst = ilist.get(i);
Classification c = m_tokenClassifiers.classify(inst, ! m_inProduction);
LabelVector lv = c.getLabelVector();
AugmentableFeatureVector afv1 = (AugmentableFeatureVector) inst.getData();
int[] indices = afv1.getIndices();
AugmentableFeatureVector afv2 = new AugmentableFeatureVector(m_dataAlphabet,
indices, afv1.getValues(), indices.length + m_predRanks2add.length);
for (int j = 0; j < m_predRanks2add.length; j++) {
Label label = lv.getLabelAtRank(m_predRanks2add[j]);
int idx = m_dataAlphabet.lookupIndex("TOK_PRED=" + label.toString() + "[email protected]_RANK_" + m_predRanks2add[j]);
assert(idx >= 0);
afv2.add(idx, 1);
}
fva[i] = afv2;
}
carrier.setData(new FeatureVectorSequence(fva));
return carrier;
}
示例3: eval
import cc.mallet.classify.Classification; //导入方法依赖的package包/类
public double[] eval(String[] features) {
Alphabet dataAlphabet = classifer.getAlphabet();
List<Integer> malletFeatureList = new ArrayList<>(features.length);
for (String feature : features) {
int featureId = dataAlphabet.lookupIndex(feature);
if (featureId != -1) {
malletFeatureList.add(featureId);
}
}
int malletFeatures[] = new int[malletFeatureList.size()];
for (int i = 0; i < malletFeatureList.size(); i++) {
malletFeatures[i] = malletFeatureList.get(i);
}
FeatureVector fv = new FeatureVector(classifer.getAlphabet(),
malletFeatures);
Instance instance = new Instance(fv, null, null, null);
Classification result = classifer.classify(instance);
LabelVector labeling = result.getLabelVector();
LabelAlphabet targetAlphabet = classifer.getLabelAlphabet();
double outcomes[] = new double[targetAlphabet.size()];
for (int i = 0; i < outcomes.length; i++) {
Label label = targetAlphabet.lookupLabel(i);
int rank = labeling.getRank(label);
outcomes[i] = labeling.getValueAtRank(rank);
}
return outcomes;
}