先来个例子:
import Foundation
func tokenize(sentence: String) -> [String] {
var tokens:[String] = [String]()
let tagger = NSLinguisticTagger(tagSchemes: [.tokenType], options: 0)
tagger.string = sentence
let range = NSMakeRange(0, sentence.utf16.count)
let options: NSLinguisticTagger.Options = [.omitWhitespace, .omitPunctuation]
tagger.enumerateTags(in: range, unit: .word, scheme: .tokenType, options: options) { (tag, tokenRange, stop) in
let word = (sentence as NSString).substring(with: tokenRange)
tokens.append(word)
}
return tokens
}
let texts: [String] = ["有個大夫叫白朮,他有個徒弟叫七七。"]
for text in texts {
let tokens = tokenize(sentence: text)
print("\(text) --> \(tokens)")
}
直接运行该 swift 脚本,可以发现「白朮」(「白术」的繁体中文写法)被拆开了。 该怎样定义这个词、使其不被误拆呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.