0

我正在制作一个简单的语言标记器应用程序,它接受用户输入并提供标记和标记。它在模拟器中运行良好,但是当我在我的设备中运行它时,它并没有做同样的事情。

这是我使用的代码:

 @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

4

0 回答 0