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;
}
}