aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-02-05 12:53:14 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-02-05 12:53:14 +0000
commit239f7daf4a1fa9f83a4ce54a840c0fdc011f3b4c (patch)
treec9427063d5c916d0ddf65b5927d4973c0eead4bd /java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
parente42380a471c0765ccd71ae34d6bc99a272deec52 (diff)
parentdf1d3e733e2b000c776e74b54d3c62f0d433b013 (diff)
downloadlatinime-239f7daf4a1fa9f83a4ce54a840c0fdc011f3b4c.tar.gz
latinime-239f7daf4a1fa9f83a4ce54a840c0fdc011f3b4c.tar.xz
latinime-239f7daf4a1fa9f83a4ce54a840c0fdc011f3b4c.zip
Merge "Make WeightedString have ProbabilityInfo."
Diffstat (limited to 'java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java')
-rw-r--r--java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java41
1 files changed, 26 insertions, 15 deletions
diff --git a/java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java b/java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
index 5b0e8399a..ef23acb71 100644
--- a/java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
+++ b/java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
@@ -67,29 +67,40 @@ public final class FusionDictionary implements Iterable<Word> {
}
/**
- * A string with a frequency.
+ * A string with a probability.
*
* This represents an "attribute", that is either a bigram or a shortcut.
*/
public static final class WeightedString {
public final String mWord;
- public int mFrequency;
- public WeightedString(String word, int frequency) {
+ public ProbabilityInfo mProbabilityInfo;
+
+ public WeightedString(final String word, final int probability) {
mWord = word;
- mFrequency = frequency;
+ mProbabilityInfo = new ProbabilityInfo(probability);
+ }
+
+ public int getProbability() {
+ return mProbabilityInfo.mProbability;
+ }
+
+ public void setProbability(final int probability) {
+ mProbabilityInfo = new ProbabilityInfo(probability);
}
@Override
public int hashCode() {
- return Arrays.hashCode(new Object[] { mWord, mFrequency });
+ return Arrays.hashCode(new Object[] { mWord, mProbabilityInfo.mProbability,
+ mProbabilityInfo.mTimestamp, mProbabilityInfo.mLevel,
+ mProbabilityInfo.mCount });
}
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof WeightedString)) return false;
- WeightedString w = (WeightedString)o;
- return mWord.equals(w.mWord) && mFrequency == w.mFrequency;
+ final WeightedString w = (WeightedString)o;
+ return mWord.equals(w.mWord) && mProbabilityInfo.equals(w.mProbabilityInfo);
}
}
@@ -200,18 +211,18 @@ public final class FusionDictionary implements Iterable<Word> {
}
/**
- * Adds a word to the bigram list. Updates the frequency if the word already
+ * Adds a word to the bigram list. Updates the probability if the word already
* exists.
*/
- public void addBigram(final String word, final int frequency) {
+ public void addBigram(final String word, final int probability) {
if (mBigrams == null) {
mBigrams = new ArrayList<WeightedString>();
}
WeightedString bigram = getBigram(word);
if (bigram != null) {
- bigram.mFrequency = frequency;
+ bigram.setProbability(probability);
} else {
- bigram = new WeightedString(word, frequency);
+ bigram = new WeightedString(word, probability);
mBigrams.add(bigram);
}
}
@@ -273,8 +284,8 @@ public final class FusionDictionary implements Iterable<Word> {
final WeightedString existingShortcut = getShortcut(shortcut.mWord);
if (existingShortcut == null) {
mShortcutTargets.add(shortcut);
- } else if (existingShortcut.mFrequency < shortcut.mFrequency) {
- existingShortcut.mFrequency = shortcut.mFrequency;
+ } else if (existingShortcut.getProbability() < shortcut.getProbability()) {
+ existingShortcut.setProbability(shortcut.getProbability());
}
}
}
@@ -289,8 +300,8 @@ public final class FusionDictionary implements Iterable<Word> {
final WeightedString existingBigram = getBigram(bigram.mWord);
if (existingBigram == null) {
mBigrams.add(bigram);
- } else if (existingBigram.mFrequency < bigram.mFrequency) {
- existingBigram.mFrequency = bigram.mFrequency;
+ } else if (existingBigram.getProbability() < bigram.getProbability()) {
+ existingBigram.setProbability(bigram.getProbability());
}
}
}