UOM // Fix the handling of mutDecayExponent.

This commit is contained in:
ShikiSuen 2023-03-03 08:56:18 +08:00
parent d561d9e768
commit cfecfbc146
1 changed files with 8 additions and 4 deletions

View File

@ -277,7 +277,10 @@ extension vChewingLM.LMUserOverride {
var currentHighScore: Double = 0
for (i, theObservation) in observation.overrides {
// Unigram
let decayExp = mutDecayExponent * (key.contains("(),(),") ? 24 : 1)
let isUnigramKey = key.contains("(),(),")
var decayExp = mutDecayExponent * (isUnigramKey ? 24 : 1)
// Unigram 12
if isUnigramKey, !key.replacingOccurrences(of: "(),(),", with: "").contains("-") { decayExp *= 12 }
let overrideScore = getScore(
eventCount: theObservation.count, totalCount: observation.count,
eventTimestamp: theObservation.timestamp, timestamp: timestamp, lambda: decayExp
@ -315,7 +318,7 @@ extension vChewingLM.LMUserOverride {
private static func formObservationKey(
walkedNodes: [Megrez.Compositor.Node], headIndex cursorIndex: Int, readingOnly: Bool = false
) -> String {
let whiteList = "你他妳她祢衪它牠再在"
// let whiteList = ""
var arrNodes: [Megrez.Compositor.Node] = []
var intLength = 0
for theNodeAnchor in walkedNodes {
@ -345,9 +348,10 @@ extension vChewingLM.LMUserOverride {
var readingStack = ""
var trigramKey: String { "(\(kvAnterior.toNGramKey),\(kvPrevious.toNGramKey),\(strCurrent))" }
var result: String {
// kvCurrent
if readingStack.contains("_")
|| (!kvPrevious.isValid && kvCurrent.value.count == 1 && !whiteList.contains(kvCurrent.value))
// 使
// kvCurrent
// || (!kvPrevious.isValid && kvCurrent.value.count == 1 && !whiteList.contains(kvCurrent.value))
{
return ""
} else {