/** * */ package edu.berkeley.nlp.PCFGLA; import java.util.List; import edu.berkeley.nlp.PCFGLA.smoothing.Smoother; import edu.berkeley.nlp.syntax.StateSet; import edu.berkeley.nlp.syntax.Tree; import edu.berkeley.nlp.util.Counter; /** * @author petrov * */ public interface Lexicon { public void optimize(); public double[] score(String word, short tag, int loc, boolean noSmoothing, boolean isSignature); public double[] score(StateSet stateSet, short tag, boolean noSmoothing, boolean isSignature); public double[] scoreWord(StateSet stateSet, int tag); public double[] scoreSignature(StateSet stateSet, int tag); public String getSignature(String word, int loc); public void logarithmMode(); public boolean isLogarithmMode(); public void trainTree(Tree<StateSet> trainTree, double randomness, Lexicon oldLexicon, boolean secondHalf, boolean noSmoothing, int unkThreshold); public void setSmoother(Smoother smoother); public Lexicon splitAllStates(int[] counts, boolean moreSubstatesThanCounts, int mode); public void mergeStates(boolean[][][] mergeThesePairs, double[][] mergeWeights); public Smoother getSmoother(); public double[] getSmoothingParams(); public Lexicon projectLexicon(double[] condProbs, int[][] mapping, int[][] toSubstateMapping); public Lexicon copyLexicon(); public void removeUnlikelyTags(double threshold, double exponent); public double getPruningThreshold(); public void tieRareWordStats(int threshold); public Counter<String> getWordCounter(); public void explicitlyComputeScores(int finalLevel); }