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
private var lmCNS = vChewing.LMLite(consolidate: false)
private var lmSymbols = vChewing.LMCore(reverse: true, consolidate: false, defaultScore: -13.0, forceDefaultScore: true)
private var lmCNS = vChewing.LMCoreEX(
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 {
/// LMInstantiator is a facade for managing a set of models including
@ -62,26 +64,30 @@ extension vChewing {
public var isCNSEnabled = false
public var isSymbolEnabled = false
///
/// LMCore key [Unigram]
///
/// ----------------------
/// LMCoreEX key [Unigram]
///
///
/// 使 LMLite
/// LMLite
/// LMLite LMCore
/// LMReplacements LMAssociates 使
/// LMCoreEX Unigram
/// LMCoreEX 滿
/// LMReplacements LMAssociates 使
//
/// Reverse
/// Reverse
var lmCore = LMCore(reverse: false, consolidate: false, defaultScore: -9.5, forceDefaultScore: false)
var lmMisc = LMCore(reverse: true, consolidate: false, defaultScore: -1, forceDefaultScore: false)
var lmCore = LMCoreEX(
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 lmFiltered = LMLite(consolidate: true)
var lmUserSymbols = LMLite(consolidate: true)
var lmUserPhrases = LMCoreEX(
reverse: true, consolidate: true, defaultScore: 0, forceDefaultScore: 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 lmAssociates = LMAssociates()
@ -201,7 +207,7 @@ extension vChewing {
// reversed 使
//
// rawUserUnigrams
rawAllUnigrams += lmUserPhrases.unigramsFor(key: key, score: 0.0).reversed()
rawAllUnigrams += lmUserPhrases.unigramsFor(key: key).reversed()
if lmUserPhrases.unigramsFor(key: key).isEmpty {
IME.prtDebugIntel("Not found in UserPhrasesUnigram(\(lmUserPhrases.count)): \(key)")
}
@ -211,11 +217,11 @@ extension vChewing {
rawAllUnigrams += lmCore.unigramsFor(key: key)
if isCNSEnabled {
rawAllUnigrams += lmCNS.unigramsFor(key: key, score: -11)
rawAllUnigrams += lmCNS.unigramsFor(key: key)
}
if isSymbolEnabled {
rawAllUnigrams += lmUserSymbols.unigramsFor(key: key, score: -12.0)
rawAllUnigrams += lmUserSymbols.unigramsFor(key: key)
if lmUserSymbols.unigramsFor(key: key).isEmpty {
IME.prtDebugIntel("Not found in UserSymbolUnigram(\(lmUserSymbols.count)): \(key)")
}
@ -232,15 +238,6 @@ extension vChewing {
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(
unigrams: rawAllUnigrams,
filter: filteredPairs, inserted: &insertedPairs