HarmonyOSAI基础技术赋能之关键字获取

想了解更多内容,请访问:

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了喀喇沁免费建站欢迎大家使用!

和华为官方合作共建的鸿蒙技术社区

https://harmonyos.

引言

在实际应用开发中,时不时的会遇到AI领域相关的一些技术,本节旨在详细讲述关键字获取技术,关键字获取涉及各个领域中,如:游记摘要、新闻标签、杂志文刊等。所以对于HarmonyOS开发者而言,了解和掌握HarmonyOS AI领域相关技术是至关重要的,也是每一个HarmonyOS开发者的一项必不可少的专业技能。

功能介绍

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

开发指南

1、使用NluClient静态类进行初始化,通过异步方式获取服务的连接

 
 
 
 
  1. NluClient.getInstance().init(context, new OnResultListener(){ 
  2.       @Override 
  3.       public void onResult(Integer result){ 
  4.        // 初始化成功回调,在服务初始化成功调用该函数 
  5.       } 
  6.   }, true); 

2、调用获取关键词提取方法得到分析结果,同一个接口提供了同步和异步两个方法

同步:

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

异步:

 
 
 
 
  1. // 待分析文本 
  2. String requestData= "{number:2,body:'今天我们一起去上课吧',title:'一起去上课'}"; 
  3. // 调用接口 
  4. NluClient.getInstance().getKeywords(requestData, NluRequestType.REQUEST_TYPE_LOCAL,new OnResultListener(){ 
  5.     @Override 
  6.     public void onResult(ResponseResult respResult) 
  7.     { 
  8.     // 异步返回 
  9.     if(null != respResult && NluError.SUCCESS_RESULT == respResult.getCode()) 
  10.         { 
  11.         // 获取接口返回结果,参考接口文档返回使用 
  12.         String result = respResult.getResponseResult(); 
  13.         } 
  14.     } 
  15. }); 

3、使用结束调用destroy()方法释放进程资源

 
 
 
 
  1. NluClient.getInstance().destroy(this); 

示例代码

1、xml布局

 
 
 
 
  1.  
  2.   xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  3.   ohos:height="match_parent" 
  4.   ohos:orientation="vertical" 
  5.   ohos:width="match_parent"> 
  6.   
  7.     ohos:background_element="$graphic:background_ability_main" 
  8.     ohos:height="match_content" 
  9.     ohos:layout_alignment="horizontal_center" 
  10.     ohos:multiple_lines="true" 
  11.     ohos:text="$string:title" 
  12.     ohos:top_margin="50vp" 
  13.     ohos:text_size="50" 
  14.     ohos:width="match_content" 
  15.     /> 
  16.   
  17.     ohos:background_element="$graphic:background_ability_main" 
  18.     ohos:height="match_content" 
  19.     ohos:layout_alignment="horizontal_center" 
  20.     ohos:multiple_lines="true" 
  21.     ohos:left_margin="10vp" 
  22.     ohos:right_margin="10vp" 
  23.     ohos:text="body:'同步-今天我们一起去上课吧',title:'同步-一起去上课'-body:'异步-今天我们一起去上班吧',title:'异步-我们去上班'" 
  24.     ohos:top_margin="50vp" 
  25.     ohos:text_size="50" 
  26.     ohos:width="match_content" 
  27.     /> 
  28.   
  29.     ohos:background_element="$graphic:background_ability_main" 
  30.     ohos:height="match_content" 
  31.     ohos:id="$+id:text_content" 
  32.     ohos:layout_alignment="horizontal_center" 
  33.     ohos:multiple_lines="true" 
  34.     ohos:top_margin="50vp" 
  35.     ohos:left_margin="10vp" 
  36.     ohos:right_margin="10vp" 
  37.     ohos:text_size="50" 
  38.     ohos:width="match_content" 
  39.     /> 
  40.   
  41.     ohos:background_element="$graphic:background_ability_main" 
  42.     ohos:height="match_content" 
  43.     ohos:id="$+id:text_asynchronous" 
  44.     ohos:layout_alignment="horizontal_center" 
  45.     ohos:text="$string:asynchronous" 
  46.     ohos:top_margin="50vp" 
  47.     ohos:text_size="50" 
  48.     ohos:width="match_content" 
  49.     /> 
  50.   
  51.     ohos:background_element="$graphic:background_ability_main" 
  52.     ohos:height="match_content" 
  53.     ohos:id="$+id:text_synchronization" 
  54.     ohos:layout_alignment="horizontal_center" 
  55.     ohos:text="$string:synchronization" 
  56.     ohos:top_margin="50vp" 
  57.     ohos:text_size="50" 
  58.     ohos:width="match_content" 
  59.     /> 
  60.  

2、案例代码

 
 
 
 
  1. package com.example.keywords.slice; 
  2.  
  3. import com.example.keywords.ResourceTable; 
  4. import ohos.aafwk.ability.AbilitySlice; 
  5. import ohos.aafwk.content.Intent; 
  6. import ohos.agp.components.Component; 
  7. import ohos.agp.components.Component.ClickedListener; 
  8. import ohos.agp.components.Text; 
  9. import ohos.ai.nlu.NluClient; 
  10. import ohos.ai.nlu.NluRequestType; 
  11. import ohos.ai.nlu.ResponseResult; 
  12. import ohos.ai.nlu.util.NluError; 
  13.  
  14. public class MainAbilitySlice extends AbilitySlice implements ClickedListener { 
  15.  
  16.   private Text text_content; 
  17.  
  18.   @Override 
  19.   public void onStart(Intent intent) { 
  20.     super.onStart(intent); 
  21.     super.setUIContent(ResourceTable.Layout_ability_main); 
  22.     text_content = (Text) findComponentById(ResourceTable.Id_text_content); 
  23.     Text text_synchronization = (Text) findComponentById(ResourceTable.Id_text_synchronization); 
  24.     Text text_asynchronous = (Text) findComponentById(ResourceTable.Id_text_asynchronous); 
  25.     text_synchronization.setClickedListener(this); 
  26.     text_asynchronous.setClickedListener(this); 
  27.     // 使用NluClient静态类初始化,通过异步方式获取服务连接 
  28.     NluClient.getInstance().init(this, null, true); 
  29.   } 
  30.  
  31.   @Override 
  32.   public void onClick(Component component) { 
  33.     switch (component.getId()) { 
  34.       case ResourceTable.Id_text_synchronization: 
  35.         String requestData = "{number:3,body:'同步-今天我们一起去上课吧',title:'同步-一起去上课'}"; 
  36.         ResponseResult responseResult = NluClient.getInstance() 
  37.             .getKeywords(requestData, NluRequestType.REQUEST_TYPE_LOCAL); 
  38.         if (responseResult != null) { 
  39.           text_content.setText(responseResult.getResponseResult()); 
  40.         } 
  41.         break; 
  42.       case ResourceTable.Id_text_asynchronous: 
  43.         String rData = "{number:3,body:'异步-今天我们一起去上班吧',title:'异步-我们去上班'}"; 
  44.         NluClient.getInstance().getKeywords(rData, NluRequestType.REQUEST_TYPE_LOCAL, 
  45.                 responseResult1 -> { 
  46.                   if (responseResult1 != null && NluError.SUCCESS_RESULT == responseResult1.getCode()) { 
  47.                     getAbility().getUITaskDispatcher().syncDispatch(() -> text_content.setText(responseResult1.getResponseResult())); 
  48.                   } 
  49.                 }); 
  50.         break; 
  51.       default: 
  52.         break; 
  53.     } 
  54.   } 
  55.  
  56.   @Override 
  57.   protected void onBackground() { 
  58.     super.onBackground(); 
  59.     NluClient.getInstance().destroy(this); 
  60.   } 

实现效果

想了解更多内容,请访问:

和华为官方合作共建的鸿蒙技术社区

https://harmonyos.

网页题目:HarmonyOSAI基础技术赋能之关键字获取
本文地址:http://www.mswzjz.cn/qtweb/news45/546045.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能