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


Java Classification.getLabelVector方法代码示例

本文整理汇总了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]++;
            }
        }
    }
}
 
开发者ID:kostagiolasn,项目名称:NucleosomePatternClassifier,代码行数:40,代码来源:ROCData.java

示例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;
}
 
开发者ID:kostagiolasn,项目名称:NucleosomePatternClassifier,代码行数:39,代码来源:AddClassifierTokenPredictions.java

示例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;
}
 
开发者ID:kottmann,项目名称:opennlp-mallet-addon,代码行数:39,代码来源:ClassifierModel.java


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