HarmonyOS之AI能力·IM类意图识别
生活随笔
收集整理的這篇文章主要介紹了
HarmonyOS之AI能力·IM类意图识别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、基本概念
- IM 類意圖識別,是指利用機器學習技術,針對用戶短信或聊天類 APP 等 IM 應用的文本消息進行內容分析,并識別出消息內容代表的用戶意圖。
- 基于語義分析,利用機器學習的相關技術識別并理解用戶消息的意圖,通過IM意圖識別,可以衍生出各種智能的應用場景,使智能設備更聰明,更懂用戶。
- 基于 IM 意圖識別接口,可以對文本消息中包含的用戶意圖進行自動分析識別。
- 目前僅開放支持通知消息類的三個意圖的智能識別(稱為“意圖模塊”),包括:
-
- 還款提醒通知
-
- 還款成功通知
-
- 未接來電通知
- IM 類意圖識別當前只支持中文語境。
- IM 類意圖識別的輸入文本限制在 500 個字符以內,字符數超出限制將返回參數錯誤,文本需要為 UTF-8 格式,格式錯誤不報錯,但會導致分析結果錯誤。
- Engine 支持多用戶同時接入,但是不支持同一用戶并發調用同一個特性。
-
- 如同一個特性被同一進程同一時間多次調用,則返回系統忙錯誤。
-
- 不同進程調用同一特性,則同一時間只有一個進程業務在處理,其他進程進入隊列排隊。
二、應用場景
① 生成智能卡片
- 應用于生成智能卡片,例如:生成未接來電通知卡片。當來電未被用戶接聽(呼叫超時未接通或被用戶主動拒絕接通),電信運營商或服務提供商會向用戶發送短信提醒。
- 當用戶終端設備接收到短信提醒,即可由 IM 意圖識別特性分析出未接來電通知短信的意圖,并可以分析出呼叫方電話號碼及呼叫時間,生成智能卡片,方便用戶查看。
② 開發下拉 pad 屏
- 應用于開發下拉 pad 屏。
- 與生成智能卡片的場景類似,可識別用戶消息文本的意圖,在下拉 pad 屏生成并顯示重要的信息,方便用戶隨時查看。
③ 文本消息意圖識別
- 主要針對用戶短信或聊天類文本消息進行意圖識別。
- 目前僅開放支持了通知消息類的三個意圖,分別為:還款提醒通知、還款成功通知、未接來電通知。
三、API 接口說明
① 主要接口
- IM 類意圖識別提供了初始化、同步、異步、解綁四個接口。
- IM 類意圖識別接口描述如下:
| void init(Context context, OnResultListener listener, boolean isLoadModel) | 初始化接口,傳入當前context對象和結果回調對象,決定是否在初始化時加載模型 |
| ResponseResult getChatIntention(String requestData, int requestType) | 同步接口,用于IM類場景下的用戶意圖分析 |
| ResponseResult getChatIntention(final String requestData, final int requestType, final OnResultListener listener) | 異步接口,用于IM類場景下的用戶意圖分析 |
| void destroy(Context context) | 解綁接口,釋放當前上下文對象 |
② 接口輸入值說明
- isLoadModel:是否在初始化時加載模型。
- requestType:請求類型,取值可以從 ohos.ai.nlu.NluRequestType 選擇,目前只支持端側(REQUEST_TYPE_LOCAL)一種請求類型。
- requestData 的 json 格式如下:
| text | true | String | 待分析的文本,UTF-8編碼,不超過500個字符,超過300個字符的只分析通知類意圖 |
| timestamp | false | long | 該文本的發送時間或接收時間,格式為時間戳,表示距離格林威治時間1970.1.1的毫秒數。默認為當前系統時間 |
| isSender | false | int | 用來標示發送或接收,0表示接收,1表示發送 |
| category | false | String | 需要分析的意圖類別,默認分析所有類,多個用半角逗號“,”隔開,如需要分析出行類和通知類,傳“notice” |
| module | false | String | 用來指定具體分析哪些意圖模塊,默認分析全部意圖模塊。 如指定分析特定意圖模塊,則多個意圖模塊間用半角逗號“,”隔開。 例如同時分析還款提醒通知和還款成功通知意圖,傳“repayNotice,repayedNotice” |
| callPkg | false | String | 調用者名稱 |
| callType | false | int | 調用者類型: 0:普通應用(默認) 1:快應用 |
| callVersion | false | String | 調用者版本號 |
| callState | false | int | 調用者狀態: -1:未知(默認) 0:前臺 1:后臺 |
③ 接口返回值說明
- 返回值 ResponseResult 中 responseResult 為 Json 字符串,體現文本分詞的結果:
| code | 結果碼 | True | Int | 實體識別的結果碼。取值包括: 0:成功 1:系統正在初始化 2:參數錯誤 3:系統忙 4:系統異常 5:任務超時 6:其它錯誤 |
| message | 錯誤信息 | True | String | 錯誤信息描述 |
| intentions | 意圖列表 | False | JSONArray | 詳細意圖說明 |
④ 詳細意圖說明
- 還款通知:表示還款通知的意圖分析時,“intentions”子參數描述見下表:
| name | true | String | 意圖名,值為“repayNotice” |
| attributes | false | JSONArray | 意圖屬性,用數組表示,數組里的類型為JSONObject |
| +deadline | true | JSONObject | 還款截止時間,結構與實體“time”一致 |
| +moneyInfo | false | JSONArray | 還款額信息,可能存在多幣種,以數組形式存在,數組里的類型為JSONObject |
| ++amount | true | String | 還款總額 |
| ++miniAmount | false | String | 最低還款金額 |
| ++unit | true | int | 單位,0(人民幣元)、1(美元) |
| +bank | false | String | 還款銀行 |
| +cardSuffix | false | String | 銀行卡尾號 |
| +bankCode | false | String | 銀行簡稱代碼 |
| +phoneNumber | false | String | 客服電話 |
| +cardType | true | int | 卡類型,其取值列表如下: 0:信用卡 1:借記卡 |
| +accountType | true | int | 賬戶類型,其取值列表如下: 0:普通個人賬戶(默認) 1:車貸賬戶 |
- 已還款通知:表示已經還款成功的通知,“intentions”子參數描述見下表:
| name | true | String | 意圖名,值為“repayedNotice” |
| attributes | false | JSONArray | 意圖屬性,用數組表示,數組里的類型為JSONObject |
| +time | false | JSONObject | 還款的時間,結構與實體“time”一致 |
| +moneyInfo | false | JSONArray | 還款額信息,可能存在多幣種,以數組形式存在,數組里的類型為JSONObject |
| ++amount | true | String | 已還款額 |
| ++unit | true | int | 單位,0(人民幣元)、1(美元) |
| +bank | false | String | 還款銀行,與“銀行卡尾號”二者至少存在一個 |
| +cardSuffix | false | String | 銀行卡尾號,與“還款銀行”二者至少存在一個 |
| +bankCode | false | String | 銀行簡稱代碼(對照代碼表) |
| +isPayOff | false | int | 是否還清,只依據文本中出現的描述,“1”表示還清,否則無該字段 |
| +arrears | false | JSONArray | 還欠款信息,可能存在多幣種,以數組形式存在,數組里的類型為JSONObject |
| ++amount | true | String | 還欠款額 |
| ++unit | true | int | 單位,0(人民幣元)、1(美元) |
| +cardType | true | int | 卡類型,其取值列表如下: 0:信用卡 1:借記卡 |
| +accountType | true | int | 賬戶類型,其取值列表如下: 0:普通個人賬戶(默認) 1:車貸賬戶 |
| +deadline | false | JSONObject | 截止時間,結構與實體“time”一致 |
- 未接來電通知:表示未接來電的意圖,“intentions”子參數描述見下表:
| attributes | true | JSONArray | 意圖屬性,用數組表示,數組里的類型為JSONObject |
| +number | true | String | 未接來電號碼 |
| +callTime | true | JSONObject | 未接來電時間,結構與實體“time”一致 |
| +name | false | String | 未接來電號碼所屬的人名 |
四、開發流程
- 在使用 IM 類意圖識別 API 時,將實現 IM 類意圖識別的相關的類添加至工程:
- 使用 NluClient 靜態類進行初始化,通過異步方式獲取服務的連接。
-
- context:應用上下文信息,應為 ohos.aafwk.ability.Ability 或 ohos.aafwk.ability.AbilitySlice 的實例或子類實例。
-
- listener:初始化結果的回調,可以傳 null。
-
- isLoadModel:是否加載模型,如果傳 true,則在初始化時加載模型;如果傳 false,則在初始化時不加載模型。
- 確認 NluClient 靜態類進行初始化接口調用成功后,調用獲取 IM 類意圖識別方法得到分析結果,調用實例。同一個接口同時提供了同步和異步兩種方法,開發者可根據自己需要進行選擇,還款通知中的時間不應早于當前時間。
-
- 同步接口:
-
- 異步接口:
- 解綁服務:
總結
以上是生活随笔為你收集整理的HarmonyOS之AI能力·IM类意图识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HarmonyOS之AI能力·分词
- 下一篇: HarmonyOS之AI能力·词性标注