package edu.stanford.nlp.ie.machinereading; import edu.stanford.nlp.ie.machinereading.structure.RelationMention; import edu.stanford.nlp.ling.Datum; import java.util.Set; import java.util.logging.Logger; /** * Base class for feature factories * Created by Sonal Gupta. */ public abstract class RelationFeatureFactory { public static enum DEPENDENCY_TYPE { BASIC, COLLAPSED, COLLAPSED_CCPROCESSED; } /** If true, it does not create any lexicalized features from the first argument (needed for KBP) */ protected boolean doNotLexicalizeFirstArg; /** Which dependencies to use for feature extraction */ protected DEPENDENCY_TYPE dependencyType; public abstract Datum<String,String> createDatum(RelationMention rel, String label); public abstract Datum<String,String> createDatum(RelationMention rel); public void setDoNotLexicalizeFirstArgument(boolean doNotLexicalizeFirstArg){ this.doNotLexicalizeFirstArg = doNotLexicalizeFirstArg; } public abstract String getFeature(RelationMention rel, String dependency_path_lowlevel); public abstract Set<String> getFeatures(RelationMention rel, String dependency_path_words); /* * If in case, creating test datum is different. */ public abstract Datum<String,String> createTestDatum(RelationMention rel, Logger logger); }