目标C列举段落中的句子

时间:2012-06-27 18:30:30

标签: objective-c xcode ios4 xcode4 text-segmentation

我想写一个枚举器,它会查看一段文字并一次给我一个句子。我尝试将stringEnumerate与NSStringEnumerationBySentences一起使用,但这只是查看句点并失败。例如,假设我有以下文本块:

“参议员John A. Boehner决定不继续前进。他也决定不召集大会。新闻记者虽然说......”

我希望我的功能在下面的句子中分解上面的段落:

  1. 参议员John A. Boehner决定不继续前进

  2. 他还决定不召集大会(没有第三句,因为这是一个半句子)

  3. 带有句子选项的字符串枚举器会查看句点并以错误方式分解:

    1. 参议员John A.

    2. Boehner决定不继续前进

    3. 他还决定不召集大会

    4. 新闻记者虽然说......

    5. 是否有任何我可以调用的库或功能在这方面做得更好?

      谢谢

      - (NSMutableString *) getOnlyFullSentencesFromTextBlock:(NSMutableString *) textBlock{
          [textBlock enumerateSubstringsInRange:NSMakeRange(0, [textBlock length])
                                        options:NSStringEnumerationBySentences | NSStringEnumerationLocalized
                                      usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop)
          {
              NSLog(@"Sentence Frag:%@", substring);                                                                        
          }];
          return textBlock;
      }
      

2 个答案:

答案 0 :(得分:0)

我遇到的唯一解决方案是检查句点之前的最后一个单词是否以大写字符开头。如果是这样,并且该单词的字符数不超过3或4(你将不得不尝试看看哪个更好),可能它是一个缩写。
我知道这并不涵盖所有情况,但它可能适用于大多数情况。

答案 1 :(得分:0)

NSLinguisticTagger会这样做