iOS中自带超强中文分词器的实现方法

 更新时间:2017年06月29日 08:33:23   作者:Minecraft  
这篇文章主要给大家介绍了关于iOS中自带超强中文分词器的实现方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

说明

在处理文本的时候,第一步往往是将字符串进行分词,得到一个个关键词。苹果从很早就开始支持中文分词了,而且我们几乎人人每天都会用到,回想一下,在使用手机时,长按一段文字,往往会选中按住位置的一个词语,这里就是一个分词的绝佳用例,而iOS自带的分词效果非常棒,大家可以自己平常注意观察一下,基本对中文也有很好的效果。而这个功能也开放了API供开发者调用,我试用了一下,很好用!

效果如下:

实现

其实苹果给出了完整的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);
 }

其实逻辑很简单:创建分词器–>一个个地一次获取分词后的每个词的起始位置和长度,从而取出词。

示例里我用列表显示每个分词,比较清楚,列表的实现就不说明了,可以直接看工程代码。

值得一提的是,其分词速度很快,甚至一些网络词汇比如“木有”,一些成语等等都能够识别出,能看出这是分词的什么吗:

示例工程:https://github.com/Cloudox/OXStringTokenizerDemo

本地下载:http://xiazai.jb51.net/201706/yuanma/OXStringTokenizerDemo(jb51.net).rar

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • iOS中在APP内加入AppStore评分功能的实现方法

    iOS中在APP内加入AppStore评分功能的实现方法

    这篇文章主要介绍了iOS中在APP内加入AppStore评分功能的实现方法,文中笔者给大家整理了三种方式,大家可以根据自己的需求选择,需要的朋友可以参考下
    2017-11-11
  • iOS中的NSTimer定时器的初步使用解析

    iOS中的NSTimer定时器的初步使用解析

    这篇文章主要介绍了iOS中的NSTimer定时器的初步使用解析,通过例子简单讲解了NSTimer的输出与停止的方法,需要的朋友可以参考下
    2016-05-05
  • iOS开发之手势识别

    iOS开发之手势识别

    本文给大家汇总介绍了在IOS开发中我们经常需要用到的手势识别的相关知识,非常的细致全面,有需要的小伙伴可以参考下
    2016-04-04
  • iOS自定义字体显示问题的完美解决方法

    iOS自定义字体显示问题的完美解决方法

    这篇文章主要给大家介绍了关于iOS自定义字体出问题的完美解决方法,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • iOS实现控制屏幕常亮不变暗的方法示例

    iOS实现控制屏幕常亮不变暗的方法示例

    最近在工作中遇到了要将iOS屏幕保持常亮的需求,所以下面这篇文章主要给大家介绍了关于利用iOS如何实现控制屏幕常亮不变暗的方法,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-10-10
  • iOS中自定义弹出pickerView效果(DEMO)

    iOS中自定义弹出pickerView效果(DEMO)

    这篇文章主要介绍了iOS中自定义简单弹出pickerView(DEMO)的实例代码,需要的朋友可以参考下
    2017-01-01
  • 简单说说iOS之WKWebView的用法小结

    简单说说iOS之WKWebView的用法小结

    iOS8.0之后我们使用 WebKit框架中的WKWebView来加载网页。这篇文章主要介绍了简单说说iOS之WKWebView的用法小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • ios开发中的容错处理示例详解

    ios开发中的容错处理示例详解

    最近发现还是有很多朋友在问类似解析时容错问题怎么解决,所以下面这篇文章主要给大家介绍了关于ios开发中的容错处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们一起来看看吧
    2018-05-05
  • iOS WKWebView适配实战篇

    iOS WKWebView适配实战篇

    这篇文章主要介绍了iOS WKWebView适配实战篇,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • iOS视频压缩存储至本地并上传至服务器实例代码

    iOS视频压缩存储至本地并上传至服务器实例代码

    本篇文章主要介绍了iOS视频压缩存储至本地并上传至服务器实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04

最新评论