package edu.fudan.nlp.pipe.seq;
import java.util.Arrays;
import edu.fudan.ml.types.Instance;
import edu.fudan.nlp.pipe.Pipe;
/**
* 将数据和标签分开
*
* @author xpqiu
* @deprecated 不再使用
*/
public class SplitDataAndTarget extends Pipe{
private static final long serialVersionUID = 331639154658696010L;
private int before = -1;
private int target = -1;
public SplitDataAndTarget() {
this(-1, -1);
}
public SplitDataAndTarget(int before, int target) {
assert(before < target);
this.before = before;
this.target = target;
}
public void addThruPipe(Instance instance) {
String[][] seq = (String[][]) instance.getData();
String[][] data = new String[seq.length][];
String[] tags = new String[seq.length];
for (int i = 0; i < seq.length; i++) {
String[] arr = seq[i];
if (arr.length < 2) {
System.err
.println("The number of column must be 2 at least. skip");
System.err.println(arr[0]);
continue;
}
if (before == -1) {
before = target = arr.length - 1;
} else {
if (before >= arr.length) {
System.err.println();
}
if (target >= arr.length) {
System.err.println();
}
}
data[i] = Arrays.copyOfRange(arr, 0, before);
tags[i] = arr[target];
}
instance.setData(data);
instance.setTarget(tags);
}
}