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

devtools/2024/11/13 5:32:46/

介绍

本示例展示了使用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.ppmy.cn/devtools/91551.html

相关文章

大数据信用报告查询有什么作用?怎么选择查询平台?

随着互联网的快速发展&#xff0c;人们的金融行为越来越多地依赖于网络平台。然而&#xff0c;网络上的金融交易存在着一定的风险&#xff0c;为了有效地防范这些风险&#xff0c;金融机构采用了大数据技术进行风险控制&#xff0c;下面&#xff0c;小易大数据平台将详细介绍大…

Linux系统下的容器安全:原理、风险与防范措施

Linux系统下的容器安全是一个至关重要的议题&#xff0c;涉及到容器的隔离性、网络访问控制、镜像安全、以及运行时保护等多个方面。下面我将详细介绍容器安全的原理、潜在风险以及相应的防范措施。 容器安全原理 1.命名空间(Namespace)&#xff1a;Linux命名空间为容器提供了…

Linux/C 高级——shell脚本

1. shell脚本基础概念 1.1概念 shell使用方式&#xff1a;手动下命令和脚本 脚本本质是一个文件&#xff0c;文件里面存放的是特定格式的指令&#xff0c;系统可以使用脚本解析器翻译或解析指令并执行&#xff08;它不需要编译&#xff09;。 shell脚本本质&#xff1a;shell命…

数据跨境传输的安全合规风险如何规避?获取免费解决方案白皮书

在全球化的背景下&#xff0c;企业进行有 效的资源整合&#xff0c;学习海外市场的先进技术和管理经验&#xff0c;寻找新的增长点&#xff0c;实现业务的多元化和 可持续发展&#xff0c;不仅有利于开辟新市场&#xff0c;更有助于巩固和增强企业在全球中的地位。在这种前景 下…

NVIDIA Triton系列09-为服务器添加模型

NVIDIA Triton系列09-为服务器添加模型 B站&#xff1a;肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) 博客&#xff1a;肆十二-CSDN博客 问答&#xff1a;(10 封私信 / 72 条消息) 肆十二 - 知乎 (zhihu.com) 前面已经用 https://github.com/triton-inferen…

ctfhub eval执行

url http://challenge-1e9b95e5c3c2862c.sandbox.ctfhub.com:10800/ 源码 <?php if (isset($_REQUEST[cmd])) {eval($_REQUEST["cmd"]); } else {highlight_file(__FILE__); } ?> 首先&#xff0c;isset($_REQUEST[cmd]) 用于检查是否通过 $_REQUEST &am…

【算法模板】图论:Tarjan算法求强连通分量

Tarjan 算法是一种高效的求有向图中所有强连通分量的方法。一个强连通分量&#xff08;SCC&#xff09;是一个极大子图&#xff0c;其中任意两个顶点之间都是可达的。 概念 强连通 在图论中&#xff0c;强连通通常用于描述有向图的性质。一个有向图被称为强连通的&#xff0c…

如何使用哔哩哔哩下载与缓存视频?

您好&#xff0c;下载哔哩哔哩动画片有几种方法&#xff0c;以下是一些推荐的方式&#xff1a; 1. **B站自带的视频缓存功能**&#xff1a; 您可以使用哔哩哔哩官方客户端进行视频下载&#xff0c;手机和电脑端都有相应的缓存功能&#xff0c;选择需要的清晰度进行下载&#xf…