大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家分享的是有关iOS中如何实现自带超强中文分词器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
成都创新互联不能给您低的价格,只能给您高的品质!我们努力坚持得到越来越多的客户认可和追随,这正是我们继续前进的大动力!创新互联专业网站设计公司,为企业提供高端网站建设,营销型网站制作,外贸网站制作,做网站,网站改版等做网站服务,建网站费用1680元起,成都数百家企业建站公司的选择。
效果如下:
实现
其实苹果给出了完整的API,想要全面了解的可以直接看文档:CFStringTokenizer Reference
这里说说简单的一个实现:
// 要分词的字符串 NSString *string = @"侠士隐锋,莽夫露刃"; self.keywords = [[NSMutableArray alloc] init]; CFStringTokenizerRef ref = CFStringTokenizerCreate(NULL, (__bridge CFStringRef)string, CFRangeMake(0, string.length), kCFStringTokenizerUnitWord, NULL);// 创建分词器 CFRange range;// 当前分词的位置 // 获取第一个分词的范围 CFStringTokenizerAdvanceToNextToken(ref); range = CFStringTokenizerGetCurrentTokenRange(ref); // 循环遍历获取所有分词并记录到数组中 NSString *keyWord; while (range.length>0) { keyWord = [string substringWithRange:NSMakeRange(range.location, range.length)]; [self.keywords addObject:keyWord]; CFStringTokenizerAdvanceToNextToken(ref); range = CFStringTokenizerGetCurrentTokenRange(ref); }
其实逻辑很简单:创建分词器–>一个个地一次获取分词后的每个词的起始位置和长度,从而取出词。
示例里我用列表显示每个分词,比较清楚,列表的实现就不说明了,可以直接看工程代码。
值得一提的是,其分词速度很快,甚至一些网络词汇比如“木有”,一些成语等等都能够识别出,能看出这是分词的什么吗:
感谢各位的阅读!关于“iOS中如何实现自带超强中文分词器”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!