当前位置: 首页 > news >正文

集成自然语言理解服务,让应用 “听得懂人话”

如今,应用程序智能化已成趋势,开发者想要实现智能化,那么首先需要赋予应用理解自然语言的能力,使其能够准确地听懂人话,进而响应用户需求,并提供一系列智能化服务。比如用户语音控制应用程序帮忙订票,应用程序在将语音转换成文字后,需要通过技术处理准确地理解指令内容,才可以拉取对应程序功能提供服务。

HarmonyOS SDK自然语言理解服务(Natural Language Kit)提供了多项文本语义理解相关的基础能力,目前包括分词和实体抽取,能够帮助开发者更好地处理和分析文本数据。

分词

分词可以将一段文本切分成独立的词语单元,识别出句子中的每个词汇,包括中文、英文和数字内容,从而为后续的语义分析、信息提取等任务奠定基础。

在实际应用场景中,搜索引擎就便用到了这一功能,当用户输入需要搜索的文本内容,搜索引擎将会先对其进行分词处理,在提取关键词后再进行匹配搜索。

开发步骤

分词处理的开发共分为3个步骤。

1.引用相关类添加至工程。

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

2.配置输入文本框和按钮,调用分词textProcessing.getWordSegment接口。

let inputText: string = '';TextInput({ placeholder: '请输入文本' }).height(40).fontSize(16).width('90%').margin(10).onChange((value: string) => {this.inputText = value;})Button('获取分词结果').type(ButtonType.Capsule).fontColor(Color.White).width('45%').margin(10).onClick(async () => {try {let result = await textProcessing.getWordSegment(this.inputText);this.outputText = this.formatWordSegmentResult(result);} catch (err) {console.error(`getWordSegment error: ${err.message}`);}})

3.在界面上展示分词结果。

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;
}

实体抽取

实体抽取是实现自然语言处理的一项关键能力,它能够精准地从文本中识别出具有特定意义的实体信息,例如人名、地名、时间日期、数字、电话号码、邮箱地址等。开发者可以通过实体抽取能力,结合自身业务场景开发各种智能化应用程序,提高用户服务体验。

例如,在新闻阅读场景中,开发者可以通过该能力对新闻正文进行实体抽取,并对人名、地名、时间、网址等关键实体信息进行高亮标识,从而帮助读者快速获取文章要点,有效提升信息获取效率;在用户填写收货地址的场景中,开发者可以借助实体抽取能力快速识别抽取收件人姓名、地址、手机号等信息,在用户填写表单时提供结构化的文本信息,供用户快速填充表单。

开发步骤

实体抽取的开发共分为4个步骤。

1.引用相关类添加至工程。

import { textProcessing, EntityType } from '@kit.NaturalLanguageKit';

2.配置输入文本框。

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

3.配置按钮,调用实体抽取textProcessing.getEntity接口。

Button('获取实体结果').type(ButtonType.Capsule).fontColor(Color.White).width('45%').margin(10).onClick(async () => {try {let result = await textProcessing.getEntity(this.inputText, {entityTypes: [EntityType.NAME, EntityType.PHONE_NO]});this.outputText = this.formatEntityResult(result);} catch (err) {console.error(`getEntity error: ${err.message}`);this.outputText = 'Error occurred while getting entities.';}})

4.在界面上展示实体抽取结果。

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;

自然语言理解服务作为构成智能化应用开发的基础能力,可广泛应用于新闻阅读、信息检索、客户服务、社交聊天、金融运营等多种场景。随着技术的不断进步,我们期待广大开发者继续探索和创新,以发掘更多智能化应用的可能性,推动行业更高层次的智能化发展。

文章转载自:HarmonyOS_SDK

原文链接:https://www.cnblogs.com/HarmonyOSSDK/p/18611872

体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构

http://www.lryc.cn/news/505820.html

相关文章:

  • 利用notepad++删除特定关键字所在的行
  • [HNOI2002] 营业额统计 STL - set集合
  • fastAPI接口(普通流式响应和大模型流式响应)
  • Linux系统安装node.js
  • 《解决两道有趣的编程问题:交替数字和与简单回文》
  • 2412d,d的8月会议
  • WEB自动化测试(selenium工具)框架、面试题
  • 前端自动化部署之ssh2和ssh2-sftp-client
  • python pandas 优化内存占用(一)
  • FutureCompletableFuture实战
  • Loki 微服务模式组件介绍
  • peerDependencies对等依赖
  • 贪心算法 part01
  • java开发入门学习二 - 变量
  • Qt Q_ENUM enum 转 QString 枚举字符串互转; C++模板应用
  • 0004.基于springboot+elementui的在线考试系统
  • 基于 iAP2 协议 的指令协议,用于对安防设备的 MCU 进行操作
  • 02-5.python入门基础一控制流(while)
  • Go语言开发入门与实战
  • HarmonyOS Next应用开发实战:ArkWeb组件使用介绍及使用举例
  • 【已解决】在Visual Studio里将应用与Microsoft Store关联时提示网络异常
  • springcloud-gateway获取应用响应信息乱码
  • [笔记]关于Qt的nativeEvent事件无法接收window消息的Bug
  • LeetCode 热题 100_K 个一组翻转链表(31_25_困难_C++)(四指针法)
  • Pytorch | 从零构建MobileNet对CIFAR10进行分类
  • CSS系列(18)-- 工程化实践详解
  • 日拱一卒(18)——leetcode学习记录:二叉树中的伪回文路径
  • hive—炸裂函数explode/posexplode
  • SpringBoot 新特性
  • 鸿蒙app封装 axios post请求失败问题