HarmonyOS学习路之开发篇—AI功能开发(IM类意图识别)

简介: IM类意图识别,是指利用机器学习技术,针对用户短信或聊天类APP等IM应用的文本消息进行内容分析,并识别出消息内容代表的用户意图。

IM类意图识别概述

基本概念

IM类意图识别,是指利用机器学习技术,针对用户短信或聊天类APP等IM应用的文本消息进行内容分析,并识别出消息内容代表的用户意图。


运作机制

基于语义分析,利用机器学习的相关技术识别并理解用户消息的意图,通过IM意图识别,可以衍生出各种智能的应用场景,使智能设备更聪明,更懂用户。


基于IM意图识别接口,可以对文本消息中包含的用户意图进行自动分析识别。


目前仅开放支持通知消息类的三个意图的智能识别(称为“意图模块”),包括:


还款提醒通知

还款成功通知

未接来电通知

约束与限制

当前只支持中文语境。

目前仅支持以下三个意图的智能识别:还款提醒通知、还款成功通知、未接来电通知。


IM类意图识别的输入文本限制在500个字符以内,字符数超出限制将返回参数错误,文本需要为UTF-8格式,格式错误不报错,但会导致分析结果错误。


Engine支持多用户同时接入,但是不支持同一用户并发调用同一个特性。如同一个特性被同一进程同一时间多次调用,则返回系统忙错误。不同进程调用同一特性,则同一时间只有一个进程业务在处理,其他进程进入队列排队。


IM类意图识别开发

场景介绍

生成智能卡片

应用于生成智能卡片,例如:生成未接来电通知卡片。当来电未被用户接听(呼叫超时未接通或被用户主动拒绝接通),电信运营商或服务提供商会向用户发送短信提醒。当用户终端设备接收到短信提醒,即可由IM意图识别特性分析出未接来电通知短信的意图,并可以分析出呼叫方电话号码及呼叫时间,生成智能卡片,方便用户查看。


开发下拉pad屏

应用于开发下拉pad屏。与生成智能卡片的场景类似,可识别用户消息文本的意图,在下拉pad屏生成并显示重要的信息,方便用户随时查看。


文本消息意图识别

主要针对用户短信或聊天类文本消息进行意图识别,目前仅开放支持了通知消息类的三个意图,分别为:还款提醒通知、还款成功通知、未接来电通知。


接口说明

主要接口


IM类意图识别提供了初始化、同步、异步、解绑四个接口,如表1所示。


表1 接口描述


image.png

image.png

接口输入值说明

  • isLoadModel:是否在初始化时加载模型。
  • requestType:请求类型,取值可以从ohos.ai.nlu.NluRequestType选择。目前只支持端侧(REQUEST_TYPE_LOCAL)一种请求类型。
  • requestData的JSON格式如下:
  • image.png
  • 接口返回值说明

返回值ResponseResult中responseResult为JSON字符串,体现文本分词的结果:

image.png

详细意图说明

  • 还款通知表示还款通知的意图分析时,“intentions”子参数描述见下表:
  • 表2 意图详情
  • image.png
  • 已还款通知

表示已经还款成功的通知,“intentions”子参数描述见下表:

  • image.png
  • 未接来电通知

表示未接来电的意图,“intentions”子参数描述见下表:

image.png

开发步骤

在使用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>(){
        @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);


相关文章
|
19天前
|
机器学习/深度学习 人工智能 PyTorch
面向AI Native应用的高效迁移学习策略
【8月更文第1天】随着人工智能技术的发展,越来越多的应用场景需要定制化的AI解决方案。然而,从零开始训练一个深度学习模型往往需要大量的标注数据和计算资源。迁移学习提供了一种有效的方法来解决这个问题,它利用预训练模型的知识,通过少量的数据就能达到很好的性能。本文将深入探讨面向AI Native应用的高效迁移学习策略,并通过实例展示如何针对具体场景进行模型微调。
143 6
面向AI Native应用的高效迁移学习策略
|
18天前
|
机器学习/深度学习 人工智能 算法
【解锁AI新纪元】深度剖析元学习meta-learning:超越监督学习的智慧飞跃,掌握学习之学习的奥秘!
【8月更文挑战第2天】【元学习meta-learning】通俗易懂讲解:解锁学习之学习的奥秘与监督学习之别
50 24
|
1天前
|
人工智能
如何用AI来提高英语学习效率?
【8月更文挑战第19天】如何用AI来提高英语学习效率?
|
5天前
|
人工智能 算法
AI 0基础学习,数学名词解析
AI 0基础学习,数学名词解析
8 2
|
17天前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络不再是黑魔法!Python带你一步步拆解,让AI学习看得见
【8月更文挑战第3天】神经网络,曾被视为难以触及的黑魔法,现已在Python的助力下变得平易近人。以TensorFlow或PyTorch为“魔法杖”,仅需几行Python代码即可构建强大的AI模型。从零开始,我们将教导AI识别手写数字,利用经典的MNIST数据集。通过数据加载、预处理至模型训练与评估,每个步骤都如精心编排的舞蹈般清晰可见。随着训练深入,AI逐渐学会辨认每个数字,其学习过程直观展现。这不仅揭示了神经网络的奥秘,更证明了任何人都能借助Python创造AI奇迹,共同探索未来的无限可能。
24 2
|
18天前
|
机器学习/深度学习 人工智能 TensorFlow
AI Native应用中利用联邦学习保障隐私的模型微调实践
【8月更文第2天】随着人工智能技术的发展,越来越多的应用程序开始采用AI原生(AI Native)设计思路,即从一开始就将AI作为核心功能来构建软件和服务。然而,在AI Native应用中,数据隐私和安全性是不容忽视的重要问题。联邦学习(Federated Learning, FL)作为一种新兴的技术框架,为解决这一难题提供了有力的支持。它允许在多个客户端上训练机器学习模型,而无需直接传输原始数据到中心服务器,从而保护了用户的隐私。
42 1
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
利用迁移学习加速AI模型训练
【7月更文第29天】迁移学习是一种强大的技术,允许我们利用已经训练好的模型在新的相关任务上进行快速学习。这种方法不仅可以显著减少训练时间和计算资源的需求,还能提高模型的准确率。本文将详细介绍如何利用迁移学习来加速AI模型的训练,并通过具体的案例研究来展示其在计算机视觉和自然语言处理领域的应用。
46 4
|
5天前
|
机器学习/深度学习 人工智能 算法
AI人工智能(ArtificialIntelligence,AI)、 机器学习(MachineLearning,ML)、 深度学习(DeepLearning,DL) 学习路径及推荐书籍
AI人工智能(ArtificialIntelligence,AI)、 机器学习(MachineLearning,ML)、 深度学习(DeepLearning,DL) 学习路径及推荐书籍
14 0
|
5天前
|
存储 机器学习/深度学习 人工智能
AI工业变革问题之EPAI软件平台的主要功能内容如何解决
AI工业变革问题之EPAI软件平台的主要功能内容如何解决
6 0
|
6天前
|
人工智能
生成式AI问题之定制化的增强学习定义如何解决
生成式AI问题之定制化的增强学习定义如何解决
13 0