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