LMI // Make lmCNS and lmSymbols static to save RAM.

This commit is contained in:
ShikiSuen 2022-06-21 09:26:59 +08:00
parent 3da4395e12
commit 413115cbca
1 changed files with 17 additions and 17 deletions

View File

@ -26,15 +26,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import Foundation
//
// LMInstantiator 100MB
private var lmCNS = vChewing.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -11.0, forceDefaultScore: false
)
private var lmSymbols = vChewing.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -13.0, forceDefaultScore: false
)
extension vChewing {
/// LMInstantiatorLMI
/// LanguageModel 使
@ -79,6 +70,15 @@ extension vChewing {
reverse: true, consolidate: false, defaultScore: -1.0, forceDefaultScore: false
)
//
// 100MB
static var lmCNS = vChewing.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -11.0, forceDefaultScore: false
)
static var lmSymbols = vChewing.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -13.0, forceDefaultScore: false
)
// 使
// 使使
var lmUserPhrases = LMCoreEX(
@ -108,11 +108,11 @@ extension vChewing {
}
}
public var isCNSDataLoaded: Bool { lmCNS.isLoaded() }
public var isCNSDataLoaded: Bool { vChewing.LMInstantiator.lmCNS.isLoaded() }
public func loadCNSData(path: String) {
if FileManager.default.isReadableFile(atPath: path) {
lmCNS.open(path)
IME.prtDebugIntel("lmCNS: \(lmCNS.count) entries of data loaded from: \(path)")
vChewing.LMInstantiator.lmCNS.open(path)
IME.prtDebugIntel("lmCNS: \(vChewing.LMInstantiator.lmCNS.count) entries of data loaded from: \(path)")
} else {
IME.prtDebugIntel("lmCNS: File access failure: \(path)")
}
@ -128,11 +128,11 @@ extension vChewing {
}
}
public var isSymbolDataLoaded: Bool { lmSymbols.isLoaded() }
public var isSymbolDataLoaded: Bool { vChewing.LMInstantiator.lmSymbols.isLoaded() }
public func loadSymbolData(path: String) {
if FileManager.default.isReadableFile(atPath: path) {
lmSymbols.open(path)
IME.prtDebugIntel("lmSymbol: \(lmSymbols.count) entries of data loaded from: \(path)")
vChewing.LMInstantiator.lmSymbols.open(path)
IME.prtDebugIntel("lmSymbol: \(vChewing.LMInstantiator.lmSymbols.count) entries of data loaded from: \(path)")
} else {
IME.prtDebugIntel("lmSymbols: File access failure: \(path)")
}
@ -216,12 +216,12 @@ extension vChewing {
rawAllUnigrams += lmCore.unigramsFor(key: key)
if isCNSEnabled {
rawAllUnigrams += lmCNS.unigramsFor(key: key)
rawAllUnigrams += vChewing.LMInstantiator.lmCNS.unigramsFor(key: key)
}
if isSymbolEnabled {
rawAllUnigrams += lmUserSymbols.unigramsFor(key: key)
rawAllUnigrams += lmSymbols.unigramsFor(key: key)
rawAllUnigrams += vChewing.LMInstantiator.lmSymbols.unigramsFor(key: key)
}
// Swift 使 NSOrderedSet