LMInstantiator // Use NSOrderedSet to deduplicate.

This commit is contained in:
ShikiSuen 2022-05-10 19:00:50 +08:00
parent 9682b8ea5d
commit 1ea4083338
1 changed files with 9 additions and 12 deletions

View File

@ -236,9 +236,8 @@ extension vChewing {
rawAllUnigrams += lmSymbols.unigramsFor(key: key)
}
//
var insertedPairs: Set<Megrez.KeyValuePair> = [] //
var filteredPairs: Set<Megrez.KeyValuePair> = [] //
// Swift 使 NSOrderedSet
var filteredPairs: Set<Megrez.KeyValuePair> = []
// KeyValuePair
for unigram in lmFiltered.unigramsFor(key: key) {
@ -247,7 +246,7 @@ extension vChewing {
return filterAndTransform(
unigrams: rawAllUnigrams,
filter: filteredPairs, inserted: &insertedPairs
filter: filteredPairs
)
}
@ -275,8 +274,7 @@ extension vChewing {
func filterAndTransform(
unigrams: [Megrez.Unigram],
filter filteredPairs: Set<Megrez.KeyValuePair>,
inserted insertedPairs: inout Set<Megrez.KeyValuePair>
filter filteredPairs: Set<Megrez.KeyValuePair>
) -> [Megrez.Unigram] {
var results: [Megrez.Unigram] = []
@ -293,13 +291,12 @@ extension vChewing {
pair.value = replacement
}
}
if !insertedPairs.contains(pair) {
results.append(Megrez.Unigram(keyValue: pair, score: unigram.score))
insertedPairs.insert(pair)
}
results.append(Megrez.Unigram(keyValue: pair, score: unigram.score))
}
return results
// Swift Swift-Collections OrderedSet NSOrderedSet
let resultsDeduplicated = Array(NSOrderedSet(array: results).array as! [Megrez.Unigram])
return resultsDeduplicated
}
}
}