package edu.fudan.nlp.pipe;
import java.io.Serializable;
import edu.fudan.ml.types.Instance;
import edu.fudan.ml.types.InstanceSet;
/**
* 数据类型转换管道,通过一系列的组合将数据从原始方式转为需要的数据类型
* Pipe只能每次连续流水处理一个样本,不能按阶段多遍执行
* 要分阶段多遍执行参见 {@link edu.fudan.ml.types.InstanceSet#loadThruStagePipes(edu.fudan.data.reader.Reader)}
* @author xpqiu
*
*/
public abstract class Pipe implements Serializable{
/**
* 用来判断是否使用类别,以便在无类别使用时删掉
*/
boolean useTarget = false;
/**
* 基本的数据类型转换处理操作,继承类需重新定义实现
* @param inst 样本
* @throws Exception
*/
public abstract void addThruPipe(Instance inst) throws Exception;
/**
* 通过pipe直接处理实例
* @param instSet
* @throws Exception
*/
public void process(InstanceSet instSet) throws Exception {
for(int i=0; i < instSet.size(); i++){
Instance inst = instSet.getInstance(i);
addThruPipe(inst);
}
}
}