欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS中自帶超強中文分詞器的實現(xiàn)方法

 更新時間:2017年06月29日 08:33:23   作者:Minecraft  
這篇文章主要給大家介紹了關于iOS中自帶超強中文分詞器的實現(xiàn)方法,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

說明

在處理文本的時候,第一步往往是將字符串進行分詞,得到一個個關鍵詞。蘋果從很早就開始支持中文分詞了,而且我們幾乎人人每天都會用到,回想一下,在使用手機時,長按一段文字,往往會選中按住位置的一個詞語,這里就是一個分詞的絕佳用例,而iOS自帶的分詞效果非常棒,大家可以自己平常注意觀察一下,基本對中文也有很好的效果。而這個功能也開放了API供開發(fā)者調(diào)用,我試用了一下,很好用!

效果如下:

實現(xiàn)

其實蘋果給出了完整的API,想要全面了解的可以直接看文檔:CFStringTokenizer Reference

這里說說簡單的一個實現(xiàn):

 // 要分詞的字符串
 NSString *string = @"俠士隱鋒,莽夫露刃";

 self.keywords = [[NSMutableArray alloc] init];
 CFStringTokenizerRef ref = CFStringTokenizerCreate(NULL, (__bridge CFStringRef)string, CFRangeMake(0, string.length), kCFStringTokenizerUnitWord, NULL);// 創(chuàng)建分詞器
 CFRange range;// 當前分詞的位置
 // 獲取第一個分詞的范圍
 CFStringTokenizerAdvanceToNextToken(ref);
 range = CFStringTokenizerGetCurrentTokenRange(ref);

 // 循環(huán)遍歷獲取所有分詞并記錄到數(shù)組中
 NSString *keyWord;
 while (range.length>0) {
  keyWord = [string substringWithRange:NSMakeRange(range.location, range.length)];
  [self.keywords addObject:keyWord];
  CFStringTokenizerAdvanceToNextToken(ref);
  range = CFStringTokenizerGetCurrentTokenRange(ref);
 }

其實邏輯很簡單:創(chuàng)建分詞器–>一個個地一次獲取分詞后的每個詞的起始位置和長度,從而取出詞。

示例里我用列表顯示每個分詞,比較清楚,列表的實現(xiàn)就不說明了,可以直接看工程代碼。

值得一提的是,其分詞速度很快,甚至一些網(wǎng)絡詞匯比如“木有”,一些成語等等都能夠識別出,能看出這是分詞的什么嗎:

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

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

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • iOS內(nèi)存管理Tagged Pointer使用原理詳解

    iOS內(nèi)存管理Tagged Pointer使用原理詳解

    這篇文章主要為大家介紹了iOS內(nèi)存管理Tagged Pointer使用原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 在uiview 的tableView中點擊cell進入跳轉到另一個界面的實現(xiàn)方法

    在uiview 的tableView中點擊cell進入跳轉到另一個界面的實現(xiàn)方法

    這篇文章主要介紹了在uiview 的tableView中點擊cell進入跳轉到另一個界面的實現(xiàn)方法,首先重寫uiviewcontrol方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • iOS實現(xiàn)搭建聊天頁面的實例代碼

    iOS實現(xiàn)搭建聊天頁面的實例代碼

    本篇文章主要介紹了iOS實現(xiàn)搭建聊天頁面的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • iOS UITextField最大字符數(shù)和字節(jié)數(shù)的限制詳解

    iOS UITextField最大字符數(shù)和字節(jié)數(shù)的限制詳解

    在開發(fā)中我們經(jīng)常遇到這樣的需求:在UITextField或者UITextView中限制用戶可以輸入的最大字符數(shù)。但在UITextView , UITextfield 中有很多坑,網(wǎng)上的方法也很多。但是并不是很全面吧,這里全面進行了總結,有需要的朋友們可以參考借鑒,下面跟著小編一起來學習學習吧。
    2016-11-11
  • IOS 中runtime使用方法整理

    IOS 中runtime使用方法整理

    這篇文章主要介紹了IOS 中runtime使用方法整理的相關資料,需要的朋友可以參考下
    2017-03-03
  • iOS如何自定義控制器轉場動畫push詳解

    iOS如何自定義控制器轉場動畫push詳解

    在平時開發(fā)中,有時候需要一些轉場動畫給界面調(diào)整增添一些活力,而實現(xiàn)這些動畫相對比較繁瑣。下面這篇文章主要給大家介紹了關于iOS如何自定義控制器轉場動畫push的相關資料,需要的朋友可以參考下。
    2017-12-12
  • iOS表視圖之下拉刷新控件功能的實現(xiàn)方法

    iOS表視圖之下拉刷新控件功能的實現(xiàn)方法

    下拉刷新是重新刷新表視圖或列表,以便重新加載數(shù)據(jù),這種模式廣泛用于移動平臺,相信大家對于此也是非常熟悉的,那么iOS是如何做到的下拉刷新呢?下面小編給大家分享iOS表視圖之下拉刷新控件的實現(xiàn)方法,一起看看吧
    2017-01-01
  • iOS通過http post上傳圖片

    iOS通過http post上傳圖片

    這篇文章主要介紹了iOS通過http post上傳圖片的相關資料,需要的朋友可以參考下
    2016-03-03
  • iOS UILabel根據(jù)內(nèi)容自動調(diào)整高度

    iOS UILabel根據(jù)內(nèi)容自動調(diào)整高度

    這篇文章主要為大家詳細介紹了iOS UILabel根據(jù)內(nèi)容自動調(diào)整高度,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 安裝win10+黑蘋果雙系統(tǒng)零基礎教程(圖文)

    安裝win10+黑蘋果雙系統(tǒng)零基礎教程(圖文)

    這篇文章主要介紹了安裝win10+黑蘋果雙系統(tǒng)零基礎教程(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-01-01

最新評論