aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src/suggest/core/session
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-07-30 17:26:26 +0900
committerKeisuke Kuroyanagi <ksk@google.com>2014-07-30 17:26:26 +0900
commitbd1f59bda5ad0b7028ec06c2de078f1623e76cdd (patch)
tree481bbb5aea162f9ed109f51b5118bf42933e3020 /native/jni/src/suggest/core/session
parent2d57b3339ad5b4bbf0939858c36c7daf5e38a4cb (diff)
downloadlatinime-bd1f59bda5ad0b7028ec06c2de078f1623e76cdd.tar.gz
latinime-bd1f59bda5ad0b7028ec06c2de078f1623e76cdd.tar.xz
latinime-bd1f59bda5ad0b7028ec06c2de078f1623e76cdd.zip
Remove PrevWordsInfo.getBigramsIteratorForPrediction().
This changes the behavior of predictions for some rare cases. For example, let's consider the case of the prev word is "ABC", "ABC" and "abc" is in the dict, "ABC" doesn't have any bigrams, and "abc" has bigrams. Without this change, "abc"'s bigrams are used for prediction. But, with this change, "abc"'s bigrams are not used for prediction. This strategy is the same as the the current way of bigram probability computation during traversal (for suggestion). Bug: 14425059 Change-Id: I857ff39aa70aea265efa651451a63b759bb47d48
Diffstat (limited to 'native/jni/src/suggest/core/session')
-rw-r--r--native/jni/src/suggest/core/session/prev_words_info.h47
1 files changed, 0 insertions, 47 deletions
diff --git a/native/jni/src/suggest/core/session/prev_words_info.h b/native/jni/src/suggest/core/session/prev_words_info.h
index 76276f528..e44e876e9 100644
--- a/native/jni/src/suggest/core/session/prev_words_info.h
+++ b/native/jni/src/suggest/core/session/prev_words_info.h
@@ -90,13 +90,6 @@ class PrevWordsInfo {
}
}
- BinaryDictionaryBigramsIterator getBigramsIteratorForPrediction(
- const DictionaryStructureWithBufferPolicy *const dictStructurePolicy) const {
- return getBigramsIteratorForWordWithTryingLowerCaseSearch(
- dictStructurePolicy, mPrevWordCodePoints[0], mPrevWordCodePointCount[0],
- mIsBeginningOfSentence[0]);
- }
-
// n is 1-indexed.
const int *getNthPrevWordCodePoints(const int n) const {
if (n <= 0 || n > MAX_PREV_WORD_COUNT_FOR_N_GRAM) {
@@ -154,46 +147,6 @@ class PrevWordsInfo {
codePoints, codePointCount, true /* forceLowerCaseSearch */);
}
- static BinaryDictionaryBigramsIterator getBigramsIteratorForWordWithTryingLowerCaseSearch(
- const DictionaryStructureWithBufferPolicy *const dictStructurePolicy,
- const int *const wordCodePoints, const int wordCodePointCount,
- const bool isBeginningOfSentence) {
- if (!dictStructurePolicy || !wordCodePoints || wordCodePointCount > MAX_WORD_LENGTH) {
- return BinaryDictionaryBigramsIterator();
- }
- int codePoints[MAX_WORD_LENGTH];
- int codePointCount = wordCodePointCount;
- memmove(codePoints, wordCodePoints, sizeof(int) * codePointCount);
- if (isBeginningOfSentence) {
- codePointCount = CharUtils::attachBeginningOfSentenceMarker(codePoints,
- codePointCount, MAX_WORD_LENGTH);
- if (codePointCount <= 0) {
- return BinaryDictionaryBigramsIterator();
- }
- }
- BinaryDictionaryBigramsIterator bigramsIt = getBigramsIteratorForWord(dictStructurePolicy,
- codePoints, codePointCount, false /* forceLowerCaseSearch */);
- // getBigramsIteratorForWord returns an empty iterator if this word isn't in the dictionary
- // or has no bigrams.
- if (bigramsIt.hasNext()) {
- return bigramsIt;
- }
- // If no bigrams for this exact word, search again in lower case.
- return getBigramsIteratorForWord(dictStructurePolicy, codePoints,
- codePointCount, true /* forceLowerCaseSearch */);
- }
-
- static BinaryDictionaryBigramsIterator getBigramsIteratorForWord(
- const DictionaryStructureWithBufferPolicy *const dictStructurePolicy,
- const int *wordCodePoints, const int wordCodePointCount,
- const bool forceLowerCaseSearch) {
- if (!wordCodePoints || wordCodePointCount <= 0) return BinaryDictionaryBigramsIterator();
- const int terminalPtNodePos = dictStructurePolicy->getTerminalPtNodePositionOfWord(
- wordCodePoints, wordCodePointCount, forceLowerCaseSearch);
- if (NOT_A_DICT_POS == terminalPtNodePos) return BinaryDictionaryBigramsIterator();
- return dictStructurePolicy->getBigramsIteratorOfPtNode(terminalPtNodePos);
- }
-
void clear() {
for (size_t i = 0; i < NELEMS(mPrevWordCodePoints); ++i) {
mPrevWordCodePointCount[i] = 0;