Merge "Update unit test for beginning-of-sentence."
commit
89899e14df
|
@ -256,7 +256,24 @@ bool Ver4PatriciaTriePolicy::addNgramEntry(const PrevWordsInfo *const prevWordsI
|
||||||
false /* tryLowerCaseSearch */);
|
false /* tryLowerCaseSearch */);
|
||||||
// TODO: Support N-gram.
|
// TODO: Support N-gram.
|
||||||
if (prevWordsPtNodePos[0] == NOT_A_DICT_POS) {
|
if (prevWordsPtNodePos[0] == NOT_A_DICT_POS) {
|
||||||
return false;
|
if (prevWordsInfo->isNthPrevWordBeginningOfSentence(1 /* n */)) {
|
||||||
|
const std::vector<UnigramProperty::ShortcutProperty> shortcuts;
|
||||||
|
const UnigramProperty beginningOfSentenceUnigramProperty(
|
||||||
|
true /* representsBeginningOfSentence */, true /* isNotAWord */,
|
||||||
|
false /* isBlacklisted */, MAX_PROBABILITY /* probability */,
|
||||||
|
NOT_A_TIMESTAMP /* timestamp */, 0 /* level */, 0 /* count */, &shortcuts);
|
||||||
|
if (!addUnigramEntry(prevWordsInfo->getNthPrevWordCodePoints(1 /* n */),
|
||||||
|
prevWordsInfo->getNthPrevWordCodePointCount(1 /* n */),
|
||||||
|
&beginningOfSentenceUnigramProperty)) {
|
||||||
|
AKLOGE("Cannot add unigram entry for the beginning-of-sentence.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Refresh Terminal PtNode positions.
|
||||||
|
prevWordsInfo->getPrevWordsTerminalPtNodePos(this, prevWordsPtNodePos,
|
||||||
|
false /* tryLowerCaseSearch */);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const int word1Pos = getTerminalPtNodePositionOfWord(
|
const int word1Pos = getTerminalPtNodePositionOfWord(
|
||||||
bigramProperty->getTargetCodePoints()->data(),
|
bigramProperty->getTargetCodePoints()->data(),
|
||||||
|
|
|
@ -1450,27 +1450,23 @@ public class BinaryDictionaryTests extends AndroidTestCase {
|
||||||
0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
|
0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
|
||||||
Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
|
Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
|
||||||
final int dummyProbability = 0;
|
final int dummyProbability = 0;
|
||||||
binaryDictionary.addUnigramEntry("", dummyProbability, "" /* shortcutTarget */,
|
final PrevWordsInfo prevWordsInfoBeginningOfSentence = PrevWordsInfo.BEGINNING_OF_SENTENCE;
|
||||||
BinaryDictionary.NOT_A_PROBABILITY /* shortcutProbability */,
|
|
||||||
true /* isBeginningOfSentence */, true /* isNotAWord */, false /* isBlacklisted */,
|
|
||||||
BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
|
|
||||||
final PrevWordsInfo prevWordsInfoStartOfSentence = PrevWordsInfo.BEGINNING_OF_SENTENCE;
|
|
||||||
final int bigramProbability = 200;
|
final int bigramProbability = 200;
|
||||||
addUnigramWord(binaryDictionary, "aaa", dummyProbability);
|
addUnigramWord(binaryDictionary, "aaa", dummyProbability);
|
||||||
binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "aaa", bigramProbability,
|
binaryDictionary.addNgramEntry(prevWordsInfoBeginningOfSentence, "aaa", bigramProbability,
|
||||||
BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
|
BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
|
||||||
assertEquals(bigramProbability,
|
assertEquals(bigramProbability,
|
||||||
binaryDictionary.getNgramProbability(prevWordsInfoStartOfSentence, "aaa"));
|
binaryDictionary.getNgramProbability(prevWordsInfoBeginningOfSentence, "aaa"));
|
||||||
binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "aaa", bigramProbability,
|
binaryDictionary.addNgramEntry(prevWordsInfoBeginningOfSentence, "aaa", bigramProbability,
|
||||||
BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
|
BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
|
||||||
addUnigramWord(binaryDictionary, "bbb", dummyProbability);
|
addUnigramWord(binaryDictionary, "bbb", dummyProbability);
|
||||||
binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "bbb", bigramProbability,
|
binaryDictionary.addNgramEntry(prevWordsInfoBeginningOfSentence, "bbb", bigramProbability,
|
||||||
BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
|
BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
|
||||||
binaryDictionary.flushWithGC();
|
binaryDictionary.flushWithGC();
|
||||||
assertEquals(bigramProbability,
|
assertEquals(bigramProbability,
|
||||||
binaryDictionary.getNgramProbability(prevWordsInfoStartOfSentence, "aaa"));
|
binaryDictionary.getNgramProbability(prevWordsInfoBeginningOfSentence, "aaa"));
|
||||||
assertEquals(bigramProbability,
|
assertEquals(bigramProbability,
|
||||||
binaryDictionary.getNgramProbability(prevWordsInfoStartOfSentence, "bbb"));
|
binaryDictionary.getNgramProbability(prevWordsInfoBeginningOfSentence, "bbb"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGetMaxFrequencyOfExactMatches() {
|
public void testGetMaxFrequencyOfExactMatches() {
|
||||||
|
|
Loading…
Reference in New Issue