Устройство против симулятора лингвистических схем

Кто-нибудь понимает, почему это происходит?

На любом симуляторе все схемы находятся с помощью следующего кода:

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

Может кто-нибудь помочь объяснить мне, почему я не могу получить доступ к другим схемам? В частности, я хочу иметь возможность использовать NSLinguisticTagSchemeLexicalClass с NSLinguisticTagger, В настоящее время из-за этой проблемы тегер помечает любое слово как (OtherWord) вместо его истинной части речи.

Любая помощь будет оценена..

ОБНОВИТЬ

ВСЕ физические устройства дают мне одинаковые результаты - только три доступные схемы... Я в недоумении.

2 ответа

Решение

После неутомимых исследований, бессонных ночей и трех поездок в палату я обнаружил проблему. Хотя исправление было во что бы то ни стало решением бедняка, тем не менее оно сработало.


По какой причине на моем iPhone 6s iOS 11.2.5 не возникало необходимости устанавливать все доступные лингвистические схемы при первоначальной настройке телефона? Либо это, либо он решил удалить их однажды, когда ему было скучно.

Несмотря на это, решение было... барабанная дробь...

Удалите целевой язык... затем переустановите его.


Я предполагаю, что это "сброс" языкового пакета, чтобы повторно включить эти схемы. Happy Codinggg

Презентация WWDC, посвященная этой теме, показывает, что далеко не все языки поддерживаются для всех схем. На самом деле, несколько схем поддерживаются только для следующих языков:

  • английский
  • Французский
  • итальянский
  • Немецкий
  • португальский
  • русский
  • турецкий

Если вы загрузите слайды на связанной странице ниже, вы можете увидеть таблицу этого на слайде 136.

Когда я запускаю ваш код на своих устройствах, они все сообщают о полном наборе, который вы получили на симуляторе для en, С другими языковыми кодами я получаю меньше. Вы проверяли свои версии iOS на своих устройствах против симулятора?

WWDC 2017: 208 - обработка естественного языка и ваши приложения

Другие вопросы по тегам