我正在制作一个简单的语言标记器应用程序,它接受用户输入并提供标记和标记。它在模拟器中运行良好,但是当我在我的设备中运行它时,它并没有做同样的事情。
这是我使用的代码:
@IBAction func callML(_ sender: Any) {
let entryString = self.entryField.text!
print(entryString)
self.view .endEditing(true)
let schemes = NSLinguisticTagger.availableTagSchemes(forLanguage: "en-IN")
let options: NSLinguisticTagger.Options = [
.omitWhitespace, .omitPunctuation, .joinNames
]
let tagger = NSLinguisticTagger(tagSchemes: schemes, options: Int(options.rawValue))
tagger.string = entryString
let rangeOfEntireEntryString = NSRange(location: 0, length: entryString.utf16.count)
tagger.enumerateTags(
in: rangeOfEntireEntryString,
scheme: .nameTypeOrLexicalClass,
options: options)
{ (tag, tokenRange, sentenceRange, _) in
guard let tag = tag?.rawValue else { return }
let token = (entryString as NSString).substring(with:
tokenRange)
print("[\(tag)] \(token)")
if tag.count==12{
print("This is for personal name")
print(token)
name=token
}
}
}
当我在控制台中打印标签和令牌时,它只会给出普通文本,而不是像我从模拟器中得到的那样。
在文本字段中输入:遇见男人
使用模拟器时在控制台中输出:
[Verb] meet
[Determiner] the
[Noun] man
使用设备时在控制台中输出:Meet the Man