package rainbownlp.machinelearning;
import java.sql.SQLException;
import java.util.List;
import rainbownlp.util.FileUtil;
public abstract class MultiThreadedFeature extends Thread implements IFeatureCalculator {
protected List<MLExample> examples;
public MultiThreadedFeature(List<MLExample> examplesToProcess){
examples = examplesToProcess;
}
@Override
public abstract void calculateFeatures(MLExample exampleToProcess)
throws SQLException, Exception;
@Override
public void run() {
int counter = 0;
for (MLExample example:examples)
{
try {
calculateFeatures(example);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
counter++;
FileUtil.logLine(null, "Processed : "+counter +"/"+examples.size());
}
}
}