From de3406162331829be6a00ada01b46787b1cabb18 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Thu, 23 Jun 2022 09:45:32 +0800 Subject: [PATCH] UOM // Add bleachUnigrams(). --- .../SubLMs/lmUserOverride.swift | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/Source/Modules/LangModelRelated/SubLMs/lmUserOverride.swift b/Source/Modules/LangModelRelated/SubLMs/lmUserOverride.swift index 058dd9aa..89adccea 100644 --- a/Source/Modules/LangModelRelated/SubLMs/lmUserOverride.swift +++ b/Source/Modules/LangModelRelated/SubLMs/lmUserOverride.swift @@ -273,6 +273,23 @@ extension vChewing.LMUserOverride { // MARK: - Hash and Dehash the entire UOM data extension vChewing.LMUserOverride { + /// 自 LRU 辭典內移除所有的單元圖。 + public func bleachUnigrams() { + for key in mutLRUMap.keys { + if !key.contains("(),()") { continue } + mutLRUMap.removeValue(forKey: key) + } + resetMRUList() + mgrLangModel.saveUserOverrideModelData() + } + + internal func resetMRUList() { + mutLRUList.removeAll() + for neta in mutLRUMap.reversed() { + mutLRUList.append(neta.value) + } + } + public func saveData(toURL fileURL: URL) { let encoder = JSONEncoder() do { @@ -294,10 +311,7 @@ extension vChewing.LMUserOverride { return } mutLRUMap = jsonResult - mutLRUList.removeAll() - for neta in mutLRUMap.reversed() { - mutLRUList.append(neta.value) - } + resetMRUList() } catch { IME.prtDebugIntel("UOM Error: Unable to read file or parse the data, abort loading. Details: \(error)") return