
cc.mallet.grmm.learning.ACRFEvaluator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jcore-mallet-2.0.9 Show documentation
Show all versions of jcore-mallet-2.0.9 Show documentation
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!
/* Copyright (C) 2003 Univ. of Massachusetts Amherst, Computer Science Dept.
This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).
http://www.cs.umass.edu/~mccallum/mallet
This software is provided under the terms of the Common Public License,
version 1.0, as published by http://www.opensource.org. For further
information, see the file `LICENSE' included with this distribution. */
package cc.mallet.grmm.learning;
import java.io.File;
import java.util.List;
import cc.mallet.grmm.util.GeneralUtils;
import cc.mallet.types.InstanceList;
import cc.mallet.util.FileUtils;
/**
*
* Created: Sun Jan 25 23:28:45 2004
*
* @author Charles Sutton
* @version $Id: ACRFEvaluator.java,v 1.1 2007/10/22 21:37:43 mccallum Exp $
*/
public abstract class ACRFEvaluator {
// Evaulation settings
private int numIterToSkip = 10;
private int numIterToWait = 1;
public void setNumIterToSkip (int n) { numIterToSkip = n; }
public void setNumIterToWait (int n) { numIterToWait = n; }
/**
* Evalutes the model in the middle of training.
* @param acrf Model tha is being trained.
* @param iter How many iterations have been completed.
* @param training Training set.
* @param validation Validation set; may be null.
* @param testing Testing set; maybe null.
* @return Whether to continue training. If return is false, training should be be stopped.
*/
public abstract boolean evaluate (ACRF acrf, int iter,
InstanceList training,
InstanceList validation,
InstanceList testing);
public abstract void test (InstanceList gold, List returned,
String description);
public void test (ACRF acrf, InstanceList data, String description)
{
List ret = acrf.getBestLabels (data);
test (data, ret, description);
}
private File outputPrefix;
public void setOutputPrefix (File file) { outputPrefix = file; }
protected File makeOutputFile ()
{
try {
String name = GeneralUtils.classShortName (this);
return FileUtils.uniqueFile (outputPrefix, name, ".log");
} catch (java.io.IOException e) {
throw new RuntimeException (e);
}
}
protected boolean shouldDoEvaluate (int iter)
{
if (iter < numIterToWait) {
return false;
} else {
return (numIterToSkip <= 0) || (iter % numIterToSkip == 0);
}
}
} // ACRFEvaluator
© 2015 - 2025 Weber Informatics LLC | Privacy Policy