package edu.fudan.nlp.pipe.seq;
import java.util.ArrayList;
import edu.fudan.ml.types.Instance;
import edu.fudan.nlp.cn.Chars;
import edu.fudan.nlp.pipe.Pipe;
/**
* 在原有序列基础上,增加一列字符类型信息
* @see edu.fudan.nlp.cn.Chars#getType(String)
* @author xpqiu
*
*/
public class AddCharRange extends Pipe {
private static final long serialVersionUID = 3572735523891704313L;
@Override
public void addThruPipe(Instance inst) throws Exception {
Object sdata = inst.getData();
String[][] data;
int colum;
if(sdata instanceof ArrayList){
ArrayList ssdata = (ArrayList) sdata;
colum = ssdata.size();
data = new String[colum+1][];
for(int i=0;i<colum;i++){
ArrayList<String> idata = (ArrayList<String>) ssdata.get(i);
data[i] = idata.toArray(new String[idata.size()]);
}
}else{
return;
}
int len = data[0].length;
data[colum] = new String[len];
for(int i=0;i<len;i++){
data[colum][i] = Chars.getStringType(data[0][i]).toString();
}
inst.setData(data);
}
}