设备与模拟器语言方案

时间:2018-02-13 14:18:39

标签: ios objective-c ios-simulator locale nslinguistictagger

有没有人理解为什么会发生这种情况?

在任何模拟器上,可以使用以下代码找到所有方案:

NSArray<NSLinguisticTagScheme> *availSchemes = [NSLinguisticTagger availableTagSchemesForLanguage:@"en"];
for (NSLinguisticTagScheme scheme in availSchemes) {
    NSLog(@"Tag scheme %@", scheme);
}

产生以下内容:

2018-02-13 09:12:54.066970-0500 MY_APP[79671:5737063] Tag scheme Language
2018-02-13 09:12:54.067160-0500 MY_APP[79671:5737063] Tag scheme Script
2018-02-13 09:12:54.067300-0500 MY_APP[79671:5737063] Tag scheme TokenType
2018-02-13 09:12:54.067425-0500 MY_APP[79671:5737063] Tag scheme LexicalClass
2018-02-13 09:12:54.067541-0500 MY_APP[79671:5737063] Tag scheme NameType
2018-02-13 09:12:54.067655-0500 MY_APP[79671:5737063] Tag scheme NameTypeOrLexicalClass
2018-02-13 09:12:54.067768-0500 MY_APP[79671:5737063] Tag scheme Lemma

但是,在我的设备上( iPhone 6s iOS 11.2 ),我收到以下内容..

2018-02-13 09:13:09.834879-0500 MY_APP[4327:313598] Tag scheme Language
2018-02-13 09:13:09.835256-0500 MY_APP[4327:313598] Tag scheme Script
2018-02-13 09:13:09.835556-0500 MY_APP[4327:313598] Tag scheme TokenType

任何人都可以帮我解释为什么我无法访问其他方案?特别是我希望NSLinguisticTagSchemeLexicalClassNSLinguisticTagger一起使用。目前,此问题导致标记器将任何单词标记为(OtherWord),而不是标记为真正的词性。

任何帮助将不胜感激..

更新

所有物理设备给我相同的结果 - 只有三种可用的方案......我在这里不知所措。

2 个答案:

答案 0 :(得分:5)

经过不懈的研究,不眠之夜,以及三次前往病房,我发现了问题所在。虽然 fix 无论如何都是穷人的解决方案,但它仍然有效。

对于无论什么原因我的iPhone 6s iOS 11.2.5在我最初设置手机时并不想安装所有可用的语言方案?无论是那个还是它决定在无聊的时候删除它们。

无论如何,解决方案是......鼓滚......

  

卸载目标语言...然后重新安装。

我猜这&#34;重置&#34;语言包重新包含这些方案。快乐的编码

答案 1 :(得分:2)

关于这个主题的WWDC演示文稿表明,所有方案都支持远非所有语言。实际上,只有以下语言支持几种方案:

  • 意大利
  • 德国
  • 葡萄牙语
  • 土耳其

如果您在下面的链接页面上下载幻灯片,则可以在幻灯片136 上看到此表格。

当我在我的设备上运行您的代码时,他们都会报告您在en的模拟器上获得的完整集。使用其他语言代码我得到的更少。您是否在设备和模拟器上检查了iOS版本?

WWDC 2017:208 - Natural Language Processing and your Apps