小弟打算用纯 Swift 写一个基于「正向最长匹配」的繁简转换模组,是包含用词转换的那种。但小弟对此尚无任何经验。看 OpenCC 的 C++ 一堆 Dependency 有些臃肿的样子,用 Swift 照着全重写一遍可能会牛鼎烹鸡。假设说 Swift 有现成的 NLTokenizer 的话,有没有相关的设计范例?不一定非得是 Swift ,小弟就是想知道该怎么将一个 Tokenizer 用在这种场合。欢迎赐教。
import NaturalLanguage
let text = """
八月中秋山林涼,風吹大地草枝擺。
甘霖老母趕羚羊,來年羊毛超級賣。
草枝擺啊趕羚羊,趕羚羊啊草枝擺。
庭院織芭為君開,都蘭山曉金棘擺。
天搖地動舟渡嵐,嗚呼甘霖老跡埋。
金棘擺啊老跡埋,老跡埋啊金棘擺。
"""
let tokenizer = NLTokenizer(unit: .word)
tokenizer.string = text
tokenizer.setLanguage(NLLanguage.traditionalChinese)
tokenizer.enumerateTokens(in: text.startIndex..<text.endIndex) { tokenRange, _ in
print(text[tokenRange])
return true
}