鸿蒙AI功能开发【hiai引擎框架-分词、实体抽取】 自然语言理解服务

news2024/9/23 7:29:55

介绍

本示例展示了使用hiai引擎框架提供的基于自然语言处理服务的分词、实体抽取功能。

本示例模拟了在应用里,输入一段文字,调用分词、实体抽取能力后得到的结果。

需要使用hiai引擎框架通用文字识别接口@hms.ai.nlp.textProcessing.d.ts。

效果预览

1

使用说明:

  1. 在手机的主屏幕,点击”nlpDemo“,启动应用。
  2. 输入一段文字。
  3. 点击“获取分词结果”按钮,展示出分词结果,点击“获取实体结果”,展示出实体抽取结果。

具体实现

本示例展示的控件在@hms.ai.nlp.textProcessing.d.ts定义了分词和实体抽取的API:

  • function getWordSegment(text: string): Promise;
  • function getEntity(text: string, entityConfig?: EntityConfig): Promise;

输入一段文本后点击分词、实体结果按钮,接收处理返回的结果(文字信息)。参考:

import hilog from '@ohos.hilog';
import { textProcessing } from '@kit.NaturalLanguageKit';

@Entry
@Component
struct Index {
  private inputText: string = '';
  @State outputText: string = '';

  build() {
    Column() {
      TextInput({ placeholder: '请输入文本' })
        .height(40)
        .fontSize(16)
        .width('90%')
        .margin(10)
        .onChange((value: string) => {
          this.inputText = value;
        })

      Scroll() {
        Text(this.outputText)
          .fontSize(16)
          .width('90%')
          .margin(10)
      }
      .height('40%')

      Row() {
        Button('获取分词结果')
          .type(ButtonType.Capsule)
          .fontColor(Color.White)
          .width('45%')
          .margin(10)
          .onClick(async () => {
            try {
              let result: textProcessing.WordSegment[] = await textProcessing.getWordSegment(this.inputText);
              this.outputText = this.formatWordSegmentResult(result);
            } catch (err) {
              hilog.error(0x0000, 'testTag', `getWordSegment error: code: ${err.code}, message: ${err.message}`);
            }
          })

        Button('获取实体结果')
          .type(ButtonType.Capsule)
          .fontColor(Color.White)
          .width('45%')
          .margin(10)
          .onClick(async () => {
            try {
              let result: textProcessing.Entity[] = await textProcessing.getEntity(this.inputText);
              this.outputText = this.formatEntityResult(result);
            } catch (err) {
              hilog.error(0x0000, 'testTag', `getEntity error: code: ${err.code}, message: ${err.message}`);
            }
          })
      }
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }

  private formatWordSegmentResult(segments: textProcessing.WordSegment[]): string {
    let output = 'Word Segments:\n';
    segments.forEach((segment, index) => {
      output += `Word[${index}]: ${segment.word}, Tag: ${segment.wordTag}\n`;
    });
    return output;
  }

  private formatEntityResult(entities: textProcessing.Entity[]): string {
    if (!entities || !entities.length) {
      return 'No entities found.';
    }

    let output = 'Entities:\n';
    for (let i = 0; i < entities.length; i++) {
      let entity = entities[i];
      output += `Entity[${i}]:\n`;
      output += `  oriText: ${entity.text}\n`;
      output += `  charOffset: ${entity.charOffset}\n`;
      output += `  entityType: ${entity.type}\n`;
      output += `  jsonObject: ${entity.jsonObject}\n\n`;
    }
    return output;
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1993847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

03 Canal HA原理及安装

1. Canal HA原理 Canal一般用于实时同步数据场景&#xff0c;那么对于实时场景HA显得尤为重要&#xff0c;Canal支持HA搭建&#xff0c;canal的HA分为两部分&#xff0c;canal server和canal client分别有对应的HA实现。大数据中使用Canal同步数据一般同步到Kafka中&#xff0…

最新虚拟试衣框架IMAGDressing模型部署

IMAGDressing是一个全新的虚拟试衣框架&#xff0c;它由南京理工大学、武汉理工大学、腾讯AI实验室和南京大学共同开发。 该项目旨在通过先进的技术提升消费者的在线购物体验&#xff0c;特别是通过虚拟试穿技术&#xff08;VTON&#xff09;来实现逼真的服装效果。 IMAGDres…

QT界面布局

目录 界面布局 静态布局 动态布局 界面布局 静态布局 静态布局指的是在设计时固定每个控件&#xff08;如按钮、文本框等&#xff09;的位置和大小&#xff0c;无论窗口大小如何变化&#xff0c;控件的位置和大小都不会改变。 动态布局 动态布局指的是控件的位置和大小可…

【解压既玩】PS3模拟器v0.0.32+战神3+战神升天+各存档 整合包 ,完美不死机,没有BUG,旷世神作,强力推荐

战神3是圣莫尼卡公司的大作&#xff0c;PS3 上必玩的游戏之一。 本文收集了战神3和升天两作&#xff0c;附存档&#xff0c;完美不死机&#xff0c;没有BUG&#xff0c;强烈推荐。 解压即玩。 立即下载&#xff1a;【chumenx.com】【解压既玩】PS3模拟器v0.0.32战神3战神升天…

VisionPro二次开发学习笔记9-使用 CogRecordDisplay控件

使用 CogRecordDisplay控件 这个示例展示了如何使用 CogRecordDisplay 在表单上显示 Blob Tool 的 LastRunRecord 图形。 它还演示了如何通过 BlobTool 的 LastRunRecordEnable 属性有选择性地启用或禁用不同的图形特性。这个模式可以应用于所有 VisionPro 工具。 具体步骤如…

实验25.创建文件

已完成实验 已完成实验链接 简介 实验 25. 创建文件 总结 inode 就是文件 i_no 就是 inode 号i_sectors 是块地址数组,表示这个文件的内容是那些块构成的.如果是文件,那么块的内容是文件的内容如果是目录,那么这些块的内容是一个个目录项 dir_entry 目录项 是目录文件的…

思科CCIE最新考证流程

CCIE CCIE&#xff0c;全称Cisco Certified Internetwork Expert,是美国Cisco公司于1993年开始推出的专家级认证考试。被全球公认为IT业最权威的认证&#xff0c;是全球Internetworking领域中最顶级的认证证书。 CCIE方向 CCIE主要有六大方向&#xff1a;企业基础架构Enterp…

JDK源码——Atomic包(一)

包介绍 JDK的atomic包提供了一组原子类&#xff0c;用于多线程环境中的原子操作&#xff0c;确保线程安全和高性能。 Atomic包是Java在并发编程中的重要工具&#xff0c;它利用CAS&#xff08;Compare-And-Swap&#xff09;机制保证操作的原子性&#xff0c;同时避免了重量级…

3.Redis数据类型(二)

LIST List 是一个简单的双向链表&#xff0c;支持从两端进行插入和删除操作。 常用命令&#xff1a; lpush/rpush/lrange lpush 插入一个或多个元素到列表的左端。 rpush 插入一个或多个元素到列表的右端。 lrange key start stop 获取元素&#xff08;前闭后闭&#xff0…

构建可刷卡手持终端,思路与必备元素剖析-SAAS 本地化及未来之窗行业应用跨平台架构

构建可刷卡手持终端&#xff0c;思路与必备元素剖析 一、终端开发必要性 1.终端携带方便&#xff0c;适合空间小&#xff0c;外出 2.可供电&#xff0c;外带设备比较方便 3.大多数终端可以不需要网络独立使用&#xff0c;适合特殊场景 二、终端软件爱基本功能 1.便捷的终端…

Java重修笔记 第三十天 异常

异常的分类 1. Error&#xff08;错误&#xff09;&#xff1a;Java虚拟机无法解决的致命问题&#xff0c;例如StackOverflowError[栈溢出] 2. Exception&#xff08;异常&#xff09;&#xff1a;其它因编程错误或偶然的外在因素导致的一般性问题&#xff0c;可以使用针对性…

【iOS多线程(四)】线程安全+13种锁

线程安全13种锁 线程安全1. 为什么要线程安全出现线程安全的原理解决方法 2. 自旋锁和互斥锁自旋锁(Spin lock)互斥锁两种锁的加锁原理对比两种锁的应用 3. 13种锁1. OSSpinLock (已弃用&#xff09;2. os_unfair_lock3.pthread_mutex 4. NSLock5. NSRecursiveLock6. NSConditi…

C++ IOStream

IOStream 类流特性 不可赋值和复制缓冲重载了<< >> 状态位 示例 状态位操作函数coutcin getget(s,n)/get(s,n,d):getline otherif(!fs)/while(cin) operator void*()与 operator!()代码示例 File Stream open 函数 文件打开方式 文件读写 读写接口 一次读一个字符…

SpringBoot学习之EasyExcel解析合并单元格(三十九)

本解析主要采用反射来修改EasyExcel 返回的默认数据结构实现。 一、待解析表格 二、依赖 全部pom.xml文件如下,仅作参考: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLo…

LLM - 使用 HuggingFace + Ollama 部署最新大模型 (GGUF 格式 与 Llama 3.1)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/141028040 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Ollama…

创建一个自己的列表窗口

文章目录 背景&#xff1a;在QT的设计中&#xff0c;对于控件库提供的控件满足不了项目的需求&#xff0c;就像自定义一些控件&#xff0c;本文是自定义一个列表窗口。效果展示 一、创建基本的QT模板&#xff1a;1.创建mainwindow2.创建VerticalTextDelegate 二&#xff1a; 插…

零拷贝的发展历程

零拷贝 零拷贝是指计算机执行 IO 操作时&#xff0c;CPU 不需要将数据从一个存储区域复制到另一个存储区域&#xff0c;从而可以减少上下文切换以及 CPU的拷贝时间。它是一种I/O 操作优化技术。 传统IO的执行流程&#xff1a;传统的 IO 流程&#xff0c;包括 read 读 和 write…

2024.8.08(python)

一、搭建python环境 1、检查是否安装python [rootpython ~]# yum list installed | grep python [rootpython ~]# yum list | grep python3 2、安装python3 [rootpython ~]# yum -y install python3 安装3.12可以使用源码安装 3、查看版本信息 [rootpython ~]# python3 --vers…

C++(类和对象.下)

类型转换 先给出以下代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; class B { private:int _a1; public:B(int a){_a1 a;}void Print() {cout << _a1<< endl;} }; int main() {//实例化对象1B b(1);b.Pri…

video-retalking部署安装,在服务器Ubuntu22.04系统下

video-retalking部署安装&#xff0c;在服务器Ubuntu22.04系统下 一、ubuntu基本环境配置1.更新包列表&#xff1a;2. 安装英伟达显卡驱动2.1 使用wget在命令行下载驱动包2.2 更新软件列表和安装必要软件、依赖2.2 卸载原有驱动2.3 安装驱动2.4 安装CUDA2.5 环境变量配置 二、安…