content: package edu.berkeley.nlp.lm;
  
  import java.io.Serializable;
  
  import edu.berkeley.nlp.lm.util.Annotations.PrintMemoryCount;
  
  public abstract class AbstractNgramLanguageModel<W> implements NgramLanguageModel<W>, Serializable
  
  {
  
  	
  
  	private static final long serialVersionUID = 1L;
  
  	protected final int lmOrder;
  
  	@PrintMemoryCount
  	private final WordIndexer<W> wordIndexer;
  
  	/**
  	 * Fixed constant returned when computing the log probability for an n-gram
  	 * whose last word is not in the vocabulary. Note that this is different
  	 * from the log prob of the <code>unk</code> tag probability.
  	 * 
  	 */
  	protected float oovWordLogProb;
  
  	public AbstractNgramLanguageModel(final int lmOrder, final WordIndexer<W> wordIndexer, final float oovWordLogProb) {
  		this.lmOrder = lmOrder;
  		this.wordIndexer = wordIndexer;
  		this.oovWordLogProb = oovWordLogProb;
  	}
  
  	@Override
  	public int getLmOrder() {
  		return lmOrder;
  	}
  
  	@Override
  	public WordIndexer<W> getWordIndexer() {
  		return wordIndexer;
  	}
  	
  	@Override
  	public void setOovWordLogProb(float oovWordLogProb) {
  		this.oovWordLogProb = oovWordLogProb;
  	}
  
  }
  