Использование NSLingusiticTagger

#iphone #ios #cocoa-touch

#iPhone #iOS #cocoa-touch

Вопрос:

Я собрал пример кода для тестирования функциональности NSLinguisticTagger, но не повезло. Код выглядит следующим образом. Проблема в том, что я никогда не получаю доступ к блочному коду, который является журналом.

 NSString *linguisticTaggerTestString = @"My name is Jacob Thomas";
NSLinguisticTagger *lingusticTagger = [[NSLinguisticTagger alloc] initWithTagSchemes:[NSArray arrayWithObject:@"NSLinguisticTagSchemeNameType"] options:NSLinguisticTaggerJoinNames];
[lingusticTagger setString:linguisticTaggerTestString];

NSRange range = NSMakeRange(0, [linguisticTaggerTestString length]);

[lingusticTagger enumerateTagsInRange:range scheme:@"NSLinguisticTagSchemeNameType" options:NSLinguisticTaggerJoinNames usingBlock:^(NSString *tag, NSRange tokenRange, NSRange sentenceRange, BOOL *stop) 
{
    NSLog(@"Tag is %@ and the string is %@",tag, [linguisticTaggerTestString substringWithRange:tokenRange]);
}];
 

Ответ №1:

Возможно, вы неправильно инициализировали лингвистический теггер. NSLinguisticTagSchemeNameType является константой, вы не должны передавать ее в виде строки. попробуйте вместо этого следующую строку кода:

 NSLinguisticTagger *lingusticTagger = [[NSLinguisticTagger alloc] initWithTagSchemes:[NSArray arrayWithObject:NSLinguisticTagSchemeNameType] options:NSLinguisticTaggerJoinNames];