LMInstantiator // Deploying LMCoreEX.

This commit is contained in:
ShikiSuen 2022-05-08 22:22:58 +08:00
parent 556b0a61ff
commit 694c5e6dd4
1 changed files with 23 additions and 26 deletions

View File

@ -31,8 +31,10 @@ import Foundation
// //
// LMInstantiator 100MB // LMInstantiator 100MB
private var lmCNS = vChewing.LMLite(consolidate: false) private var lmCNS = vChewing.LMCoreEX(
private var lmSymbols = vChewing.LMCore(reverse: true, consolidate: false, defaultScore: -13.0, forceDefaultScore: true) reverse: true, consolidate: false, defaultScore: -11.0, forceDefaultScore: false)
private var lmSymbols = vChewing.LMCoreEX(
reverse: true, consolidate: false, defaultScore: -13.0, forceDefaultScore: false)
extension vChewing { extension vChewing {
/// LMInstantiator is a facade for managing a set of models including /// LMInstantiator is a facade for managing a set of models including
@ -62,26 +64,30 @@ extension vChewing {
public var isCNSEnabled = false public var isCNSEnabled = false
public var isSymbolEnabled = false public var isSymbolEnabled = false
/// ///
/// LMCore key [Unigram] /// ----------------------
/// LMCoreEX key [Unigram]
/// ///
/// /// LMCoreEX Unigram
/// 使 LMLite /// LMCoreEX 滿
/// LMLite /// LMReplacements LMAssociates 使
/// LMLite LMCore
/// LMReplacements LMAssociates 使
// //
/// Reverse /// Reverse
/// Reverse /// Reverse
var lmCore = LMCore(reverse: false, consolidate: false, defaultScore: -9.5, forceDefaultScore: false) var lmCore = LMCoreEX(
var lmMisc = LMCore(reverse: true, consolidate: false, defaultScore: -1, forceDefaultScore: false) reverse: false, consolidate: false, defaultScore: -9.9, forceDefaultScore: false)
var lmMisc = LMCoreEX(
reverse: true, consolidate: false, defaultScore: -1.0, forceDefaultScore: false)
// 使 // 使
// 使使 // 使使
var lmUserPhrases = LMLite(consolidate: true) var lmUserPhrases = LMCoreEX(
var lmFiltered = LMLite(consolidate: true) reverse: true, consolidate: true, defaultScore: 0, forceDefaultScore: true)
var lmUserSymbols = LMLite(consolidate: true) var lmFiltered = LMCoreEX(
reverse: true, consolidate: true, defaultScore: 0, forceDefaultScore: true)
var lmUserSymbols = LMCoreEX(
reverse: true, consolidate: true, defaultScore: -12.0, forceDefaultScore: true)
var lmReplacements = LMReplacments() var lmReplacements = LMReplacments()
var lmAssociates = LMAssociates() var lmAssociates = LMAssociates()
@ -201,7 +207,7 @@ extension vChewing {
// reversed 使 // reversed 使
// //
// rawUserUnigrams // rawUserUnigrams
rawAllUnigrams += lmUserPhrases.unigramsFor(key: key, score: 0.0).reversed() rawAllUnigrams += lmUserPhrases.unigramsFor(key: key).reversed()
if lmUserPhrases.unigramsFor(key: key).isEmpty { if lmUserPhrases.unigramsFor(key: key).isEmpty {
IME.prtDebugIntel("Not found in UserPhrasesUnigram(\(lmUserPhrases.count)): \(key)") IME.prtDebugIntel("Not found in UserPhrasesUnigram(\(lmUserPhrases.count)): \(key)")
} }
@ -211,11 +217,11 @@ extension vChewing {
rawAllUnigrams += lmCore.unigramsFor(key: key) rawAllUnigrams += lmCore.unigramsFor(key: key)
if isCNSEnabled { if isCNSEnabled {
rawAllUnigrams += lmCNS.unigramsFor(key: key, score: -11) rawAllUnigrams += lmCNS.unigramsFor(key: key)
} }
if isSymbolEnabled { if isSymbolEnabled {
rawAllUnigrams += lmUserSymbols.unigramsFor(key: key, score: -12.0) rawAllUnigrams += lmUserSymbols.unigramsFor(key: key)
if lmUserSymbols.unigramsFor(key: key).isEmpty { if lmUserSymbols.unigramsFor(key: key).isEmpty {
IME.prtDebugIntel("Not found in UserSymbolUnigram(\(lmUserSymbols.count)): \(key)") IME.prtDebugIntel("Not found in UserSymbolUnigram(\(lmUserSymbols.count)): \(key)")
} }
@ -232,15 +238,6 @@ extension vChewing {
filteredPairs.insert(unigram.keyValue) filteredPairs.insert(unigram.keyValue)
} }
var debugOutput = "\n"
for neta in rawAllUnigrams {
debugOutput += "RAW: \(neta.keyValue.key) \(neta.keyValue.value) \(neta.score)\n"
}
if debugOutput == "\n" {
debugOutput = "RAW: No match found in all unigrams."
}
IME.prtDebugIntel(debugOutput)
return filterAndTransform( return filterAndTransform(
unigrams: rawAllUnigrams, unigrams: rawAllUnigrams,
filter: filteredPairs, inserted: &insertedPairs filter: filteredPairs, inserted: &insertedPairs