Rebrand names of Language Models

Revert "Rebrand names of Language Models"

This reverts commit 1a2436ae5a6b669840686e84871328d3ef39da4d.

Rebrand names of Language Models
This commit is contained in:
ShikiSuen 2022-01-10 19:06:30 +08:00
parent 317dcc3848
commit b04d4e3447
1 changed files with 61 additions and 61 deletions

View File

@ -117,13 +117,13 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot";
#endif #endif
// shared language model object that stores our phrase-term probability database // shared language model object that stores our phrase-term probability database
FastLM gLanguageModel; FastLM gLanguageModelCHT;
FastLM gLanguageModelSimpBopomofo; FastLM gLanguageModelCHS;
static const int kUserOverrideModelCapacity = 500; static const int kUserOverrideModelCapacity = 500;
static const double kObservedOverrideHalflife = 5400.0; // 1.5 hr. static const double kObservedOverrideHalflife = 5400.0; // 1.5 hr.
vChewing::UserOverrideModel gUserOverrideModel(kUserOverrideModelCapacity, kObservedOverrideHalflife); vChewing::UserOverrideModel gUserOverrideModelCHT(kUserOverrideModelCapacity, kObservedOverrideHalflife);
vChewing::UserOverrideModel gUserOverrideModelSimpBopomofo(kUserOverrideModelCapacity, kObservedOverrideHalflife); vChewing::UserOverrideModel gUserOverrideModelCHS(kUserOverrideModelCapacity, kObservedOverrideHalflife);
// https://clang-analyzer.llvm.org/faq.html // https://clang-analyzer.llvm.org/faq.html
__attribute__((annotate("returns_localized_nsstring"))) __attribute__((annotate("returns_localized_nsstring")))
@ -159,14 +159,14 @@ public:
static const double kEpsilon = 0.000001; static const double kEpsilon = 0.000001;
static double FindHighestScore(const vector<NodeAnchor>& nodes, double epsilon) { static double FindHighestScore(const vector<NodeAnchor>& nodes, double epsilon) {
double highestScore = 0.0; double highestScore = 0.0;
for (auto ni = nodes.begin(), ne = nodes.end(); ni != ne; ++ni) { for (auto ni = nodes.begin(), ne = nodes.end(); ni != ne; ++ni) {
double score = ni->node->highestUnigramScore(); double score = ni->node->highestUnigramScore();
if (score > highestScore) { if (score > highestScore) {
highestScore = score; highestScore = score;
} }
} }
return highestScore + epsilon; return highestScore + epsilon;
} }
@implementation vChewingInputMethodController @implementation vChewingInputMethodController
@ -199,9 +199,9 @@ static double FindHighestScore(const vector<NodeAnchor>& nodes, double epsilon)
_bpmfReadingBuffer = new BopomofoReadingBuffer(BopomofoKeyboardLayout::StandardLayout()); _bpmfReadingBuffer = new BopomofoReadingBuffer(BopomofoKeyboardLayout::StandardLayout());
// create the lattice builder // create the lattice builder
_languageModel = &gLanguageModel; _languageModel = &gLanguageModelCHT;
_builder = new BlockReadingBuilder(_languageModel); _builder = new BlockReadingBuilder(_languageModel);
_uom = &gUserOverrideModel; _uom = &gUserOverrideModelCHT;
// each Mandarin syllable is separated by a hyphen // each Mandarin syllable is separated by a hyphen
_builder->setJoinSeparator("-"); _builder->setJoinSeparator("-");
@ -337,13 +337,13 @@ static double FindHighestScore(const vector<NodeAnchor>& nodes, double epsilon)
if ([value isKindOfClass:[NSString class]] && [value isEqual:kSimpBopomofoModeIdentifier]) { if ([value isKindOfClass:[NSString class]] && [value isEqual:kSimpBopomofoModeIdentifier]) {
newInputMode = kSimpBopomofoModeIdentifier; newInputMode = kSimpBopomofoModeIdentifier;
newLanguageModel = &gLanguageModelSimpBopomofo; newLanguageModel = &gLanguageModelCHS;
newUom = &gUserOverrideModelSimpBopomofo; newUom = &gUserOverrideModelCHS;
} }
else { else {
newInputMode = kBopomofoModeIdentifier; newInputMode = kBopomofoModeIdentifier;
newLanguageModel = &gLanguageModel; newLanguageModel = &gLanguageModelCHT;
newUom = &gUserOverrideModel; newUom = &gUserOverrideModelCHT;
} }
// Only apply the changes if the value is changed // Only apply the changes if the value is changed
@ -692,15 +692,15 @@ static double FindHighestScore(const vector<NodeAnchor>& nodes, double epsilon)
// then walk the lattice // then walk the lattice
[self popOverflowComposingTextAndWalk:client]; [self popOverflowComposingTextAndWalk:client];
// get user override model suggestion // get user override model suggestion
string overrideValue = string overrideValue =
_uom->suggest(_walkedNodes, _builder->cursorIndex(), [[NSDate date] timeIntervalSince1970]); _uom->suggest(_walkedNodes, _builder->cursorIndex(), [[NSDate date] timeIntervalSince1970]);
if (!overrideValue.empty()) { if (!overrideValue.empty()) {
size_t cursorIndex = [self actualCandidateCursorIndex]; size_t cursorIndex = [self actualCandidateCursorIndex];
vector<NodeAnchor> nodes = _builder->grid().nodesCrossingOrEndingAt(cursorIndex); vector<NodeAnchor> nodes = _builder->grid().nodesCrossingOrEndingAt(cursorIndex);
double highestScore = FindHighestScore(nodes, kEpsilon); double highestScore = FindHighestScore(nodes, kEpsilon);
_builder->grid().overrideNodeScoreForSelectedCandidate(cursorIndex, overrideValue, highestScore); _builder->grid().overrideNodeScoreForSelectedCandidate(cursorIndex, overrideValue, highestScore);
} }
// then update the text // then update the text
_bpmfReadingBuffer->clear(); _bpmfReadingBuffer->clear();
@ -734,40 +734,40 @@ static double FindHighestScore(const vector<NodeAnchor>& nodes, double epsilon)
} }
// Esc // Esc
if (charCode == 27) { if (charCode == 27) {
BOOL escToClearInputBufferEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:kEscToCleanInputBufferKey]; BOOL escToClearInputBufferEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:kEscToCleanInputBufferKey];
if (escToClearInputBufferEnabled) { if (escToClearInputBufferEnabled) {
// if the optioon is enabled, we clear everythiong including the composing // if the optioon is enabled, we clear everythiong including the composing
// buffer, walked nodes and the reading. // buffer, walked nodes and the reading.
if (![_composingBuffer length]) { if (![_composingBuffer length]) {
return NO; return NO;
} }
_bpmfReadingBuffer->clear(); _bpmfReadingBuffer->clear();
_builder->clear(); _builder->clear();
_walkedNodes.clear(); _walkedNodes.clear();
[_composingBuffer setString:@""]; [_composingBuffer setString:@""];
} }
else { else {
// if reading is not empty, we cancel the reading; Apple's built-in // if reading is not empty, we cancel the reading; Apple's built-in
// Zhuyin (and the erstwhile Hanin) has a default option that Esc // Zhuyin (and the erstwhile Hanin) has a default option that Esc
// "cancels" the current composed character and revert it to // "cancels" the current composed character and revert it to
// Bopomofo reading, in odds with the expectation of users from // Bopomofo reading, in odds with the expectation of users from
// other platforms // other platforms
if (_bpmfReadingBuffer->isEmpty()) { if (_bpmfReadingBuffer->isEmpty()) {
// no nee to beep since the event is deliberately triggered by user // no nee to beep since the event is deliberately triggered by user
if (![_composingBuffer length]) { if (![_composingBuffer length]) {
return NO; return NO;
} }
} }
else { else {
_bpmfReadingBuffer->clear(); _bpmfReadingBuffer->clear();
} }
} }
[self updateClientComposingBuffer:client]; [self updateClientComposingBuffer:client];
return YES; return YES;
} }
@ -1367,7 +1367,7 @@ static double FindHighestScore(const vector<NodeAnchor>& nodes, double epsilon)
size_t cursorIndex = [self actualCandidateCursorIndex]; size_t cursorIndex = [self actualCandidateCursorIndex];
_builder->grid().fixNodeSelectedCandidate(cursorIndex, selectedValue); _builder->grid().fixNodeSelectedCandidate(cursorIndex, selectedValue);
_uom->observe(_walkedNodes, cursorIndex, selectedValue, [[NSDate date] timeIntervalSince1970]); _uom->observe(_walkedNodes, cursorIndex, selectedValue, [[NSDate date] timeIntervalSince1970]);
[_candidates removeAllObjects]; [_candidates removeAllObjects];
@ -1407,6 +1407,6 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, FastLM &
void LTLoadLanguageModel() void LTLoadLanguageModel()
{ {
LTLoadLanguageModelFile(@"data", gLanguageModel); LTLoadLanguageModelFile(@"data", gLanguageModelCHT);
LTLoadLanguageModelFile(@"data-chs", gLanguageModelSimpBopomofo); LTLoadLanguageModelFile(@"data-chs", gLanguageModelCHS);
} }