HarmonyOS学习路之开发篇—AI功能开发(实体识别)

简介: 实体识别能够从自然语言中提取出具有特定意义的实体,并在此基础上完成搜索等一系列相关操作及功能。

实体识别概述

实体识别能够从自然语言中提取出具有特定意义的实体,并在此基础上完成搜索等一系列相关操作及功能。


实体识别覆盖范围大,能够满足日常开发中对实体识别的需求,让应用体验更好。识别准确率高,能够准确地提取到实体信息,对应用基于信息的后续服务形成关键影响。


约束限制

当前只支持中文语境。

实体识别文本限制在500个字符以内,超过字符数限制将返回参数错误;文本需要为UTF-8格式,格式错误不报错,但会导致分析结果错误。

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

实体识别开发

场景介绍

双指按压文本弹出卡片

基于文本中所包含的实体内容,如名人、电影、电视剧等。通过双指按压,快速弹出实体对应的卡片介绍信息。让用户可以方便、快捷的获取想知道的信息。


实体信息高亮

将相关的实体信息高亮,并设置快速操作入口。如将文本信息中的电话号码高亮,用户可以直接进行拨号。


接口说明

实体识别提供识别文本中具有特定意义实体的能力,包含电影、电视剧、综艺、动漫、单曲、专辑、图书、火车车次、航班号、球队、人名、快递单号、电话号码、url、邮箱、联赛、时间、地点(包含酒店、餐馆、景点、学校、道路、省、市、县、区、镇等)、验证码。


主要接口


image.png

image.png接口输入值说明

requestType表示请求类型,通过NluRequestType类定义如下:

枚举的类型

枚举的取值

static final int

REQUEST_TYPE_LOCAL = 0 本地请求

requestData的JSON格式如下:

image.png

接口返回值说明


返回值ResponseResult为JSONObject字符串,体现实体识别的结果:

image.png



开发步骤

在使用实体识别相关接口时,需要将实体识别的相关类添加到工程。


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);

调用实体识别的接口,获取分析结果。


采用同步方式进行实体识别:

String requestData= "{text:'我要看电影魔兽',module:'movie'}"; // module为可选参数,如果不设置该参数,则默认分析所有实体
ResponseResult respResult = NluClient.getInstance().getEntity(requestData, NluRequestType.REQUEST_TYPE_LOCAL);
if (null != respResult && NluError.SUCCESS_RESULT == respResult.getCode()) {
    // 获取接口返回结果,参考接口文档返回使用
    String result = respResult.getResponseResult();
}

采用异步方式进行实体识别:

// 待分析文本
String requestData= "{text:'我要看电影魔兽',module:'movie'}"; // module为可选参数,如果不设置该参数,则默认分析所有实体
// 调用接口
NluClient.getInstance().getEntity(requestData, NluRequestType.REQUEST_TYPE_LOCAL, new OnResultListener < ResponseResult > () {
    @Override
    public void onResult(ResponseResult respResult) {
        // 异步返回
        if (null != respResult && NluError.SUCCESS_RESULT == respResult.getCode()) {
            // 获取接口返回结果,参考接口文档返回使用
            String result = respResult.getResponseResult();
        }
    }
});

销毁NLU服务。

NluClient.getInstance().destroy();


相关文章
|
1天前
|
机器学习/深度学习 人工智能 算法
【机器学习】探究Q-Learning通过学习最优策略来解决AI序列决策问题
【机器学习】探究Q-Learning通过学习最优策略来解决AI序列决策问题
|
1天前
|
机器学习/深度学习 人工智能 监控
构建未来:AI在个性化学习路径设计中的应用
【4月更文挑战第29天】 随着人工智能(AI)的飞速发展,教育领域正经历一场由数据驱动的变革。本文聚焦于AI技术在个性化学习路径设计中的应用,探讨其如何通过精准分析学习者的行为和表现来优化教学策略和内容。我们展示了利用机器学习模型来预测学习成果、识别学习障碍以及提供即时反馈的潜力。文章还讨论了实施个性化学习所面临的挑战,包括数据隐私保护和技术整合问题,并提出了相应的解决策略。
|
2天前
|
机器学习/深度学习 人工智能 搜索推荐
构建未来:基于AI的自适应学习系统
【4月更文挑战第28天】 随着人工智能技术的不断进步,其在教育领域的应用也日益广泛。本文将探讨如何利用AI技术构建一个自适应学习系统,以提供更加个性化的学习体验。我们将讨论AI在教育中的应用,包括智能教学系统的设计、学习内容的个性化推荐以及学习进度的自动调整等方面。此外,我们还将探讨如何通过数据分析来优化学习过程,以及如何保护学习者的隐私。
7 0
|
4天前
|
机器学习/深度学习 人工智能 算法
AI大模型学习理论基础
本文探讨了AI大模型学习的理论基础,包括深度学习(模拟神经元工作原理,通过多层非线性变换提取特征)、神经网络结构(如前馈、循环和卷积网络)、训练方法(监督、无监督、强化学习)、优化算法(如SGD及其变种)、正则化(L1、L2和dropout防止过拟合)以及迁移学习(利用预训练模型加速新任务学习)。这些理论基础推动了AI大模型在复杂任务中的应用和人工智能的发展。
|
7天前
|
人工智能 Python
【AI大模型应用开发】【LangChain系列】加速学习LangChain效率:源码环境安装 + 断点调试
【AI大模型应用开发】【LangChain系列】加速学习LangChain效率:源码环境安装 + 断点调试
20 0
|
7天前
|
数据采集 存储 人工智能
【AI大模型应用开发】【LangChain系列】实战案例2:通过URL加载网页内容 - LangChain对爬虫功能的封装
【AI大模型应用开发】【LangChain系列】实战案例2:通过URL加载网页内容 - LangChain对爬虫功能的封装
17 0
|
7天前
|
存储 人工智能 数据库
【AI Agent系列】【MetaGPT多智能体学习】8. MetaGPT多智能体进阶练习 - 使用MetaGPT重构BabyAGI
【AI Agent系列】【MetaGPT多智能体学习】8. MetaGPT多智能体进阶练习 - 使用MetaGPT重构BabyAGI
12 0
|
7天前
|
存储 人工智能 API
【AI Agent系列】【MetaGPT多智能体学习】7. 剖析BabyAGI:原生多智能体案例一探究竟(附简化版可运行代码)
【AI Agent系列】【MetaGPT多智能体学习】7. 剖析BabyAGI:原生多智能体案例一探究竟(附简化版可运行代码)
29 0
|
7天前
|
人工智能 决策智能
【AI Agent系列】【MetaGPT多智能体学习】6. 多智能体实战 - 基于MetaGPT实现游戏【你说我猜】(附完整代码)
【AI Agent系列】【MetaGPT多智能体学习】6. 多智能体实战 - 基于MetaGPT实现游戏【你说我猜】(附完整代码)
29 0
|
7天前
|
人工智能 前端开发 决策智能
【AI Agent系列】【MetaGPT多智能体学习】5. 多智能体案例拆解 - 基于MetaGPT的智能体辩论(附完整代码)
【AI Agent系列】【MetaGPT多智能体学习】5. 多智能体案例拆解 - 基于MetaGPT的智能体辩论(附完整代码)
19 0