赞
踩
IM类意图识别,是指利用机器学习技术,针对用户短信或聊天类APP等IM应用的文本消息进行内容分析,并识别出消息内容代表的用户意图。
基于语义分析,利用机器学习的相关技术识别并理解用户消息的意图,通过IM意图识别,可以衍生出各种智能的应用场景,使智能设备更聪明,更懂用户。
基于IM意图识别接口,可以对文本消息中包含的用户意图进行自动分析识别。
目前仅开放支持通知消息类的三个意图的智能识别(称为“意图模块”),包括:
主要接口
IM类意图识别提供了初始化、同步、异步、解绑四个接口,如表1所示。
接口名 | 功能描述 |
---|---|
void init(Context context, OnResultListener<Integer> listener, boolean isLoadModel) | 初始化接口,传入当前context对象和结果回调对象,决定是否在初始化时加载模型。 |
ResponseResult getChatIntention(String requestData, int requestType) | 同步接口,用于IM类场景下的用户意图分析。 |
ResponseResult getChatIntention(final String requestData, final int requestType, final OnResultListener<ResponseResult> listener) | 异步接口,用于IM类场景下的用户意图分析。 |
void destroy(Context context) | 解绑接口,释放当前上下文对象。 |
接口输入值说明
参数名 | 是否必选 | 类型 | 说明 |
---|---|---|---|
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 | 详细请参考表2。 |
message 错误信息 True String 错误信息描述。 intentions 意图列表 False JSONArray 详细请参考表2。
详细意图说明
在使用IM类意图识别API时,将实现IM类意图识别的相关的类添加至工程。
- import ohos.ai.nlu.ResponseResult; // 接口返回的结果类
- import ohos.ai.nlu.NluClient; // 接口客户端类
- import ohos.ai.nlu.NluRequestType; // 接口请求类
- import ohos.ai.nlu.OnResultListener; // 异步函数,执行成功的回调结果类
- import ohos.ai.nlu.util.NluError; // 调用接口返回的成功/错误码信息
复制
使用NluClient静态类进行初始化,通过异步方式获取服务的连接。
- NluClient.getInstance().init(context, new OnResultListener<Integer>(){
- @Override
- public void onResult(Integer result){
- // 初始化成功回调,在服务初始化成功调用该函数
- }
- }, true);
复制
确认第二步初始化接口调用成功后,调用获取IM类意图识别方法得到分析结果,调用实例。
同一个接口同时提供了同步和异步两种方法,开发者可根据自己需要进行选择。还款通知中的时间不应早于当前时间。
- String requestJson = "{text:'您个人信用卡07月账单¥198.00,还款日07月27日【XX银行】'}";
- ResponseResult responseResult = NluClient.getInstance().getChatIntention(requestJson, NluRequestType.REQUEST_TYPE_LOCAL);
- if (responseResult != null) {
- // 获取接口返回结果
- String result = responseResult.getResponseResult();
- }
复制
- String requestJson = "{text:'您个人信用卡07月账单¥198.00,还款日07月27日【XX银行】'}";
- // 调用接口
- NluClient.getInstance().getChatIntention(requestJson, NluRequestType.REQUEST_TYPE_LOCAL, new OnResultListener <ResponseResult> () {
- @Override
- public void onResult(ResponseResult respResult) {
- // 异步返回
- if (respResult != null && respResult.getCode() == NluError.SUCCESS_RESULT) {
- // 获取接口返回结果
- String result = respResult.getResponseResult();
- }
- }
- });
复制
解绑服务。
- /* 功能使用完毕,销毁上下文,释放资源。 */
- NluClient.getInstance().destroy(context);
最后,为了能让大家更好的去学习提升鸿蒙 (Harmony OS) 开发技术,小编连夜整理了一份30个G纯血版学习资料(含视频、电子书、学习文档等)以及一份在Github上持续爆火霸榜的《纯血版华为鸿蒙 (Harmony OS)开发手册》(共计890页),希望对大家有所帮助。
需要以上视频学习资料小伙伴
这份手册涵盖了当前鸿蒙 (Harmony OS) 开发技术必掌握的核心知识点
HarmonyOS 概念:
如何快速入门?
开发基础知识:
基于ArkTS 开发:
获取以上文中提到的这份纯血版鸿蒙 (Harmony OS) 开发资料的小伙伴
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。