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

news/2024/12/17 10:52:46/文章来源:https://www.cnblogs.com/HarmonyOSSDK/p/18611872

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

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;

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

了解更多详情>>

访问自然语言理解服务联盟官网

获取自然语言理解服务开发指导文档

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

课程Project总结 - 移动web大作业(不看微博)

移动web最后的大作业我们组做的是实现类似新浪微博的功能。基本功能包括修改个人信息、发微博、看微博和回复数据库设计微博。我认为整个工程可以分为数据库设计、前台HTML、JSP和CSS开发、后台JavaScript设计。下面就依次看这几个部分 数据库设计用户类:登录不看微博的用户,…

C# static关键字—— 对象引用对于非静态字段、方法或属性是必需的

原文链接:https://blog.csdn.net/Jeffxu_lib/article/details/96425138 在 C# 中,当主函数调用另一个非静态函数时总是提示: “ 对象引用对于非静态的字段、方法或属性是必需的 ” 一、错误分析 1、因为 f02() 是非静态函数;而主函数 Main 前有关键字 static ,其为静态函数…

管道传输

提交运行 ls | sort -r的结果,总结管道的功能 管道的功能总结: 数据流传输: 管道允许将一个命令的输出直接传输到另一个命令的输入,无需中间文件。 命令组合: 可以组合多个命令,实现复杂的数据处理流程。 效率提升: 由于数据在内存中直接传输,避免了磁盘 I/O,提高了处…

网站颜色在哪里修改图片,网站颜色和图片修改指南

修改网站的颜色和图片可以提升网站的视觉效果和用户体验。以下是详细的步骤:备份文件:使用FTP工具(如FileZilla)下载网站的所有文件。 确保备份文件的安全。编辑CSS文件:使用代码编辑器(如VS Code、Sublime Text)打开style.css文件。 根据需求修改颜色。例如,修改背景颜…

寻找教育团队协作神器!J 人备考有何优质软件可选?

在教育领域,无论是教育教培团队的日常运营,还是个人备考者的学习提升,高效的协作与管理工具都至关重要。对于注重计划和秩序的 J 人来说,可视化团队协作办公软件更是能契合其工作和学习风格,助力他们更好地达成目标。本文将为您盘点 6 款此类软件,包括国内的板栗看板以及…

Z-BlogPHP 中“主题模板的编译文件不存在”错误的原因是什么?

“主题模板的编译文件不存在”错误通常出现在 Z-BlogPHP 中,表示系统未能正确编译主题模板文件,导致无法正常显示网站内容。以下是常见的原因和解决方法:缓存文件未生成:缓存文件未生成或已损坏,导致系统无法找到编译后的模板文件。 解决方法:登录 Z-BlogPHP 后台管理界面…

如何在 Z-BlogPHP 中临时禁用所有插件以排除插件冲突?

在 Z-BlogPHP 中,如果遇到网站无法正常运行的问题,可能是由于某个插件引起的冲突。为了排除插件冲突,您可以临时禁用所有插件,然后逐步启用插件以确定问题所在。以下是具体的操作步骤:确定问题原因:首先,确认问题是否与插件有关。常见的插件冲突症状包括网站无法加载、后…

如何使用 Lambda 自动添加CloudWatch所有实例磁盘告警及 SNS 通知

利用Lambda轻松实现EC2实例监控 最近新增了一些服务器,因为每个服务器的基础监控都是要做的。我就想,如何能够快速便捷的方式把这些基础指标都监控上呢?本文将详细介绍如何通过Lambda自动为所有EC2实例添加CloudWatch磁盘告警,并在磁盘利用率超过阈值时,通过SNS主题发送通知…

实现hive的bitmap同步到doris

背景: 官方提供的方案不可行 doris提供的hive-udf中:https://doris.apache.org/zh-CN/docs/3.0/ecosystem/hive-bitmap-udf 官网方式如下: 需要使用doris外接hive的元数据地址:hive.metastore.uris 这里有个问题是,很多公司都会有数据安全和权限控制,这个接口一般不会外露…

一款可以完整保留排版的PDF翻译,GitHub增长第一

最近看论文较多,顺手给大家推荐一个用下来觉得不错的开源PDF翻译工具:PDFMathTranslate 目前这款开源项目在GitHub上已经收获了7.6K Star,而且由于一直处于增长趋势榜第一的位置,预计未来还会持续增长许多。 PDFMathTranslate 简介开源项目地址:https://github.com/Byaidu…

在 IIS 中发布网站,使用 PUT、DELETE 等请求方法时,提示错误:HTTP 错误 405.0 - Method Not Allowed

搜了一圈,发现是因为安装了 IIS 的 WebDAV 功能,就会导致站点出现此类问题 一种方法是移除 WebDAV 功能,但比较费时费力 另一种就是在站点的 Web.config 中显式移除 WebDAV 模块 配置文件: <configuration><system.webServer><modules><!-- 移除模块 …