Read and write forgetting curve header attributes.
Bug: 13197276 Change-Id: I6c38a127e1745903594b7bf0ec80ef179e794febmain
parent
57816c7a8b
commit
6112cc26a7
|
@ -38,6 +38,10 @@ public final class DictionaryHeader {
|
|||
public static final String DICTIONARY_DATE_KEY = "date";
|
||||
public static final String HAS_HISTORICAL_INFO_KEY = "HAS_HISTORICAL_INFO";
|
||||
public static final String USES_FORGETTING_CURVE_KEY = "USES_FORGETTING_CURVE";
|
||||
public static final String FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY =
|
||||
"FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP";
|
||||
public static final String FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY =
|
||||
"FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID";
|
||||
public static final String ATTRIBUTE_VALUE_TRUE = "1";
|
||||
|
||||
public DictionaryHeader(final int headerSize, final DictionaryOptions dictionaryOptions,
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
namespace latinime {
|
||||
|
||||
// Note that these are corresponding definitions in Java side in FormatSpec.FileHeader.
|
||||
// Note that these are corresponding definitions in Java side in DictionaryHeader.
|
||||
const char *const HeaderPolicy::MULTIPLE_WORDS_DEMOTION_RATE_KEY = "MULTIPLE_WORDS_DEMOTION_RATE";
|
||||
const char *const HeaderPolicy::REQUIRES_GERMAN_UMLAUT_PROCESSING_KEY =
|
||||
"REQUIRES_GERMAN_UMLAUT_PROCESSING";
|
||||
|
@ -33,6 +33,11 @@ const char *const HeaderPolicy::EXTENDED_REGION_SIZE_KEY = "EXTENDED_REGION_SIZE
|
|||
// count.
|
||||
const char *const HeaderPolicy::HAS_HISTORICAL_INFO_KEY = "HAS_HISTORICAL_INFO";
|
||||
const char *const HeaderPolicy::LOCALE_KEY = "locale"; // match Java declaration
|
||||
const char *const HeaderPolicy::FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY =
|
||||
"FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP";
|
||||
const char *const HeaderPolicy::FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY =
|
||||
"FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID";
|
||||
|
||||
const int HeaderPolicy::DEFAULT_MULTIPLE_WORDS_DEMOTION_RATE = 100;
|
||||
const float HeaderPolicy::MULTIPLE_WORD_COST_MULTIPLIER_SCALE = 100.0f;
|
||||
const int HeaderPolicy::DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP = 4;
|
||||
|
|
|
@ -52,7 +52,13 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
|||
mExtendedRegionSize(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
|
||||
EXTENDED_REGION_SIZE_KEY, 0 /* defaultValue */)),
|
||||
mHasHistoricalInfoOfWords(HeaderReadWriteUtils::readBoolAttributeValue(
|
||||
&mAttributeMap, HAS_HISTORICAL_INFO_KEY, false /* defaultValue */)) {}
|
||||
&mAttributeMap, HAS_HISTORICAL_INFO_KEY, false /* defaultValue */)),
|
||||
mForgettingCurveOccurrencesToLevelUp(HeaderReadWriteUtils::readIntAttributeValue(
|
||||
&mAttributeMap, FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY,
|
||||
DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP)),
|
||||
mForgettingCurveProbabilityValuesTableId(HeaderReadWriteUtils::readIntAttributeValue(
|
||||
&mAttributeMap, FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY,
|
||||
DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID)) {}
|
||||
|
||||
// Constructs header information using an attribute map.
|
||||
HeaderPolicy(const FormatUtils::FORMAT_VERSION dictFormatVersion,
|
||||
|
@ -71,8 +77,13 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
|||
DATE_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
|
||||
mUnigramCount(0), mBigramCount(0), mExtendedRegionSize(0),
|
||||
mHasHistoricalInfoOfWords(HeaderReadWriteUtils::readBoolAttributeValue(
|
||||
&mAttributeMap, HAS_HISTORICAL_INFO_KEY, false /* defaultValue */)) {
|
||||
}
|
||||
&mAttributeMap, HAS_HISTORICAL_INFO_KEY, false /* defaultValue */)),
|
||||
mForgettingCurveOccurrencesToLevelUp(HeaderReadWriteUtils::readIntAttributeValue(
|
||||
&mAttributeMap, FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY,
|
||||
DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP)),
|
||||
mForgettingCurveProbabilityValuesTableId(HeaderReadWriteUtils::readIntAttributeValue(
|
||||
&mAttributeMap, FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY,
|
||||
DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID)) {}
|
||||
|
||||
// Temporary dummy header.
|
||||
HeaderPolicy()
|
||||
|
@ -80,7 +91,8 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
|||
mAttributeMap(), mLocale(CharUtils::EMPTY_STRING), mMultiWordCostMultiplier(0.0f),
|
||||
mRequiresGermanUmlautProcessing(false), mIsDecayingDict(false),
|
||||
mDate(0), mLastDecayedTime(0), mUnigramCount(0), mBigramCount(0),
|
||||
mExtendedRegionSize(0), mHasHistoricalInfoOfWords(false) {}
|
||||
mExtendedRegionSize(0), mHasHistoricalInfoOfWords(false),
|
||||
mForgettingCurveOccurrencesToLevelUp(0), mForgettingCurveProbabilityValuesTableId(0) {}
|
||||
|
||||
~HeaderPolicy() {}
|
||||
|
||||
|
@ -160,11 +172,11 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
|||
}
|
||||
|
||||
AK_FORCE_INLINE int getForgettingCurveOccurrencesToLevelUp() const {
|
||||
return DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP;
|
||||
return mForgettingCurveOccurrencesToLevelUp;
|
||||
}
|
||||
|
||||
AK_FORCE_INLINE int getForgettingCurveProbabilityValuesTableId() const {
|
||||
return DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID;
|
||||
return mForgettingCurveProbabilityValuesTableId;
|
||||
}
|
||||
|
||||
void readHeaderValueOrQuestionMark(const char *const key,
|
||||
|
@ -191,6 +203,8 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
|||
static const char *const EXTENDED_REGION_SIZE_KEY;
|
||||
static const char *const HAS_HISTORICAL_INFO_KEY;
|
||||
static const char *const LOCALE_KEY;
|
||||
static const char *const FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY;
|
||||
static const char *const FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY;
|
||||
static const int DEFAULT_MULTIPLE_WORDS_DEMOTION_RATE;
|
||||
static const float MULTIPLE_WORD_COST_MULTIPLIER_SCALE;
|
||||
static const int DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP;
|
||||
|
@ -210,6 +224,8 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
|||
const int mBigramCount;
|
||||
const int mExtendedRegionSize;
|
||||
const bool mHasHistoricalInfoOfWords;
|
||||
const int mForgettingCurveOccurrencesToLevelUp;
|
||||
const int mForgettingCurveProbabilityValuesTableId;
|
||||
|
||||
const std::vector<int> readLocale() const;
|
||||
float readMultipleWordCostMultiplier() const;
|
||||
|
|
Loading…
Reference in New Issue