All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cc.mallet.classify.ClassifierEvaluator Maven / Gradle / Ivy

Go to download

MALLET is a Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text.

The newest version!
package cc.mallet.classify;

import java.util.logging.Logger;

import cc.mallet.optimize.Optimizable;
import cc.mallet.types.InstanceList;
import cc.mallet.util.MalletLogger;

public abstract class ClassifierEvaluator 
{
  private static Logger logger = MalletLogger.getLogger(ClassifierEvaluator.class.getName());

	InstanceList[] instanceLists;
	String[] instanceListDescriptions;
	
	public ClassifierEvaluator (InstanceList[] instanceLists, String[] instanceListDescriptions) {
		this.instanceLists = instanceLists;
		this.instanceListDescriptions = instanceListDescriptions;
	}
	
	public ClassifierEvaluator (InstanceList instanceList1, String instanceListDescription1) {
		this(new InstanceList[] {instanceList1}, new String[] {instanceListDescription1});
	}
	
	public ClassifierEvaluator (InstanceList instanceList1, String instanceListDescription1,
			InstanceList instanceList2, String instanceListDescription2) {
		this(new InstanceList[] {instanceList1, instanceList2}, new String[] {instanceListDescription1, instanceListDescription2});
	}

	public ClassifierEvaluator (InstanceList instanceList1, String instanceListDescription1,
			InstanceList instanceList2, String instanceListDescription2,
			InstanceList instanceList3, String instanceListDescription3) {
		this(new InstanceList[] {instanceList1, instanceList2, instanceList3}, 
				new String[] {instanceListDescription1, instanceListDescription2, instanceListDescription3});
	}

	
	/**
   * Evaluates a ClassifierTrainer and its Classifier on the instance lists specified in the constructor.               .
   * 

* The default implementation calls the evaluator's evaluateInstanceList on each instance list. * * @param ct The TransducerTrainer to evaluate. */ public void evaluate (ClassifierTrainer ct) { this.preamble(ct); for (int k = 0; k < instanceLists.length; k++) if (instanceLists[k] != null) evaluateInstanceList (ct, instanceLists[k], instanceListDescriptions[k]); } protected void preamble (ClassifierTrainer ct) { if (ct instanceof ClassifierTrainer.ByOptimization) { Optimizable opt; int iteration = ((ClassifierTrainer.ByOptimization)ct).getIteration(); if ((opt = ((ClassifierTrainer.ByOptimization)ct).getOptimizer().getOptimizable()) instanceof Optimizable.ByValue) logger.info ("Evaluator iteration="+iteration+" cost="+((Optimizable.ByValue)opt).getValue()); else logger.info ("Evaluator iteration="+iteration+" cost=NA (not Optimizable.ByValue)"); } } public abstract void evaluateInstanceList (ClassifierTrainer trainer, InstanceList instances, String description); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy