int numNewFeatures, int beam1, int beam2) this.fcl = new FeatureConjunction.List (); this.beam1 = beam1; this.beam2 = beam2; fcl.add (new FeatureConjunction (origV, featureIndices)); int index = origV.size()-1; fcl.add (new FeatureConjunction (origV, new int[] {index})); logger.info ("Added feature a "+numFeaturesAdded+" "+gg2.getValueAtRank(i)+ ' ' + gg2.getObjectAtRank(i)); numFeaturesAdded++;
public void induceFeaturesFor (InstanceList ilist, boolean withFeatureShrinkage, boolean addPerClassFeatures) { assert (addPerClassFeatures == false); assert (withFeatureShrinkage == false); FeatureSelection fs = ilist.getFeatureSelection (); assert (ilist.getPerLabelFeatureSelection() == null); if (fcl.size() == 0) return; for (int i = 0; i < ilist.size(); i++) { //System.out.println ("Induced features for instance #"+i); Instance inst = ilist.getInstance(i); Object data = inst.getData (); if (data instanceof AugmentableFeatureVector) { AugmentableFeatureVector afv = (AugmentableFeatureVector) data; fcl.addTo (afv, 1.0, fs); } else if (data instanceof FeatureVectorSequence) { FeatureVectorSequence fvs = (FeatureVectorSequence) data; for (int j = 0; j < fvs.size(); j++) fcl.addTo ((AugmentableFeatureVector) fvs.get(j), 1.0, fs); } else { throw new IllegalArgumentException ("Unsupported instance data type "+data.getClass().getName()); } } }
public void addTo (AugmentableFeatureVector fv, double value) { addTo (fv, value, null); }
public AugmentableFeatureVectorAddConjunctions () { conjunctions = new FeatureConjunction.List (); }
public AugmentableFeatureVectorAddConjunctions addConjunction (String name, Alphabet v, int[] features, boolean[] negations) { conjunctions.add (new FeatureConjunction (name, v, features, negations)); return this; }
public Instance pipe (Instance carrier) { AugmentableFeatureVector afv = (AugmentableFeatureVector) carrier.getData(); conjunctions.addTo (afv, 1.0); return carrier; }