Data Preprocess Plug-Ins

It is possible to write specialized preprocess plug-ins to use in the data preprocessing phase of the learning wizards. 

Some constraints apply to this plug-in:

Other than that, there are no limitations to the plug-in. 

A very simple preprocess (which replaces "superman" with "batman") is shown below:

public class MyPreprocess extends COM.hugin.HGUI.PreProcess{

  public String process(String value){
    if(value.equals("superman"))
      return "batman";
    else
      return value;
  }

  // No we do not provide an interface. If we did, we
  // should also implement the getInterface function.
  public boolean providesInterface(){
    return false;
  }

  public String getDescription(){
    return "Replacing superman with batman";
  }
}

If the providesInterface function returns true, the getInterface function must be implemented as well as the storeValues function. The first is used by the system to show a graphical interface to the user, and the latter is used to store the values that the user entered into the interface. That is, when the user presses the "ok"-button, storeValues is called.

As the process function will be called once for each case, it is important to write this function to run as efficiently as possible.

To add your own data preprocess, you should simply add the compiled class to the "plugins" subdirectory under the installation directory. Hugin raphical User Interface will then automatically add the process to the list of available processes. These are grouped under the "External Plug-Ins" section of the preprocesses (see Figure 1). The user-defined preprocesses will then appear in the pull-down menu.

Figure 1: External data preprocess plug-ins are available via a pull-down menu.

Hugin Graphical User Interface comes with two sample preprocess plug-ins: CapitalizeProcess and ConvertToBoolean. The source code to these are available in the "plugins" directory along with the class files, and they demonstrate all aspects of the data preprocessing plug-ins feature.


Back