HarmonyOS之AI能力·分词
生活随笔
收集整理的這篇文章主要介紹了
HarmonyOS之AI能力·分词
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、基本概念
- 隨著信息技術的發(fā)展,網(wǎng)絡中的信息量成幾何級增長逐步成為當今社會的主要特征。準確提取文本關鍵信息,是搜索引擎等領域的技術基礎,而分詞作為文本信息提取的第一步則尤為重要。
- 分詞作為自然語言處理領域的基礎研究,衍生出各類不同的文本處理相關應用。
- 分詞模塊提供了文本自動分詞的接口,對于一段輸入文本,可以自動進行分詞,同時提供不同的分詞粒度。開發(fā)者可以根據(jù)需要自定義分詞粒度。
- 分詞當前只支持中文語境。
- 分詞文本限制在 500 個字符以內(nèi),超過字符數(shù)限制將返回參數(shù)錯誤。文本需要為 UTF-8 格式,格式錯誤不會報錯,但分析結果會不準確。
- Engine 支持多用戶同時接入,但是不支持同一用戶并發(fā)調(diào)用同一特性。若同一個特性被同一進程同一時間多次調(diào)用,則返回系統(tǒng)忙錯誤;不同進程調(diào)用同一特性,則同一時間只能處理一個進程業(yè)務,其他進程進入隊列排隊。
二、應用場景
- 分詞相關接口可以應用于搜索引擎開發(fā)。對于搜索引擎而言,最重要的是如何把全網(wǎng)搜索的結果進行篩選,并按相關程度進行排序。分詞的準確與否,常常直接影響到搜索結果的相關度排序。
- 分詞相關接口可以應用于用戶選擇文本的場景。原始文本只能按字選擇,如果使用分詞,用戶選中文本的時可以按詞選擇。
三、API 說明
- 分詞 API 的主要功能是將一個漢字序列切分成一個一個單獨的詞,可自定義分詞的粒度。
① 主要接口
| ResponseResult getWordSegment(String requestData, int requestType) | 分詞,同步接口 |
| ResponseResult getWordSegment(final String requestData, final int requestType, final OnResultListener listener) | 分詞,異步接口 |
| init(Context context, OnResultListener listener, boolean isLoadModel) | 初始化NLU服務。在調(diào)用NLU等功能接口前需要先調(diào)用此接口,在OnResultListener的onResult(T)方法中獲取到回調(diào)結果后,再調(diào)用NLU功能接口。開發(fā)者傳入listener參數(shù)作為回調(diào),用于等待NLU功能接口的調(diào)用過程和結果 |
| void destroy(Context context) | 取消所有NLU任務,銷毀NLU引擎服務。調(diào)用此方法后,無法再使用NLU服務。如果需要重新使用NLU服務,需要重新調(diào)用init(Context, OnResultListener, boolean)}來初始化NLU服務 |
② 接口輸入值說明
- requestType 表示請求類型,通過 NluRequestType 類定義如下:
| static int | REQUEST_TYPE_LOCAL = 0,本地請求 |
- requestData 表示輸入的文本信息,為 json 格式,如下:
| text | 是 | String | 待分析的文本,utf-8,文本長度不超過500個字符 |
| type | 否 | long | 分詞的粒度,默認為0。取值包括: 0:基本詞,粒度較小。如“我要看速度與激情”,分成“我/要/看/速度/與/激情”。 1:在基本詞的基礎上,做實體合并。例如:“我要去江寧萬達廣場看速度與激情”,分成“我/要/去/江寧萬達廣場/看/速度/與/激情”。 對于沒有可合并實體的文本信息,其分詞效果與type為0的分詞效果相同。例如:“明天下午3點一起看電影”,分成“明天/下午/3點/一起/看/電影”。 9223372036854775807(2的63次方減1):在type為1的基礎上,把實體時間、地點等整體結構合并,出現(xiàn)符號隔開不合并,并把一些常用短語合并。如“形容詞+的”,“單字動詞+單字名詞”等,簡化句子成分。 例如“明天下午三點到五點我在江寧瑞都金逸影城看電影”,分成“明天下午三點/到/五點/我/在/江寧瑞都金逸影城/看/電影”。 |
| callPkg | 否 | String | 調(diào)用者名稱 |
| callType | 否 | int | 調(diào)用者類型: 0:普通應用(默認) 1:快應用 |
| callVersion | 否 | String | |
| callState | 否 | int | 調(diào)用者狀態(tài): -1:未知(默認) 0:前臺 1:后臺 |
- 目前 NLU 支持的實體類別:
| 電影 | 依賴字典,要求真實用例,勿做修改 |
| 電視劇 | 依賴字典,要求真實用例,勿做修改 |
| 綜藝 | 依賴字典,要求真實用例,勿做修改 |
| 動漫 | 依賴字典,要求真實用例,勿做修改 |
| 火車車次 | 要求真實用例,勿做修改 |
| 航班號 | 要求真實用例,勿做修改 |
| 球隊 | 依賴字典,支持NBA、CBA、英超、西甲、德甲、意甲、法甲、中超的球隊識別,要求真實用例,勿做修改 |
| 人名 | 要求真實用例,勿做修改 |
| 快遞單號 | 要求真實用例,勿做修改 |
| 電話號碼 | 要求真實用例,勿做修改 |
| url | 要求真實用例,勿做修改 |
| 郵箱 | 要求真實用例,勿做修改 |
| 聯(lián)賽 | NBA、CBA、英超、西甲、德甲、意甲、法甲、中超,要求真實用例,勿做修改 |
| 時間 | 要求真實用例,勿做修改 |
| 地點 | 包含酒店、餐館、景點、學校、道路、省、市、縣、區(qū)、鎮(zhèn)等,部分依賴字典 |
| 驗證碼 | 用例真實,勿做修改 |
③ 接口返回值說明
- 返回值 ResponseResult 中 responseResult 為 Json 字符串,體現(xiàn)分詞的結果:
| code | 是 | int | 結果碼。取值包括: 0:成功 1:系統(tǒng)正在初始化 2:參數(shù)錯誤 3:系統(tǒng)忙 4:系統(tǒng)異常 5:任務超時 6:其它錯誤 |
| message | 是 | String | 錯誤信息 |
| words | 否 | JSONArray | 切分出的詞數(shù)組,數(shù)組里每一項的類型均為JSONObject |
四、開發(fā)流程
- 在使用分詞 API 時,將實現(xiàn)分詞的相關類添加至工程:
- 使用 NluClient 靜態(tài)類進行初始化,通過異步方式獲取服務的連接:
-
- context:應用上下文信息,應為 ohos.aafwk.ability.Ability 或 ohos.aafwk.ability.AbilitySlice 的實例或子類實例;
-
- listener:初始化結果的回調(diào),可以傳 null;
-
- isLoadModel:是否加載模型,如果傳 true,則在初始化時加載模型;如果傳 false,則在初始化時不加載模型。
- 調(diào)用分詞方法得到分析結果,接口提供同步和異步兩個方法,開發(fā)者可根據(jù)自己需要選擇:
-
- 同步:
-
- 異步:
- 解綁服務:
總結
以上是生活随笔為你收集整理的HarmonyOS之AI能力·分词的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HarmonyOS之AI能力·文档检测校
- 下一篇: HarmonyOS之AI能力·IM类意图