UOM // Reduce the decay half-life of unigrams, plus bug fix.

This commit is contained in:
ShikiSuen 2023-01-30 18:40:53 +08:00
parent 917ebcb1bf
commit e2d3287c3d
1 changed files with 5 additions and 3 deletions

View File

@ -276,9 +276,11 @@ extension vChewingLM.LMUserOverride {
var forceHighScoreOverride = false
var currentHighScore: Double = 0
for (i, theObservation) in observation.overrides {
// Unigram
let decayExp = mutDecayExponent * (key.contains("(),(),") ? 24 : 1)
let overrideScore = getScore(
eventCount: theObservation.count, totalCount: observation.count,
eventTimestamp: theObservation.timestamp, timestamp: timestamp, lambda: mutDecayExponent
eventTimestamp: theObservation.timestamp, timestamp: timestamp, lambda: decayExp
)
if (0...currentHighScore).contains(overrideScore) { continue }
@ -338,8 +340,8 @@ extension vChewingLM.LMUserOverride {
//
let strCurrent = kvCurrent.joinedKey()
var kvPrevious = Megrez.Compositor.KeyValuePaired()
var kvAnterior = Megrez.Compositor.KeyValuePaired()
var kvPrevious = Megrez.Compositor.KeyValuePaired(keyArray: [""], value: "")
var kvAnterior = Megrez.Compositor.KeyValuePaired(keyArray: [""], value: "")
var readingStack = ""
var trigramKey: String { "(\(kvAnterior.toNGramKey),\(kvPrevious.toNGramKey),\(strCurrent))" }
var result: String {