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


目录
打赏
0
0
0
0
2
分享
相关文章
谷歌开源多智能体开发框架 Agent Development Kit:百行代码构建复杂AI代理,覆盖整个开发周期!
谷歌开源的Agent Development Kit(ADK)是首个代码优先的Python工具包,通过多智能体架构和灵活编排系统,支持开发者在百行代码内构建复杂AI代理,提供预置工具库与动态工作流定义能力。
96 3
谷歌开源多智能体开发框架 Agent Development Kit:百行代码构建复杂AI代理,覆盖整个开发周期!
37.1K star!AI模型全能工具箱,这个开源项目让智能体开发更简单!
"Awesome MCP Servers 是当前最全面的模型上下文协议服务器集合,为AI开发者提供开箱即用的工具链支持。通过标准化协议实现AI模型与各类资源的无缝对接,堪称智能体开发的瑞士军刀!"
AI 时代,为什么编程能力≠ 开发门槛
在 2.0 阶段,我们目标是实现面向任务的协同编码模式,人的主要职责转变为任务的下发、干预以及最后结果的审查。在这个过程中,人的实际工作量开始减轻,AI 工作的占比显著提升。目前的 2.0 版本是我们最近上线的。
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
28 0
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
241 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
准备好鸿蒙开发环境后,接下来就需要创建鸿蒙项目,掌握项目的创建过程以及配置。项目创建好后,需要把项目运行在模拟器上,鸿蒙的模拟和安卓模拟器有些不同,鸿蒙提供远程模拟器和本地模拟器,通过登录华为账号登录在线模拟器,使用DevEco Studio可将项目部署到远程模拟器中。
1371 1
鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
413 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
275 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)
HarmonyOS(鸿蒙)开发一文入门
HarmonyOS(鸿蒙)开发一文入门
210 0
HarmonyOS(鸿蒙)开发一文入门
鸿蒙开发:使用Rect绘制矩形
几何矩形,在实际的开发中,有多种的实现方式,并非一定需要Rect组件,但是,如果有需要用到矩形的场景,建议还是使用Rect组件,因为Rect组件自身携带了很多样式属性,可以满足我们日常的不同的需求。
鸿蒙开发:使用Rect绘制矩形
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等