Merge "Read and write forgetting curve header attributes."
commit
2b27e06733
|
@ -38,6 +38,10 @@ public final class DictionaryHeader {
|
||||||
public static final String DICTIONARY_DATE_KEY = "date";
|
public static final String DICTIONARY_DATE_KEY = "date";
|
||||||
public static final String HAS_HISTORICAL_INFO_KEY = "HAS_HISTORICAL_INFO";
|
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 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 static final String ATTRIBUTE_VALUE_TRUE = "1";
|
||||||
|
|
||||||
public DictionaryHeader(final int headerSize, final DictionaryOptions dictionaryOptions,
|
public DictionaryHeader(final int headerSize, final DictionaryOptions dictionaryOptions,
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
namespace latinime {
|
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::MULTIPLE_WORDS_DEMOTION_RATE_KEY = "MULTIPLE_WORDS_DEMOTION_RATE";
|
||||||
const char *const HeaderPolicy::REQUIRES_GERMAN_UMLAUT_PROCESSING_KEY =
|
const char *const HeaderPolicy::REQUIRES_GERMAN_UMLAUT_PROCESSING_KEY =
|
||||||
"REQUIRES_GERMAN_UMLAUT_PROCESSING";
|
"REQUIRES_GERMAN_UMLAUT_PROCESSING";
|
||||||
|
@ -33,6 +33,11 @@ const char *const HeaderPolicy::EXTENDED_REGION_SIZE_KEY = "EXTENDED_REGION_SIZE
|
||||||
// count.
|
// count.
|
||||||
const char *const HeaderPolicy::HAS_HISTORICAL_INFO_KEY = "HAS_HISTORICAL_INFO";
|
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::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 int HeaderPolicy::DEFAULT_MULTIPLE_WORDS_DEMOTION_RATE = 100;
|
||||||
const float HeaderPolicy::MULTIPLE_WORD_COST_MULTIPLIER_SCALE = 100.0f;
|
const float HeaderPolicy::MULTIPLE_WORD_COST_MULTIPLIER_SCALE = 100.0f;
|
||||||
const int HeaderPolicy::DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP = 4;
|
const int HeaderPolicy::DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP = 4;
|
||||||
|
|
|
@ -52,7 +52,13 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
||||||
mExtendedRegionSize(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
|
mExtendedRegionSize(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
|
||||||
EXTENDED_REGION_SIZE_KEY, 0 /* defaultValue */)),
|
EXTENDED_REGION_SIZE_KEY, 0 /* defaultValue */)),
|
||||||
mHasHistoricalInfoOfWords(HeaderReadWriteUtils::readBoolAttributeValue(
|
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.
|
// Constructs header information using an attribute map.
|
||||||
HeaderPolicy(const FormatUtils::FORMAT_VERSION dictFormatVersion,
|
HeaderPolicy(const FormatUtils::FORMAT_VERSION dictFormatVersion,
|
||||||
|
@ -71,8 +77,13 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
||||||
DATE_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
|
DATE_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
|
||||||
mUnigramCount(0), mBigramCount(0), mExtendedRegionSize(0),
|
mUnigramCount(0), mBigramCount(0), mExtendedRegionSize(0),
|
||||||
mHasHistoricalInfoOfWords(HeaderReadWriteUtils::readBoolAttributeValue(
|
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.
|
// Temporary dummy header.
|
||||||
HeaderPolicy()
|
HeaderPolicy()
|
||||||
|
@ -80,7 +91,8 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
||||||
mAttributeMap(), mLocale(CharUtils::EMPTY_STRING), mMultiWordCostMultiplier(0.0f),
|
mAttributeMap(), mLocale(CharUtils::EMPTY_STRING), mMultiWordCostMultiplier(0.0f),
|
||||||
mRequiresGermanUmlautProcessing(false), mIsDecayingDict(false),
|
mRequiresGermanUmlautProcessing(false), mIsDecayingDict(false),
|
||||||
mDate(0), mLastDecayedTime(0), mUnigramCount(0), mBigramCount(0),
|
mDate(0), mLastDecayedTime(0), mUnigramCount(0), mBigramCount(0),
|
||||||
mExtendedRegionSize(0), mHasHistoricalInfoOfWords(false) {}
|
mExtendedRegionSize(0), mHasHistoricalInfoOfWords(false),
|
||||||
|
mForgettingCurveOccurrencesToLevelUp(0), mForgettingCurveProbabilityValuesTableId(0) {}
|
||||||
|
|
||||||
~HeaderPolicy() {}
|
~HeaderPolicy() {}
|
||||||
|
|
||||||
|
@ -160,11 +172,11 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
||||||
}
|
}
|
||||||
|
|
||||||
AK_FORCE_INLINE int getForgettingCurveOccurrencesToLevelUp() const {
|
AK_FORCE_INLINE int getForgettingCurveOccurrencesToLevelUp() const {
|
||||||
return DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP;
|
return mForgettingCurveOccurrencesToLevelUp;
|
||||||
}
|
}
|
||||||
|
|
||||||
AK_FORCE_INLINE int getForgettingCurveProbabilityValuesTableId() const {
|
AK_FORCE_INLINE int getForgettingCurveProbabilityValuesTableId() const {
|
||||||
return DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID;
|
return mForgettingCurveProbabilityValuesTableId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void readHeaderValueOrQuestionMark(const char *const key,
|
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 EXTENDED_REGION_SIZE_KEY;
|
||||||
static const char *const HAS_HISTORICAL_INFO_KEY;
|
static const char *const HAS_HISTORICAL_INFO_KEY;
|
||||||
static const char *const LOCALE_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 int DEFAULT_MULTIPLE_WORDS_DEMOTION_RATE;
|
||||||
static const float MULTIPLE_WORD_COST_MULTIPLIER_SCALE;
|
static const float MULTIPLE_WORD_COST_MULTIPLIER_SCALE;
|
||||||
static const int DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP;
|
static const int DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP;
|
||||||
|
@ -210,6 +224,8 @@ class HeaderPolicy : public DictionaryHeaderStructurePolicy {
|
||||||
const int mBigramCount;
|
const int mBigramCount;
|
||||||
const int mExtendedRegionSize;
|
const int mExtendedRegionSize;
|
||||||
const bool mHasHistoricalInfoOfWords;
|
const bool mHasHistoricalInfoOfWords;
|
||||||
|
const int mForgettingCurveOccurrencesToLevelUp;
|
||||||
|
const int mForgettingCurveProbabilityValuesTableId;
|
||||||
|
|
||||||
const std::vector<int> readLocale() const;
|
const std::vector<int> readLocale() const;
|
||||||
float readMultipleWordCostMultiplier() const;
|
float readMultipleWordCostMultiplier() const;
|
||||||
|
|
Loading…
Reference in New Issue