HarmonyOS学习路之开发篇—AI功能开发(关键字提取)

简介: 在日常生活中充满了各种各样的信息,这些信息千变万化。文本语言作为信息传递的一种载体,同样面临有用信息和无用信息糅杂在一起的问题。关键字提取帮助用户在众多文本信息中快速提取出关键信息和核心内容,节省时间提高效率。

关键字提取概述

在日常生活中充满了各种各样的信息,这些信息千变万化。文本语言作为信息传递的一种载体,同样面临有用信息和无用信息糅杂在一起的问题。关键字提取帮助用户在众多文本信息中快速提取出关键信息和核心内容,节省时间提高效率。


运作机制

关键字提取API提供了一个提取关键字的接口,通过该API可以在大量信息中提取出文本想要表达的核心内容,可以是具有特定意义的实体,如:人名,地点,电影等。也可以是一些基础但是在文本中很关键的词汇。通过该API可以对提取的关键字按照在文本中所占权重由高到低排序。排序越靠前,权重越高,对文本的核心内容的提取越准确。


约束与限制

当前只支持中文语境。

关键字提取标题文本限制在100个字符以内,正文文本限制在5000个字符以内,关键词提取个数小于等于20。文本为UTF-8格式,格式错误不会报错,但分析结果会不正确。

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

关键字提取开发

场景介绍

游记摘要

本API可以从用户编辑的游记长文本中提取出能反映其核心思想的关键词汇,关键词按关键到相对非关键的权重顺序输出,帮助用户快速从长文本中提取出关键信息,快速给游记文章关键信息选择对应的标签上传。


新闻标签

用户在浏览文章时,对感兴趣的想做收藏,可以使用本API,提取出关键信息,生成对应的标签。用户下次想继续浏览收藏的文章时,不用打开文章,便可通过生成的标签快速了解到文章的核心内容。


接口说明

可用于从新闻和邮件里提取出关键字,便于用户快速获取新闻和邮件的主题。关键字可以为有意义的实体,比如,人名、电影,也可以为非实体的关键词汇,如,上课、考研。


主要接口


表1 关键词提取主要接口


image.png

image.png

接口输入值说明

requestData的JSON格式如下:

image.pngrequestType表示请求类型,取值可以从ohos.ai.nlu.NluRequestType选择。

类型

说明

static final int

REQUEST_TYPE_LOCAL=0,本地请求。

接口返回值说明


ResponseResult中responseResult为JSON字符串,体现关键字提取的结果:


image.png

参考示例如下:

{
    "code":0,
    "message":"成功",
    "keywords":[
        "上课",
        "一起"
    ]
}

开发步骤

在使用关键字提取API时,将实现关键字提取的相关的类添加至工程。


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= "{number:2,body:'今天我们一起去上课吧',title:'一起去上课'}";
ResponseResult respResult = NluClient.getInstance().getKeywords(requestData, NluRequestType.REQUEST_TYPE_LOCAL);
if (null != respResult)
{
// 获取接口返回结果,参考接口文档返回使用
String result = respResult.getResponseResult();
}

title为可选参数 ,不填的时候只分析正文body。


异步

// 待分析文本
String requestData= "{number:2,body:'今天我们一起去上课吧',title:'一起去上课'}";
// 调用接口
NluClient.getInstance().getKeywords(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();
        }
    }
});


使用结束调用destroy()方法释放进程资源,如果持续使用建议在进程结束时释放,释放后需要重复第二步才能再次使用。


相关文章
|
4天前
|
Android开发
鸿蒙开发:自定义一个简单的标题栏
本身就是一个很简单的标题栏组件,没有什么过多的技术含量,有一点需要注意,当使用沉浸式的时候,注意标题栏的位置,需要避让状态栏。
鸿蒙开发:自定义一个简单的标题栏
|
4天前
|
API
鸿蒙开发:切换至基于rcp的网络请求
本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。
鸿蒙开发:切换至基于rcp的网络请求
|
10天前
|
监控 开发者
鸿蒙5.0版开发:使用HiLog打印日志(ArkTS)
在HarmonyOS 5.0中,HiLog是系统提供的日志系统,支持DEBUG、INFO、WARN、ERROR、FATAL五种日志级别。本文介绍如何在ArkTS中使用HiLog打印日志,并提供示例代码。通过合理使用HiLog,开发者可以更好地调试和监控应用。
49 16
|
10天前
|
监控 UED 开发者
鸿蒙next版开发:订阅应用事件(ArkTS)
在HarmonyOS 5.0中,ArkTS引入了强大的应用事件订阅机制,允许开发者订阅和处理系统或应用级别的事件,这对于监控应用行为、优化用户体验和进行性能分析至关重要。本文详细介绍了如何在ArkTS中订阅应用事件,并提供了示例代码,包括导入模块、创建观察者、设置事件参数等步骤。通过这些方法,开发者可以更智能地管理和响应应用事件。
54 11
|
9天前
|
UED
鸿蒙next版开发:相机开发-适配不同折叠状态的摄像头变更(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了强大的相机开发能力,特别是针对折叠屏设备的摄像头适配。本文详细介绍了如何在ArkTS中检测和适配不同折叠状态下的摄像头变更,确保相机应用在不同设备状态下的稳定性和用户体验。通过代码示例展示了具体的实现步骤。
35 8
|
9天前
|
API 内存技术
鸿蒙next版开发:相机开发-拍照(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了一套完整的API来管理相机功能,特别是拍照功能。本文详细介绍如何在ArkTS中实现拍照功能,包括导入接口、创建会话、配置会话、触发拍照及监听拍照输出流状态,并提供代码示例进行详细解读。通过本文,你将掌握如何在HarmonyOS 5.0中使用ArkTS实现高效的拍照功能。
29 7
|
9天前
|
监控 开发者
鸿蒙next版开发:使用HiDebug获取调试信息(ArkTS)
在HarmonyOS 5.0中,HiDebug是一个强大的应用调试工具,可帮助开发者获取系统的CPU使用率、内存信息等关键性能数据。本文详细介绍了如何在ArkTS中使用HiDebug,并提供了示例代码,帮助开发者进行性能分析和问题诊断。
27 7
|
10天前
|
开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(文本通用)
在HarmonyOS 5.0中,ArkTS提供了丰富的文本通用属性,如textAlign、maxLines、textOverflow、fontSize、fontColor、fontStyle、fontWeight、fontFamily、lineHeight、letterSpacing和decoration等,用于实现多样的文本显示和样式效果。本文详细解读了这些属性,并提供了示例代码,帮助开发者更好地利用这些工具,提升应用界面的美观和实用性。
41 8
|
9天前
|
前端开发 API
鸿蒙next版开发:相机开发-预览(ArkTS)
在HarmonyOS 5.0中,使用ArkTS进行相机预览是核心功能之一。本文详细介绍了如何使用ArkTS实现相机预览,包括导入相机接口、创建Surface、获取相机输出能力、创建会话并开始预览,以及监听预览输出状态等步骤,并提供了代码示例。通过本文,读者可以掌握在HarmonyOS 5.0中使用ArkTS进行相机预览的基本方法。
29 6
|
9天前
|
编解码 开发工具 计算机视觉
鸿蒙5.0版开发:命令行工具(mediatool工具)
在HarmonyOS 5.0的开发中,命令行工具mediatool基于FFmpeg库,提供了丰富的媒体处理功能,如视频和音频的转码、封装格式转换、提取媒体信息等。本文详细介绍mediatool的功能和使用方法,并提供代码示例。
28 6