一、基本概念

  • 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 类意图识别的相关的类添加至工程:
 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 静态类进行初始化,通过异步方式获取服务的连接。
    • context:应用上下文信息,应为 ohos.aafwk.ability.Ability 或 ohos.aafwk.ability.AbilitySlice 的实例或子类实例。
    • listener:初始化结果的回调,可以传 null。
    • isLoadModel:是否加载模型,如果传 true,则在初始化时加载模型;如果传 false,则在初始化时不加载模型。
 NluClient.getInstance().init(context, new OnResultListener<Integer>(){@Overridepublic void onResult(Integer result){// 初始化成功回调,在服务初始化成功调用该函数}}, true);
  • 确认 NluClient 静态类进行初始化接口调用成功后,调用获取 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> () {@Overridepublic void onResult(ResponseResult respResult) {// 异步返回if (respResult != null && respResult.getCode() == NluError.SUCCESS_RESULT) {// 获取接口返回结果String result = respResult.getResponseResult();}}});
  • 解绑服务:
 /* 功能使用完毕,销毁上下文,释放资源。 */NluClient.getInstance().destroy(context);

HarmonyOS之AI能力·IM类意图识别相关推荐

  1. HarmonyOS之AI能力·助手类意图识别

    一.简介 随着人机交互越来越普遍,设备需要理解用户下达的各种指令,方便用户的操作. 助手类意图识别能够利用机器学习技术,对用户发送给设备的文本消息进行语义分析和意图识别,进而衍生出各种智能的应用场景, ...

  2. HarmonyOS之AI能力·实体识别

    一.简介 实体识别能够从自然语言中提取出具有特定意义的实体,并在此基础上完成搜索等一系列相关操作及功能. 实体识别覆盖范围大,能够满足日常开发中对实体识别的需求,让应用体验更好.识别准确率高,能够准确 ...

  3. HarmonyOS之AI能力·通用文字识别技术

    一.通用文字识别技术 通用文字识别的核心技术是 OCR(Optical Character Recognition,光学字符识别). OCR 是一种通过拍照.扫描等光学输入方式,把各种票据.卡证.表格 ...

  4. HarmonyOS之AI能力·文档检测校正

    一.基本概念 文档校正提供了文档翻拍过程的辅助增强功能,包含两个子功能:文档检测和文档校验. 文档检测:能够自动识别图片中的文档,返回文档在原图中的位置信息.这里的文档泛指外形方正的事物,比如书本.相 ...

  5. HarmonyOS之AI能力·文字图像超分

    一.简介 文字图像超分辨率可以对包含文字内容的图像进行 9 倍放大(高宽各放大 3 倍),同时增强图像内文字的清晰度,称为"文字图像超分辨率",简称"文字图像超分&quo ...

  6. HarmonyOS之AI能力·图像超分辨率

    一.基本概念 针对图片分辨率不足的问题,传统的解决方案是使用双线性或双三次插值的方法来放大图像:而针对图片压缩噪声的问题,传统的解决方案则是通过各种算法实现平滑.去噪. 本 SDK 使用智能的方法,基 ...

  7. HarmonyOS之AI能力·语音识别技术

    一.基本概念 语音识别功能提供面向移动终端的语音识别能力.它基于华为智慧引擎(HUAWEI HiAI Engine)中的语音识别引擎,向开发者提供人工智能应用层 API.该技术可以将语音文件.实时语音 ...

  8. HarmonyOS之AI能力·词性标注

    一.简介 随着信息技术的发展,网络中的信息量成几何级增长逐步成为当今社会的主要特征.准确提取文本关键信息,是搜索引擎等领域的技术基础,而分词作为文本信息提取的第一步则尤为重要. 分词作为自然语言处理领 ...

  9. HarmonyOS之AI能力·分词

    一.基本概念 随着信息技术的发展,网络中的信息量成几何级增长逐步成为当今社会的主要特征.准确提取文本关键信息,是搜索引擎等领域的技术基础,而分词作为文本信息提取的第一步则尤为重要. 分词作为自然语言处 ...

最新文章

  1. 微软发布虚机管理SCVMM 2008 R2 RC版
  2. 程序员真香!IT 业 2020 年平均工资最高
  3. C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题
  4. [2778]小明的花费预算 (二分查找)SDUT
  5. 零基础学Python(第五章 运算符)
  6. 计算机辅助翻译的启示,翻译单位研究对计算机辅助翻译启示.PDF
  7. Linux中expect命令实现交互,修改VNCPASSWD
  8. UJAM Virtual Guitarist SILK for mac(尼龙弦原声吉他)
  9. Java的自动拆箱和装箱是Java语言的一颗语法糖
  10. R语言周氏检验(Chow test) 检验回归中结构不稳定性的虚拟变量的替代方案
  11. oracle读写mysql_Oracle读写磁盘经过的缓存
  12. ATmega128单片机](熔丝修改后无法烧录程序情况)
  13. 设计原则(单一职能原则,开闭原则,里氏替换原则,依赖倒置原则,接口分离原则,迪米特原则)
  14. pg_repack使用
  15. 第二证券|支持多子女购房、提高公积金贷款额度、发放限时补贴
  16. HDU - 5238(剩余定理)
  17. mechanize 是 pthon 的并且可编程的 浏览器插件,
  18. cad重新加载php命令,cad无限缩小的命令是什么
  19. 叶酸修饰靶向性紫杉醇 PGA-TAXOL/羟基靶向修饰透明质酸接枝姜黄素 OH-HA-CUR/羧基靶向修饰透明质酸接枝姜黄素 COOH-HA-CUR
  20. Some selectors are not allowed in component wxss, including tag name selectors, ID selectors,and...

热门文章

  1. FIND_IN_SET 精确查找
  2. JS如何设置获取盒模型对应的宽高
  3. chosen组件实现下拉框
  4. Android 自定义 View 中 onKeyDown监听 没反应
  5. 计算机教育日志,信息技术日志1
  6. vuex刷新页面数据丢失怎么解决_你是否真正了解Vuex
  7. python apache配置_Apache运行Python的配置
  8. Java黑皮书课后题第4章:*4.11(十进制转十六进制)编写程序,提示用户输入0~15之间的一个整数,显示其对应的十六进制数。对于不正确的输入数字,提示非法输入
  9. php 静态扩展,thinkphp5行为扩展实现html静态缓存设置
  10. 防沉迷人脸识别可以扫照片吗_人脸识别的智能门锁到底安不安全?用照片可以打开是真的吗?...