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

这篇具有很好参考价值的文章主要介绍了HarmonyOS学习路之开发篇—AI功能开发(关键字提取)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关键字提取概述

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

运作机制

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

约束与限制

  • 当前只支持中文语境。
  • 关键字提取标题文本限制在100个字符以内,正文文本限制在5000个字符以内,关键词提取个数小于等于20。文本为UTF-8格式,格式错误不会报错,但分析结果会不正确。
  • Engine支持多用户同时接入,但是不支持同一用户并发调用同一个特性。如同一个特性被同一进程同一时间多次调用,则返回系统忙错误;不同进程调用同一特性,则同一时间只有一个进程业务在处理,其他进程进入队列排队。

关键字提取开发

场景介绍

  • 游记摘要

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

  • 新闻标签

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

接口说明

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

主要接口

表1 关键词提取主要接口

接口名

功能描述

ResponseResult getKeywords(String requestData, int requestType);

同步接口,可用于从新闻和邮件里,提取出关键字后便于用户快速获取新闻和邮件的主题。

ResponseResult getKeywords(final String requestData, final int requestType, final OnResultListener<ResponseResult> listener);

异步接口,可用于从新闻和邮件里,提取出关键字后便于用户快速获取新闻和邮件的主题。

void init(Context context, OnResultListener<Integer> listener, boolean isLoadModel);

绑定NLU服务必须调用初始化服务,使用多个nlu服务接口时,只需要调用一次,异步接口。

void destroy(Context context);

解绑服务,初始化过就在销毁时需要解绑,让资源及时释放。

接口输入值说明

requestData的JSON格式如下:

参数名

是否必选

类型

说明

title

false

String

文章的标题,字符数不超过100。

body

true

String

文章的正文,字符数不超过5000。

number

true

int

需抽取的关键字个数,数值在1到20之间。

callPkg

false

String

调用者名称。

callType

false

int

调用者类型:

  • 0:普通应用(默认)
  • 1:快应用

callVersion

callState

false

false

String

int

调用者版本号。

调用者状态:

  • -1:未知(默认)
  • 0:前台
  • 1:后台

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

类型

说明

static final int

REQUEST_TYPE_LOCAL=0,本地请求。

接口返回值说明

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

参数名

是否必选

类型

说明

code

true

int

结果码。取值为:

  • 0:成功
  • 1:系统正在初始化
  • 2:参数错误
  • 3:系统忙
  • 4:系统异常
  • 5:任务超时
  • 6:其它错误

message

true

String

错误信息

keywords

true

JSONArray

关键字列表,按照权重的顺序返回

参考示例如下:

{
    "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()方法释放进程资源,如果持续使用建议在进程结束时释放,释放后需要重复第二步才能再次使用。文章来源地址https://www.toymoban.com/news/detail-515593.html

到了这里,关于HarmonyOS学习路之开发篇—AI功能开发(关键字提取)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • HarmonyOS学习路之开发篇—AI功能开发(文档检测校正)

    HarmonyOS学习路之开发篇—AI功能开发(文档检测校正)

    文档校正提供了文档翻拍过程的辅助增强功能,包含两个子功能: 文档检测:能够自动识别图片中的文档,返回文档在原图中的位置信息。这里的文档泛指外形方正的事物,比如书本、相片、画框等。 文档校正:能根据文档在原始图片中的位置信息校正文档的拍摄角度,自

    2024年02月11日
    浏览(48)
  • HarmonyOS学习路之开发篇—AI功能开发(图像超分辨率)

    针对图片分辨率不足的问题,传统的解决方案是使用双线性或双三次插值的方法来放大图像;而针对图片压缩噪声的问题,传统的解决方案则是通过各种算法实现平滑、去噪。 本SDK使用智能的方法,基于深度神经网络,依托硬件的神经网络加速器,提供适用于移动终端的1x和

    2024年02月11日
    浏览(46)
  • HarmonyOS学习路之开发篇—AI功能开发(二维码生成及文字识别)

    为应用提供丰富的AI(Artificial Intelligence)能力,支持开箱即用。开发者可以灵活、便捷地选择AI能力,让应用变得更加智能。 已开放的AI能力如下表所示: 能力 简介 二维码生成 根据开发者给定的字符串信息和二维码图片尺寸,返回相应的二维码图片字节流。调用方可以通过

    2024年02月11日
    浏览(11)
  • Vue关键字搜索功能(小案例)

    Vue关键字搜索功能(小案例)

    这里介绍两种方法:1、使用watch侦听方法 2、computed计算属性方法 页面结果: 第一种 第二种 相较于watch写法,computed写法看上去更加简洁,比如: 1、computed自身就是一种计算属性,不必再去data中新建一个属性。 2、计算属性实时更新,不用像watch方法,新建的filPerson初始值为

    2024年02月06日
    浏览(43)
  • AI绘画Midjourney如何写关键字?

    AI绘画Midjourney如何写关键字?

    Midjourney 是一款强大的 AI 图像生成工具,只需要简单的自然语言描述就能快速生成图像。 与其他AI图像生成相比,Midjourney学习成本更低,生成速度更快,风格更多样化,是现在接触AI绘画最好的方式之一了。 Midjourney生成图片提示词大致的分为:主体、动作、场景、视角、光

    2024年02月12日
    浏览(46)
  • AI绘画Stable Diffusion关键字技巧分享

    AI绘画Stable Diffusion关键字技巧分享

    大家使用Stable Diffusion通过描述的时候,总觉得画不出想要的图形;在这里,飞链云教大家一个小技巧;那就是使用某种特定的顺序,让AI更好的理解你想要什么; 欢迎大家体验AI绘画,正在内测中; https://ai.feilianyun.cn/ 具体的文本格式如下所示: 格式(即描述文

    2024年02月05日
    浏览(11)
  • Golang开发-new关键字

    在Go语言中,new用于创建一个新的零值对象,并返回指向该对象的指针。它是Go语言中用于分配内存的一种方式。 new的语法如下: 其中,Type表示要创建的对象的类型,ptr是指向新对象的指针。 以下是一个示例,演示如何使用new创建一个新的对象: 在上述

    2024年02月09日
    浏览(9)
  • C# void 关键字学习

    C# void 关键字学习

    C#中void是System.Void的别名; 可以将 void 用作方法(或本地函数)的返回类型来指定该方法不返回值; 如果C#方法中没有参数,则不能将void用作参数;这是与C语言不同的,C语言有 int func(void) 这样的; 做一个winform示例看一下;

    2024年02月10日
    浏览(13)
  • C# const关键字学习

    C# const关键字学习

    你居然不知道const?今天在做项目的时候别人问我的,我确实不知道这个,今天我们就来一起学习一下const定义局部变量,这个对于常数变量非常的友好的,可以提高程序的运行效率,因为它是在编译时的操作,所以我们必须要学习一下,这不就是提

    2024年01月22日
    浏览(13)
  • final关键字--java学习笔记

    final关键字--java学习笔记

    final是最终的意思,可以修饰类、方法、变量 修饰类:该类被称为最终类,特点是不能被继承了 修饰方法:该方法被称为最终方法,特点是不能被重写了 修饰变量:该变量只能被赋值一次 就相当于给类、方法、变量做了一个绝育手术  示例: final修饰类: final修饰方

    2024年01月18日
    浏览(141)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包