Я только начал играть с NSLinguisticTagger
, основываясь на моем коде в этом блоге: NSLinguisticTagger @NSHipster.com
NSLinguisticTaggerOptions options = NSLinguisticTaggerOmitWhitespace | NSLinguisticTaggerOmitPunctuation | NSLinguisticTaggerJoinNames;
NSLinguisticTagger *tagger = [[NSLinguisticTagger alloc] initWithTagSchemes: [NSLinguisticTagger availableTagSchemesForLanguage:@"en"] options:options];
tagger.string = question;
[tagger enumerateTagsInRange:NSMakeRange(0, [question length]) scheme:NSLinguisticTagSchemeNameTypeOrLexicalClass options:options usingBlock:^(NSString *tag, NSRange tokenRange, NSRange sentenceRange, BOOL *stop) {
NSString *token = [question substringWithRange:tokenRange];
NSLog(@"%@: %@", token, tag); }];
Когда я запускаю это с помощью question = @"Weekend in New York"
, "New York"
получает помечен как PlaceName
, что отлично. Но когда я запускаю это с помощью question = @"Weekend in New York"
, "new"
получает помечен как "Adjective"
и "york"
получает помечен как PlaceName
. Есть ли способ обойти это, чтобы "New York"
и "New York"
оба помечены как PlaceName
?
Я совершенно не знаком с этой лингвистикой.