HarmonyOS之AI能力·实体识别
一、简介
- 实体识别能够从自然语言中提取出具有特定意义的实体,并在此基础上完成搜索等一系列相关操作及功能。
- 实体识别覆盖范围大,能够满足日常开发中对实体识别的需求,让应用体验更好。识别准确率高,能够准确地提取到实体信息,对应用基于信息的后续服务形成关键影响。
- 实体识别当前只支持中文语境。
- 实体识别文本限制在 500 个字符以内,超过字符数限制将返回参数错误;文本需要为 UTF-8 格式,格式错误不报错,但会导致分析结果错误。
- Engine 支持多用户同时接入,但是不支持同一用户并发调用同一个特性,如同一个特性被同一进程同一时间多次调用,则返回系统忙错误;不同进程调用同一特性,则同一时间只处理一个进程的业务,其他进程进入队列排队。
二、应用场景
- 双指按压文本弹出卡片:基于文本中所包含的实体内容,如名人、电影、电视剧等。通过双指按压,快速弹出实体对应的卡片介绍信息。让用户可以方便、快捷的获取想知道的信息。
- 实体信息高亮:将相关的实体信息高亮,并设置快速操作入口。如将文本信息中的电话号码高亮,用户可以直接进行拨号。
三、API 说明
- 实体识别提供识别文本中具有特定意义实体的能力,包含电影、电视剧、综艺、动漫、单曲、专辑、图书、火车车次、航班号、球队、人名、快递单号、电话号码、url、邮箱、联赛、时间、地点(包含酒店、餐馆、景点、学校、道路、省、市、县、区、镇等)、验证码。
① 主要接口
接口名 | 描述 |
---|---|
void init(Context context, OnResultListener listener, boolean isLoadModel); | 初始化NLU服务。在调用NLU等功能接口前需要先调用此接口,在OnResultListener的onResult(T)方法中获取到回调结果后,再调用NLU功能接口。开发者传入listener参数作为回调,用于等待NLU功能接口的调用过程和结果 |
ResponseResult getEntity(String requestData, int requestType); | 采用同步方式识别文本中具有特定意义的实体,包含电影、电视剧、综艺、动漫、单曲、专辑、图书、火车车次、航班号、球队、人名、快递单号、电话号码、url、邮箱、联赛、时间、地点(包含酒店、餐馆、景点、学校、道路、省、市、县、区、镇等)、验证码 |
ResponseResult getEntity(final String requestData, final int requestType, final OnResultListener listener); | 采用异步方式识别文本中具有特定意义的实体,包含电影、电视剧、综艺、动漫、单曲、专辑、图书、火车车次、航班号、球队、人名、快递单号、电话号码、url、邮箱、联赛、时间、地点(包含酒店、餐馆、景点、学校、道路、省、市、县、区、镇等)、验证码 |
void destroy(Context context); | 取消所有NLU任务,销毁NLU引擎服务。调用此方法后,无法再使用NLU服务。如果需要重新使用NLU服务,需要重新调用init(Context, OnResultListener, boolean)}来初始化NLU服务 |
② 接口输入值说明
- requestType 表示请求类型,通过 NluRequestType 类定义如下:
枚举的类型 | 枚举的取值 |
---|---|
static final int | REQUEST_TYPE_LOCAL = 0 本地请求 |
- requestData 的 json 格式如下:
参数名 | 是否必选 | 类型 | 说明 |
---|---|---|---|
text | true | String | 待分析的文本,UTF-8编码,限制500个字符以内 |
定义需要分析的实体,默认所有实体均会分析。 分析某个实体,传实体键值,例如:只需要分析时间实体,传“time”。可传多个,表示分析多个实体,以半角逗号“,”分隔,例如:分析时间和地点,传“time,location”。 取值范围:name、time、location、phoneNum、email、url、movie、tv、anime、league、team、trainNo、flightNo、expressNo、idNo、verificationCode、app、carNo |
|||
callPkg | false | String | 调用者名称 |
callType | false | int |
调用者类型: 0:普通应用(默认) 1:快应用 |
callVersion callState |
false false |
String int |
调用者版本号。 调用者状态: -1:未知(默认) 0:前台 1:后台 |
③ 接口返回值说明
- 返回值 ResponseResult 为 JSONObject 字符串,体现实体识别的结果:
参数名 | 是否必选 | 类型 | 说明 |
---|---|---|---|
code | true | int |
实体识别的结果码。取值包括: 0:成功 1:系统正在初始化 2:参数错误 3:系统忙 4:系统异常 5:任务超时 6:其它错误 |
message | true | String | 实体识别的结果描述 |
entity | false | JSONObject | 实体分析结果 |
四、开发流程
- 在使用实体识别相关接口时,需要将实体识别的相关类添加到工程:
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);
- 调用实体识别的接口,获取分析结果。
- 采用同步方式进行实体识别:
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 > () {@Overridepublic void onResult(ResponseResult respResult) {// 异步返回if (null != respResult && NluError.SUCCESS_RESULT == respResult.getCode()) {// 获取接口返回结果,参考接口文档返回使用String result = respResult.getResponseResult();}}});
- 销毁 NLU 服务:
NluClient.getInstance().destroy();
HarmonyOS之AI能力·实体识别相关推荐
- HarmonyOS之AI能力·IM类意图识别
一.基本概念 IM 类意图识别,是指利用机器学习技术,针对用户短信或聊天类 APP 等 IM 应用的文本消息进行内容分析,并识别出消息内容代表的用户意图. 基于语义分析,利用机器学习的相关技术识别并理 ...
- HarmonyOS之AI能力·通用文字识别技术
一.通用文字识别技术 通用文字识别的核心技术是 OCR(Optical Character Recognition,光学字符识别). OCR 是一种通过拍照.扫描等光学输入方式,把各种票据.卡证.表格 ...
- HarmonyOS之AI能力·助手类意图识别
一.简介 随着人机交互越来越普遍,设备需要理解用户下达的各种指令,方便用户的操作. 助手类意图识别能够利用机器学习技术,对用户发送给设备的文本消息进行语义分析和意图识别,进而衍生出各种智能的应用场景, ...
- HarmonyOS之AI能力·词性标注
一.简介 随着信息技术的发展,网络中的信息量成几何级增长逐步成为当今社会的主要特征.准确提取文本关键信息,是搜索引擎等领域的技术基础,而分词作为文本信息提取的第一步则尤为重要. 分词作为自然语言处理领 ...
- HarmonyOS之AI能力·分词
一.基本概念 随着信息技术的发展,网络中的信息量成几何级增长逐步成为当今社会的主要特征.准确提取文本关键信息,是搜索引擎等领域的技术基础,而分词作为文本信息提取的第一步则尤为重要. 分词作为自然语言处 ...
- HarmonyOS之AI能力·文档检测校正
一.基本概念 文档校正提供了文档翻拍过程的辅助增强功能,包含两个子功能:文档检测和文档校验. 文档检测:能够自动识别图片中的文档,返回文档在原图中的位置信息.这里的文档泛指外形方正的事物,比如书本.相 ...
- HarmonyOS之AI能力·文字图像超分
一.简介 文字图像超分辨率可以对包含文字内容的图像进行 9 倍放大(高宽各放大 3 倍),同时增强图像内文字的清晰度,称为"文字图像超分辨率",简称"文字图像超分&quo ...
- HarmonyOS之AI能力·图像超分辨率
一.基本概念 针对图片分辨率不足的问题,传统的解决方案是使用双线性或双三次插值的方法来放大图像:而针对图片压缩噪声的问题,传统的解决方案则是通过各种算法实现平滑.去噪. 本 SDK 使用智能的方法,基 ...
- HarmonyOS之AI能力·语音识别技术
一.基本概念 语音识别功能提供面向移动终端的语音识别能力.它基于华为智慧引擎(HUAWEI HiAI Engine)中的语音识别引擎,向开发者提供人工智能应用层 API.该技术可以将语音文件.实时语音 ...
最新文章
- 入门级Mat (java版)
- 研究院正式启动“智源学者计划”,公布候选人名单,并发布首个联合实验室...
- python发送消息到微信_通过python登录微信发送消息
- mysql实战17 | 如何正确地显示随机消息?
- 华三交换机mode是什么意思_交换机中相关术语代表什么意思,有必要弄清楚,赶紧收藏...
- nextcloud+nginx+mysql,Ubuntu搭建Nginx-Nextcloud环境
- Java基础篇:如何使用instanceof
- python中string库_Python——string库
- linux透明桥,linux透明防墙(网桥模式).doc
- html版本绩拼音怎么写,绩这个字怎么读、绩怎么念、绩怎么拼音、绩怎么组词...
- 基于压缩传感的脉冲GPR成像技术研究(硕士学位论文初稿20120104)
- 学习WPF之解决方案和项目结构
- 分享如何开发南非市场
- 你所不知道的OneNote骚操作 | 告别枯燥 OneNote让数学教学更有趣
- angularjs学习总结 详细教程
- XBox360自制系统的更新(Update)
- 增加ATMEGA328 实验电路板对外引脚
- JDBCUtils工具库
- MongoDb数组操作 - unwind解包、group分组统计、sort排序
- GPIO实验之c语言
热门文章
- linux安装mysql的分支mariadb
- slz-JDK1.8的环境变量配置
- java service wrapper日志参数设置及优化
- 20169207《Linux内核原理与分析》第五周作业
- [svc]后台运行程序screen or nohup
- [MySql] MySQL的点点滴滴
- 趣味编程:C#中Specification模式的实现(参考答案 - 下)
- tomcat服务器文件被清空,SpringBoot内置Tomcat缓存文件目录被意外删除导致异常
- linux+不同分区mv,mv操作深入浅出
- matlab都有什么接口,介绍MATLAB与C++的几种接口方式