package edu.berkeley.nlp.lm;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import edu.berkeley.nlp.lm.collections.Counter;
/**
* Default implementation of all NGramLanguageModel functionality except
* {@link #getLogProb(int[], int, int)}.
*
*
*
* @author adampauls
*
* @param <W>
*/
public abstract class AbstractArrayEncodedNgramLanguageModel<W> extends AbstractNgramLanguageModel<W> implements ArrayEncodedNgramLanguageModel<W>,
Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
public AbstractArrayEncodedNgramLanguageModel(final int lmOrder, final WordIndexer<W> wordIndexer, final float oovWordLogProb) {
super(lmOrder, wordIndexer, oovWordLogProb);
}
@Override
public float scoreSentence(final List<W> sentence) {
return ArrayEncodedNgramLanguageModel.DefaultImplementations.scoreSentence(sentence, this);
}
@Override
public float getLogProb(final List<W> phrase) {
return ArrayEncodedNgramLanguageModel.DefaultImplementations.getLogProb(phrase, this);
}
@Override
public float getLogProb(final int[] ngram) {
return ArrayEncodedNgramLanguageModel.DefaultImplementations.getLogProb(ngram, this);
}
@Override
public abstract float getLogProb(final int[] ngram, int startPos, int endPos);
}