/** * Returns the ID of the given word. * * @param word * the word to find the ID * @return the ID of the word */ public final int getWordID(Word word) { UnigramProbability probability = getUnigram(word); if (probability == null) throw new IllegalArgumentException("No word ID: " + word); else return probability.getWordID(); }
private Float getNGramProbability(WordSequence wordSequence) { int numberWords = wordSequence.size(); Word firstWord = wordSequence.getWord(0); if (loader.getNumberNGrams(numberWords) == 0 || !hasUnigram(firstWord)) return getNGramProbability(wordSequence.getNewest()); if (numberWords < 2) { return getUnigramProbability(wordSequence); } NGramProbability nGProbability = findNGram(wordSequence); if (nGProbability != null) { return ngramProbTable[numberWords - 1][nGProbability .getProbabilityID()]; } if (numberWords == 2) { UnigramProbability unigramProb = getUnigram(firstWord); UnigramProbability unigramProb1 = getUnigram(wordSequence .getWord(1)); return unigramProb.getLogBackoff() + unigramProb1.getLogProbability(); } NGramProbability nMinus1Gram = findNGram(wordSequence.getOldest()); if (nMinus1Gram != null) { return ngramBackoffTable[numberWords - 1][nMinus1Gram .getBackoffID()] + getProbability(wordSequence.getNewest()); } return getProbability(wordSequence.getNewest()); }
private Float getNGramProbability(WordSequence wordSequence) { int numberWords = wordSequence.size(); Word firstWord = wordSequence.getWord(0); if (loader.getNumberNGrams(numberWords) == 0 || !hasUnigram(firstWord)) return getNGramProbability(wordSequence.getNewest()); if (numberWords < 2) { return getUnigramProbability(wordSequence); } NGramProbability nGProbability = findNGram(wordSequence); if (nGProbability != null) { return ngramProbTable[numberWords - 1][nGProbability .getProbabilityID()]; } if (numberWords == 2) { UnigramProbability unigramProb = getUnigram(firstWord); UnigramProbability unigramProb1 = getUnigram(wordSequence .getWord(1)); return unigramProb.getLogBackoff() + unigramProb1.getLogProbability(); } NGramProbability nMinus1Gram = findNGram(wordSequence.getOldest()); if (nMinus1Gram != null) { return ngramBackoffTable[numberWords - 1][nMinus1Gram .getBackoffID()] + getProbability(wordSequence.getNewest()); } return getProbability(wordSequence.getNewest()); }
/** * Returns the unigram probability of the given unigram. * * @param wordSequence * the unigram word sequence * @return the unigram probability */ private float getUnigramProbability(WordSequence wordSequence) { Word unigram = wordSequence.getWord(0); UnigramProbability unigramProb = getUnigram(unigram); if (unigramProb == null) throw new Error("Unigram not in LM: " + unigram); return unigramProb.getLogProbability(); }
/** * Returns the ID of the given word. * * @param word * the word to find the ID * @return the ID of the word */ public final int getWordID(Word word) { UnigramProbability probability = getUnigram(word); if (probability == null) throw new IllegalArgumentException("No word ID: " + word); else return probability.getWordID(); }
/** * Returns the unigram probability of the given unigram. * * @param wordSequence * the unigram word sequence * @return the unigram probability */ private float getUnigramProbability(WordSequence wordSequence) { Word unigram = wordSequence.getWord(0); UnigramProbability unigramProb = getUnigram(unigram); if (unigramProb == null) throw new Error("Unigram not in LM: " + unigram); return unigramProb.getLogProbability(); }