HarmonyOS之AI能力·实体识别
生活随笔
收集整理的這篇文章主要介紹了
HarmonyOS之AI能力·实体识别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、簡介
- 實體識別能夠從自然語言中提取出具有特定意義的實體,并在此基礎上完成搜索等一系列相關操作及功能。
- 實體識別覆蓋范圍大,能夠滿足日常開發中對實體識別的需求,讓應用體驗更好。識別準確率高,能夠準確地提取到實體信息,對應用基于信息的后續服務形成關鍵影響。
- 實體識別當前只支持中文語境。
- 實體識別文本限制在 500 個字符以內,超過字符數限制將返回參數錯誤;文本需要為 UTF-8 格式,格式錯誤不報錯,但會導致分析結果錯誤。
- Engine 支持多用戶同時接入,但是不支持同一用戶并發調用同一個特性,如同一個特性被同一進程同一時間多次調用,則返回系統忙錯誤;不同進程調用同一特性,則同一時間只處理一個進程的業務,其他進程進入隊列排隊。
二、應用場景
- 雙指按壓文本彈出卡片:基于文本中所包含的實體內容,如名人、電影、電視劇等。通過雙指按壓,快速彈出實體對應的卡片介紹信息。讓用戶可以方便、快捷的獲取想知道的信息。
- 實體信息高亮:將相關的實體信息高亮,并設置快速操作入口。如將文本信息中的電話號碼高亮,用戶可以直接進行撥號。
三、API 說明
- 實體識別提供識別文本中具有特定意義實體的能力,包含電影、電視劇、綜藝、動漫、單曲、專輯、圖書、火車車次、航班號、球隊、人名、快遞單號、電話號碼、url、郵箱、聯賽、時間、地點(包含酒店、餐館、景點、學校、道路、省、市、縣、區、鎮等)、驗證碼。
① 主要接口
| void init(Context context, OnResultListener listener, boolean isLoadModel); | 初始化NLU服務。在調用NLU等功能接口前需要先調用此接口,在OnResultListener的onResult(T)方法中獲取到回調結果后,再調用NLU功能接口。開發者傳入listener參數作為回調,用于等待NLU功能接口的調用過程和結果 |
| ResponseResult getEntity(String requestData, int requestType); | 采用同步方式識別文本中具有特定意義的實體,包含電影、電視劇、綜藝、動漫、單曲、專輯、圖書、火車車次、航班號、球隊、人名、快遞單號、電話號碼、url、郵箱、聯賽、時間、地點(包含酒店、餐館、景點、學校、道路、省、市、縣、區、鎮等)、驗證碼 |
| ResponseResult getEntity(final String requestData, final int requestType, final OnResultListener listener); | 采用異步方式識別文本中具有特定意義的實體,包含電影、電視劇、綜藝、動漫、單曲、專輯、圖書、火車車次、航班號、球隊、人名、快遞單號、電話號碼、url、郵箱、聯賽、時間、地點(包含酒店、餐館、景點、學校、道路、省、市、縣、區、鎮等)、驗證碼 |
| void destroy(Context context); | 取消所有NLU任務,銷毀NLU引擎服務。調用此方法后,無法再使用NLU服務。如果需要重新使用NLU服務,需要重新調用init(Context, OnResultListener, boolean)}來初始化NLU服務 |
② 接口輸入值說明
- requestType 表示請求類型,通過 NluRequestType 類定義如下:
| static final int | REQUEST_TYPE_LOCAL = 0 本地請求 |
- requestData 的 json 格式如下:
| text | true | String | 待分析的文本,UTF-8編碼,限制500個字符以內 |
| 定義需要分析的實體,默認所有實體均會分析。 分析某個實體,傳實體鍵值,例如:只需要分析時間實體,傳“time”。可傳多個,表示分析多個實體,以半角逗號“,”分隔,例如:分析時間和地點,傳“time,location”。 取值范圍:name、time、location、phoneNum、email、url、movie、tv、anime、league、team、trainNo、flightNo、expressNo、idNo、verificationCode、app、carNo | |||
| callPkg | false | String | 調用者名稱 |
| callType | false | int | 調用者類型: 0:普通應用(默認) 1:快應用 |
| callVersion callState | false false | String int | 調用者版本號。 調用者狀態: -1:未知(默認) 0:前臺 1:后臺 |
③ 接口返回值說明
- 返回值 ResponseResult 為 JSONObject 字符串,體現實體識別的結果:
| code | true | int | 實體識別的結果碼。取值包括: 0:成功 1:系統正在初始化 2:參數錯誤 3:系統忙 4:系統異常 5:任務超時 6:其它錯誤 |
| message | true | String | 實體識別的結果描述 |
| entity | false | JSONObject | 實體分析結果 |
四、開發流程
- 在使用實體識別相關接口時,需要將實體識別的相關類添加到工程:
- 使用 NluClient 靜態類進行初始化,通過異步方式獲取服務的連接。
-
- context:應用上下文信息,應為 ohos.aafwk.ability.Ability 或 ohos.aafwk.ability.AbilitySlice 的實例或子類實例。
-
- listener:初始化結果的回調,可以傳 null。
-
- isLoadModel:是否加載模型,如果傳 true,則在初始化時加載模型;如果傳 false,則在初始化時不加載模型。
- 調用實體識別的接口,獲取分析結果。
-
- 采用同步方式進行實體識別:
-
- 采用異步方式進行實體識別:
- 銷毀 NLU 服務:
總結
以上是生活随笔為你收集整理的HarmonyOS之AI能力·实体识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HarmonyOS之AI能力·关键字提取
- 下一篇: HarmonyOS之AI能力·文字图像超