从字符串中解析个人姓名和职位

时间:2014-04-20 23:36:36

标签: ios objective-c parsing

我正试图从OCR扫描的一些文本中解析出职位和个人姓名。

字符串:841 l5 )“-~_§' ‘Ir-‘P... Dennis Hadley Account Manager

正如你所看到的,我认为有一些垃圾文本可以。

以下是我尝试从字符串中解析个人姓名的方法:

  NSString *question = @"     841 l5          )“-~_§' ‘Ir-‘P...   Dennis Hadley Account Manager  ";
        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);
        }];  

这是输出:

2014-04-20 17:32:54.349 NameDetection[7126:303] 841: Number
2014-04-20 17:32:54.349 NameDetection[7126:303] l5: Number
2014-04-20 17:32:54.350 NameDetection[7126:303] ~: Noun
2014-04-20 17:32:54.350 NameDetection[7126:303] Ir: Noun
2014-04-20 17:32:54.350 NameDetection[7126:303] P: Noun
2014-04-20 17:32:54.351 NameDetection[7126:303] Dennis Hadley Account Manager: PersonalName

正如您所看到的,它将作业标题和名称连接成一个,任何人都可以提供有关如何从字符串中解析此信息的建议吗?

1 个答案:

答案 0 :(得分:0)

真的很难说。因为某些人的名字可以包含2,3或4个甚至更多的部分。因为名称和名称之间没有任何分隔符。一个想法如下。

  1. 尝试收集所有可用的名称。
  2. 解析包含名称和名称的字符串部分。
  3. 将指定与收集的列表进行比较,并相应地解析以获取员工的姓名。
  4. 希望这会有所帮助.. :)