iitb.Model
Class FeatureGenImpl

java.lang.Object
  extended byiitb.Model.FeatureGenImpl
All Implemented Interfaces:
FeatureGenerator

public class FeatureGenImpl
extends java.lang.Object
implements FeatureGenerator

The FeatureGenerator is an aggregator over all these different feature types. You can inherit from the FeatureGenImpl class and after calling one of the constructors that does not make a call to (addFeatures()) you can then implement your own addFeatures class. There you will typically add the EdgeFeatures feature first and then the rest. So, for example if you wanted to add some parameter for each label (like a prior), you can create a new FeatureTypes class that will create as many featureids as the number of labels. You will have to create a new class that is derived from FeatureGenImpl and just have a different implementation of the addFeatures subroutine. The rest will be handled by the parent class. This class is responsible for converting the string-ids that the FeatureTypes assign to their features into distinct numbers. It has a inner class called FeatureMap that will make one pass over the training data and create the map of featurenames->integer id and as a side effect count the number of features.

Author:
Sunita Sarawagi

Field Summary
 Model model
           
 
Constructor Summary
FeatureGenImpl(java.lang.String modelSpecs, int numLabels)
           
FeatureGenImpl(java.lang.String modelSpecs, int numLabels, boolean addFeatureNow)
           
 
Method Summary
 void addFeature(FeatureTypes fType)
           
 boolean hasNext()
           
 int label(int stateNum)
           
 void mapStatesToLabels(DataSequence data)
           
 Feature next()
           
 int numFeatures()
          The number of features has to be correctly set before train is called.
 int numStates()
           
 void read(java.lang.String fileName)
           
 void startScanFeaturesAt(DataSequence d, int p)
           
 void stateMappings(DataIter trainData)
           
 void train(DataIter trainData)
           
 void write(java.lang.String fileName)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

model

public Model model
Constructor Detail

FeatureGenImpl

public FeatureGenImpl(java.lang.String modelSpecs,
                      int numLabels)
               throws java.lang.Exception

FeatureGenImpl

public FeatureGenImpl(java.lang.String modelSpecs,
                      int numLabels,
                      boolean addFeatureNow)
               throws java.lang.Exception
Method Detail

addFeature

public void addFeature(FeatureTypes fType)

stateMappings

public void stateMappings(DataIter trainData)
                   throws java.lang.Exception
Throws:
java.lang.Exception

train

public void train(DataIter trainData)
           throws java.lang.Exception
Throws:
java.lang.Exception

startScanFeaturesAt

public void startScanFeaturesAt(DataSequence d,
                                int p)
Specified by:
startScanFeaturesAt in interface FeatureGenerator

hasNext

public boolean hasNext()
Specified by:
hasNext in interface FeatureGenerator

next

public Feature next()
Specified by:
next in interface FeatureGenerator

numFeatures

public int numFeatures()
Description copied from interface: FeatureGenerator
The number of features has to be correctly set before train is called.

Specified by:
numFeatures in interface FeatureGenerator

numStates

public int numStates()

label

public int label(int stateNum)

mapStatesToLabels

public void mapStatesToLabels(DataSequence data)

read

public void read(java.lang.String fileName)
          throws java.io.IOException
Throws:
java.io.IOException

write

public void write(java.lang.String fileName)
           throws java.io.IOException
Throws:
java.io.IOException


Submit a bug or feature.