package edu.fudan.nlp.pipe.templet; import java.util.ArrayList; import java.util.List; import edu.fudan.ml.types.Instance; import edu.fudan.ml.types.alphabet.AlphabetFactory; import edu.fudan.ml.types.alphabet.IFeatureAlphabet; import edu.fudan.ml.types.sv.BinarySparseVector; import edu.fudan.nlp.pipe.Pipe; public class TemplatePipe extends Pipe { private static final long serialVersionUID = -4863048529473614384L; private IFeatureAlphabet features; private ArrayList<RETemplate> group; public TemplatePipe(AlphabetFactory af,RETemplateGroup group){ this.features = af.DefaultFeatureAlphabet(); this.group = group.group; } @Override public void addThruPipe(Instance inst) throws Exception { String str = (String) inst.getSource(); BinarySparseVector sv = (BinarySparseVector) inst.getData(); List<RETemplate> templates = new ArrayList<RETemplate>(); for(int i=0;i<group.size();i++){ RETemplate qt = group.get(i); float w = qt.matches(str); if(w>0){ // System.out.println(qt.comment); int id = features.lookupIndex("template:"+qt.comment); sv.put(id); } } } }