package edu.fudan.ml.feature;
import edu.fudan.ml.feature.Generator;
import edu.fudan.ml.types.Instance;
import edu.fudan.ml.types.sv.BinarySparseVector;
import edu.fudan.ml.types.sv.HashSparseVector;
import edu.fudan.ml.types.sv.ISparseVector;
import edu.fudan.ml.types.sv.SparseVector;
/**
* 结构化特征生成类
*
* @version Feb 16, 2009
*/
public class SFGenerator extends Generator {
private static final long serialVersionUID = 6404015214630864081L;
/**
* 构造函数
*/
public SFGenerator() {
}
@Override
public ISparseVector getVector(Instance inst, Object label) {
int[] data = (int[]) inst.getData();
ISparseVector fv = new BinarySparseVector(data.length);
for(int i = 0; i < data.length; i++) {
int idx = data[i]+(Integer)label;
fv.put(idx);
}
return fv;
}
}