ios - iPhone SDK : Break chinese sentence into words and letters

标签 ios nsstring chinese-locale word-processor

我有中文新闻提要,我想将句子分成更小的 block 以传递给 API。

我如何在 ios 中执行此操作?我已经为英语语言设置了 50 个字符的字符长度。

目前我正在使用 rangeOfString: 函数来查找点、逗号和断句。

NSString *str  = nil, *rem = nil;

str = [final substringToIndex:MAX_CHAR_Private];
rem = [final substringFromIndex:MAX_CHAR_Private];
NSRange rng = [rem rangeOfString:@"?"];
if (rng.location == NSNotFound) {
    rng = [rem rangeOfString:@"!"];
    if (rng.location == NSNotFound) {
        rng = [rem rangeOfString:@","];
        if (rng.location == NSNotFound) {
            rng = [rem rangeOfString:@"."];
            if (rng.location == NSNotFound) {
                rng = [rem rangeOfString:@" "];
            }
        }
    }
}
if (rng.location+1 + MAX_CHAR_Private > MAXIMUM_LIMIT_Private) {
    rng = [rem rangeOfString:@" "];
}

if (rng.location == NSNotFound) {
    remaining = [[final substringFromIndex:MAX_CHAR_Private] retain];
}
else{
    //NSRange rng = [rem rangeOfString:@" "];
    str = [str stringByAppendingString:[rem substringToIndex:rng.location]];
    remaining = [[final substringFromIndex:MAX_CHAR_Private + rng.location+1] retain];
}

这对于中文和日文字符无法正常工作。

最佳答案

检查 NSLinguisticTagger,它应该可以用于中文:

来自 Apple:“NSLinguisticTagger 类用于自动分割自然语言文本并用信息标记它,例如词性。它还可以标记语言、脚本、词干形式等。”

Apple 文档 NSLinguisticTagger Class Reference

另见 NSHipster NSLinguisticTagger .

另见 objc.io issue 7

关于ios - iPhone SDK : Break chinese sentence into words and letters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24530762/

相关文章:

mfc - 加速器 的中文翻译

ios - 从 [NSString : AnyObject] as UIViewAnimationCurve? 获取对象

iphone - 在 iPhone 中从运营商检索当前时间

安卓语言环境 : detect all chinese language locale

ios - 文件名中的字符串显示 %20,其中名称中有空格,不需要

objective-c - stringWithContentsOfFile :encoding:error: error 260

android - 如何在 iOS 和 Android 的 React Native 应用程序中检查互联网连接?

iOS浅亚麻布背景?

ios - 如何在 swift 中的每个循环中附加字符串

ios - 如何从不区分大小写的 NSString 中搜索子字符串