Ответ 1
Вы можете сделать это с помощью NSLinguisticTagger
! Я никогда раньше не использовал его, но я взломал это вместе:
NSString *str = @"i have a cat";
NSLinguisticTagger *tagger = [[NSLinguisticTagger alloc] initWithTagSchemes:[NSArray arrayWithObject:NSLinguisticTagSchemeLexicalClass] options:~NSLinguisticTaggerOmitWords];
[tagger setString:str];
[tagger enumerateTagsInRange:NSMakeRange(0, [str length])
scheme:NSLinguisticTagSchemeLexicalClass
options:~NSLinguisticTaggerOmitWords
usingBlock:^(NSString *tag, NSRange tokenRange, NSRange sentenceRange, BOOL *stop) {
NSLog(@"found: %@ (%@)", [str substringWithRange:tokenRange], tag);
}];
[tagger release];
Когда вы запустите это, он регистрирует:
found: i (Pronoun)
found: have (Verb)
found: a (Determiner)
found: cat (Noun)
Обратите внимание, однако, что NSLinguisticTagger
доступен только на iOS 5+ (и Mac OS X 10.7 +).