Fix: Probability used for one word contextual phrase.

Bug: 14161647
Change-Id: Ia5f985ea467145fb381e3ad2c1f67f3b013f19e8
This commit is contained in:
Keisuke Kuroyanagi 2014-06-16 18:20:33 +09:00
parent 6aa64e91ed
commit cb368a6dac

View file

@ -622,28 +622,27 @@ public class DictionaryFacilitator {
} }
PrevWordsInfo prevWordsInfo = PrevWordsInfo.BEGINNING_OF_SENTENCE; PrevWordsInfo prevWordsInfo = PrevWordsInfo.BEGINNING_OF_SENTENCE;
for (int i = 0; i < phrase.length; i++) { for (int i = 0; i < phrase.length; i++) {
if (i < phrase.length - 1) { final String[] subPhrase = Arrays.copyOfRange(phrase, i /* start */, phrase.length);
final String[] subPhrase = final String subPhraseStr = TextUtils.join(Constants.WORD_SEPARATOR, subPhrase);
Arrays.copyOfRange(phrase, i /* start */, phrase.length);
final String subPhraseStr = TextUtils.join(Constants.WORD_SEPARATOR, subPhrase);
contextualDict.addUnigramEntryWithCheckingDistracter(
subPhraseStr, probability, null /* shortcutTarget */,
Dictionary.NOT_A_PROBABILITY /* shortcutFreq */,
false /* isNotAWord */, false /* isBlacklisted */,
BinaryDictionary.NOT_A_VALID_TIMESTAMP,
DistracterFilter.EMPTY_DISTRACTER_FILTER);
contextualDict.addNgramEntry(prevWordsInfo, subPhraseStr,
bigramProbabilityForPhrases, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
}
contextualDict.addUnigramEntryWithCheckingDistracter( contextualDict.addUnigramEntryWithCheckingDistracter(
phrase[i], probability, null /* shortcutTarget */, subPhraseStr, probability, null /* shortcutTarget */,
Dictionary.NOT_A_PROBABILITY /* shortcutFreq */, Dictionary.NOT_A_PROBABILITY /* shortcutFreq */,
false /* isNotAWord */, false /* isBlacklisted */, false /* isNotAWord */, false /* isBlacklisted */,
BinaryDictionary.NOT_A_VALID_TIMESTAMP, BinaryDictionary.NOT_A_VALID_TIMESTAMP,
DistracterFilter.EMPTY_DISTRACTER_FILTER); DistracterFilter.EMPTY_DISTRACTER_FILTER);
contextualDict.addNgramEntry(prevWordsInfo, phrase[i], contextualDict.addNgramEntry(prevWordsInfo, subPhraseStr,
bigramProbabilityForWords, BinaryDictionary.NOT_A_VALID_TIMESTAMP); bigramProbabilityForPhrases, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
if (i < phrase.length - 1) {
contextualDict.addUnigramEntryWithCheckingDistracter(
phrase[i], probability, null /* shortcutTarget */,
Dictionary.NOT_A_PROBABILITY /* shortcutFreq */,
false /* isNotAWord */, false /* isBlacklisted */,
BinaryDictionary.NOT_A_VALID_TIMESTAMP,
DistracterFilter.EMPTY_DISTRACTER_FILTER);
contextualDict.addNgramEntry(prevWordsInfo, phrase[i],
bigramProbabilityForWords, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
}
prevWordsInfo = new PrevWordsInfo(phrase[i]); prevWordsInfo = new PrevWordsInfo(phrase[i]);
} }
} }