- (NSMutableArray *)getTagEntrIEs:(Nsstring *)sentence { NSArray<NSlinguisticTagscheme> *Tagschemes = [NSlinguisticTagger availableTagschemesForLanguage:@"en"]; NSlinguisticTaggerOptions options = NSlinguisticTaggerJoinnames | NSlinguisticTaggerOmitWhitespace; NSlinguisticTagger *linguisticTagger = [[NSlinguisticTagger alloc] initWithTagschemes:Tagschemes options:options]; linguisticTagger.string = sentence; __block NSMutableArray *tagEntrIEs = [@[] mutablecopy]; [linguisticTagger enumerateTagsInRange:NSMakeRange(0,sentence.length) scheme:NSlinguisticTagschemenameTypeOrLexicalClass options:options usingBlock:^(NSlinguisticTag tag,NSRange tokenRange,NSRange sentenceRange,BOol *stop) { Nsstring *token = [sentence substringWithRange:tokenRange]; NSLog(@"%@ -> %@",token,tag); [tagEntrIEs addobject:@{@"token":token,@"tag":tag}]; }]; return tagEntrIEs;}
当我尝试在iPhone上打印出可用的方案时,Lexical不是一个选项.怎么会!?
NSArray<NSlinguisticTagscheme> *availSchemes = [NSlinguisticTagger availableTagschemesForLanguage:@"en"];for (NSlinguisticTagscheme scheme in availSchemes) { NSLog(@"Tag scheme %@",scheme);}// output:// Tag scheme Language// Tag scheme Script// Tag scheme TokenType
使用iPhone 6和iOS 11.
解决方法 不幸的是,答案是改变设备.我的iPhone X没有这个问题.这可能是由于拥有6s和更新手机的专用ML芯片. 总结以上是内存溢出为你收集整理的ios – NSLinguisticTagger enumerateTagsInRange不适用于具有NSLinguisticTagSchemeNameTypeOrLexicalClass的设备全部内容,希望文章能够帮你解决ios – NSLinguisticTagger enumerateTagsInRange不适用于具有NSLinguisticTagSchemeNameTypeOrLexicalClass的设备所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)