package edu.stanford.nlp.patterns; import java.io.IOException; import java.util.Properties; import java.util.Set; import edu.stanford.nlp.patterns.ConstantsAndVariables; import edu.stanford.nlp.patterns.GetPatternsFromDataMultiClass.PatternScoring; import edu.stanford.nlp.stats.Counter; import edu.stanford.nlp.stats.TwoDimensionalCounter; public abstract class ScorePatterns<E> { ConstantsAndVariables constVars; protected PatternScoring patternScoring; protected Properties props; public abstract Counter<E> score() throws IOException, ClassNotFoundException; protected TwoDimensionalCounter<E, CandidatePhrase> patternsandWords4Label = new TwoDimensionalCounter<>(); protected TwoDimensionalCounter<E, CandidatePhrase> negPatternsandWords4Label = new TwoDimensionalCounter<>(); // protected TwoDimensionalCounter<SurfacePattern, String> // posnegPatternsandWords4Label = new TwoDimensionalCounter<SurfacePattern, // String>(); protected TwoDimensionalCounter<E, CandidatePhrase> unLabeledPatternsandWords4Label = new TwoDimensionalCounter<>(); //protected TwoDimensionalCounter<E, String> negandUnLabeledPatternsandWords4Label = new TwoDimensionalCounter<E, String>(); //protected TwoDimensionalCounter<E, String> allPatternsandWords4Label = new TwoDimensionalCounter<E, String>(); protected String label; protected Set<CandidatePhrase> allCandidatePhrases; public ScorePatterns( ConstantsAndVariables constVars, PatternScoring patternScoring, String label, Set<CandidatePhrase> allCandidatePhrases, TwoDimensionalCounter<E, CandidatePhrase> patternsandWords4Label, TwoDimensionalCounter<E, CandidatePhrase> negPatternsandWords4Label, TwoDimensionalCounter<E, CandidatePhrase> unLabeledPatternsandWords4Label, Properties props) { this.constVars = constVars; this.patternScoring = patternScoring; this.label = label; this.allCandidatePhrases = allCandidatePhrases; this.patternsandWords4Label = patternsandWords4Label; this.negPatternsandWords4Label = negPatternsandWords4Label; this.unLabeledPatternsandWords4Label = unLabeledPatternsandWords4Label; this.props = props; } abstract public void setUp(Properties props); }