问个与正向最长匹配算法和思路有关的问题。

2022-06-01 13:20:29 +08:00
 ShikiSuen

小弟打算用纯 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
}
3269 次点击
所在节点    iDev
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/856692

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX