零基础5分钟上手亚马逊云科技-NLP文字理解AI服务

news2024/9/23 17:21:08

简介:

欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。

我会每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿云开发/架构技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS最佳实践,并应用到自己的日常工作里。本次介绍的是如何利用亚马逊云科技上设计云原生架构,利用S3服务托管前端、EC2服务托管后端应用以及利用DynamoDB托管NoSQL数据库,提升云上应用程序的扩展性,降低运维维护难度。本方案架构图如下:

方案所需基础知识

什么是 Amazon Comprehend 服务?

Amazon Comprehend 是亚马逊云科技提供的一项自然语言处理 (NLP) 服务,旨在帮助用户从非结构化文本中提取有价值的见解和信息。借助机器学习技术,Comprehend 可以自动识别文本中的实体、关键短语、情感、语言等,帮助企业轻松分析客户反馈、社交媒体内容、文章等各种文本数据。

Comprehend 的应用场景非常广泛。例如,它可以用于情感分析,帮助企业了解客户对产品或服务的情感倾向;也可以用于文本分类,将文档或内容自动归类到预定义的类别中。此外,Comprehend 还能识别文本中的人名、地点、组织等实体,并提取出文本的主要话题,帮助企业更好地进行信息管理和决策支持。

Amazon Comprehend 的自定义词汇识别功能是什么

识别自定义实体

Custom Entity Recognition 功能允许用户根据特定业务需求,训练模型识别文本中的自定义实体,如产品名称、合同条款或行业特定术语,从而更精准地提取关键信息。

提升数据分析精准度

通过定制化实体识别,企业能够更准确地分析和分类文本数据,提高数据处理的精准度,支持更深入的业务洞察和决策。

无缝集成现有流程

Custom Entity Recognition 功能可以轻松集成到现有的业务流程和应用中,无需复杂的设置或编码,从而快速部署并产生业务价值。

本方案包括的内容

1. 利用Amazon Comprehend创建一个自定义文字理解模型,用于理解特定专有词汇

2. 利用模型API节点对文字进行实时理解

项目搭建具体步骤

1. 首先进入亚马逊云科技控制台,进入S3服务。

2. 创建一个S3存储桶,命名为”databucket-us-west-2-172330051“。

3. 上传用于训练Amazon Comprehend服务的数据集。

数据集共包括两个文件,第一个文件是”documents.txt“,作为原始文本,用于模型训练。

"Pearson Boosts Security and Productivity Using Amazon Elasticsearch Service"
"2020"
"Global educational media company Pearson needed a more efficient way to analyze and gain insights from its log data. With a number of teams in various locations using Elasticsearch\u2014the popular open-source tool for search and log analytics\u2014Pearson found that keeping track of log data and managing updates led to high operating costs. Faced with this, as well as increasingly complex security log management and analysis, the company found a solution on Amazon Web Services (AWS). Pearson quickly saw improvements by migrating from its self-managed open-source Elasticsearch architecture to Amazon Elasticsearch Service, a fully managed service that makes it easy to deploy, secure, and run Elasticsearch cost effectively at scale. Rather than spending considerable time and resources on managing the Elasticsearch clusters on its own, Pearson used the managed Amazon Elasticsearch Service as part of its initiative to modernize its products. "

第二个文件是”annotations.csv“,利用标记注释了文本文件内的内容,如”AWS_Service“表示该字段为AWS一个服务,帮助模型理解文本文件。

File,Line,Begin Offset,End Offset,Type
documents.txt,0,47,75,AWS_SERVICE
documents.txt,2,167,180,AWS_SERVICE
documents.txt,2,453,479,AWS_SERVICE
documents.txt,2,590,610,AWS_SERVICE
documents.txt,2,860,888,AWS_SERVICE
documents.txt,5,17,45,AWS_SERVICE
documents.txt,7,0,26,JOB_TITLE
documents.txt,7,31,56,JOB_TITLE

4. 我们进入AWS Comprehend服务

5. 点击”Launch“创建一个Comprehend服务。

6. 点击左侧的”Custom entity recognition.“页面,再点击右侧的”Create New Model“创建一个自定义模型。

7. 将模型命名为”aws-entity-recognizer“,版本号设置为1,添加自定义词汇类型,添加我们在标记文件中定义的”AWS_SERVICE“和”JOB_TITLE“

8. 选择数据集类型”Using annotations and training docs“,添加我们上传到S3中的标记文件和文本文件。

9. 为模型添加IAM权限,用于访问S3存储桶中的数据。

10. 点击Create开始训练模型,等待模型训练完成进入Trained状态,点击”aws-entity-recognizer“进入该模型。

 11. 点击Performance可以查看该模型的性能评估分数,我们看到所有的分数指标准确率都是100,可以满足我们的需要。

12. 接下来我们为模型创建一个API节点,用于API调用

13. 将节点命名为”aws-entity-recognizer-endpoint“,并选择模型类型为自定义词汇识别模型,选择我们刚刚训练好的模型”aws-entity-recognizer“。点击Create创建。

14. 点击左侧菜单栏”Real-time analysis“,选择分析模型为Custom类型模型,选择我们刚创建的模型作为分析模型,并输入需要分析的文字,点击Analysis开始分析。

15. 结果显示我们的Comprehend自定义模型成功分析出”Amazon HealthLake“为一个AWS服务,并且Confidence score为0.99,NLP分析的准确度很高。

如何通过Python代码创建Amazon Comprehend自定义词汇识别模型?

以下是使用AWS Boto3 SDK创建一个Amazon Comprehend自定义词汇识别模型(Comprehend Custom Entity Recognition Model)并创建一个API端点(Endpoint)的Python代码示例。

import boto3
import time

# 创建Comprehend客户端
comprehend = boto3.client('comprehend', region_name='us-east-1')

# 定义S3路径和模型名称
training_data_s3_uri = 's3://your-bucket-name/training-data/'
model_name = 'MyCustomEntityModel'
data_access_role_arn = 'arn:aws:iam::YOUR_ACCOUNT_ID:role/YourComprehendRole'

# 创建自定义实体识别模型
def create_entity_recognition_model():
    try:
        response = comprehend.create_entity_recognizer(
            RecognizerName=model_name,
            DataAccessRoleArn=data_access_role_arn,
            InputDataConfig={
                'EntityTypes': [{'Type': 'AWS_SERVICE'}, {'Type': 'JOB_TITLE'}],
                'Documents': {'S3Uri': training_data_s3_uri},
                'Annotations': {'S3Uri': 's3://your-bucket-name/annotations/'}
            },
            LanguageCode='en'
        )
        recognizer_arn = response['EntityRecognizerArn']
        print(f'Entity recognizer {model_name} created successfully. ARN: {recognizer_arn}')
        return recognizer_arn
    except Exception as e:
        print(f'Error creating entity recognizer: {str(e)}')
        return None

# 检查模型训练状态
def check_training_status(recognizer_arn):
    while True:
        response = comprehend.describe_entity_recognizer(
            EntityRecognizerArn=recognizer_arn
        )
        status = response['EntityRecognizerProperties']['Status']
        print(f'Model status: {status}')
        if status in ['TRAINED', 'FAILED']:
            break
        time.sleep(600)  # 每10分钟检查一次

# 创建端点
def create_endpoint(recognizer_arn):
    try:
        endpoint_name = 'MyComprehendEndpoint'
        response = comprehend.create_endpoint(
            EndpointName=endpoint_name,
            ModelArn=recognizer_arn,
            DesiredInferenceUnits=1
        )
        print(f'Endpoint {endpoint_name} created successfully. ARN: {response["EndpointArn"]}')
    except Exception as e:
        print(f'Error creating endpoint: {str(e)}')

if __name__ == '__main__':
    # 第一步:创建实体识别模型
    recognizer_arn = create_entity_recognition_model()
    if recognizer_arn:
        # 第二步:检查模型训练状态
        check_training_status(recognizer_arn)
        # 第三步:创建端点
        create_endpoint(recognizer_arn)

代码解释 

创建自定义实体识别模型

  • 利用自定义create_entity_recognition_model 函数调用 create_entity_recognizer API 创建自定义实体识别模型。
  • 输入配置InputDataConfig 包含实体类型、文档的S3路径和注释的S3路径。
  • LanguageCode 指定模型的语言,这里我们使用英文。

创建端点

  • create_endpoint 函数调用 create_endpoint API 创建一个端点,用于实时处理和识别文本中的词汇。
  • DesiredInferenceUnits 指定了推理单元的数量,用于控制处理能力。

以上就是在亚马逊云科技上利用NLP AI服务Amazon Comprehend识别自定义词汇,更准确理解文字关键信息,并通过API开发应用的全部步骤。欢迎大家关注0基础5分钟上手AWS系列,未来获取更多国际前沿的AWS云开发/云架构方案。

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

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

相关文章

android gradle 配置国内gradle地址

1. 地址: 腾讯云镜像 Gradle下载地址:https://mirrors.cloud.tencent.com/gradle/ 阿里云镜像 Gradle下载地址:https://mirrors.aliyun.com/macports/distfiles/gradle/ 阿里云镜像 Gradle下载地址:https://mirrors.aliyun.com…

Python酷库之旅-第三方库Pandas(102)

目录 一、用法精讲 441、pandas.DataFrame.mask方法 441-1、语法 441-2、参数 441-3、功能 441-4、返回值 441-5、说明 441-6、用法 441-6-1、数据准备 441-6-2、代码示例 441-6-3、结果输出 442、pandas.DataFrame.query方法 442-1、语法 442-2、参数 442-3、功…

【C++题解】1223. 汉诺塔的移动次数

欢迎关注本专栏《C从零基础到信奥赛入门级(CSP-J)》 问题:1223. 汉诺塔的移动次数 类型:函数、递归基础 题目描述: 汉诺塔的问题大家都已经很熟悉了,有三个柱子,每个柱子上有一些大小不一的金…

Python(C)图像压缩导图

🎯要点 傅里叶和小波变换主成分分析彩色图压缩制作不同尺寸图像K均值和生成式对抗网络压缩无损压缩算法压缩和解压缩算法离散小波变换压缩树结构象限算法压缩矩阵分解有损压缩算法量化模型有损压缩算法JPEG压缩解压缩算法 Python图像压缩 图像压缩可以是有损的&…

Gazebo Harmonic gz-harmonic 和 ROS2 Jazzy 注意事项

激光显示 点呈现 射线呈现 rviz2 新旧版本并存的混乱 本教程旨在为在Ubuntu Jammy(最新支持Gazebo Classic包的Ubuntu版本)上运行Gazebo Classic(如Gazebo 11)的用户提供指导,这些用户计划将其代码迁移到新的Gazebo版…

大语言模型(LLMs)全面学习指南

大语言模型(LLMs)作为人工智能(AI)领域的一项突破性发展,已经改变了自然语言处理(NLP)和机器学习(ML)应用的面貌。这些模型,包括OpenAI的GPT-4o和Google的gem…

泛运动生态持续破圈,重估Keep时刻来临

在中国超40万亿的庞大消费市场中,从不缺少“燃点”。 前不久举办的巴黎奥运会,就带火了国内规模空前的“奥运经济”。在诸多品牌助力下,这股运动消费热潮持续破圈。 比如,运动科技公司Keep通过发布主题为《心火已燃》的品牌TVC&…

生信圆桌x生信友好期刊:助力生物信息学研究的学术平台

介绍 生物信息学作为一门交叉学科,近年来得到了快速发展。为了促进生信领域的科研交流,许多学术期刊开始关注并专门发表生物信息学相关的研究成果。这些期刊被称为“生信友好期刊”,它们为研究人员提供了一个展示和传播最新科研成果的重要平…

怎么成为ChatGPT使用大神?

成为高效使用ChatGPT的高手,可以通过以下几个方面来提升你的使用体验和效果: 1. 清晰明确的提问 明确问题:尽量将问题表述清楚、具体。例如,“如何提高文章写作技巧?” 比 “写作技巧” 更具体。提供上下文&#xf…

UnrealEngine学习(01):安装虚幻引擎

1. 下载安装 Epic Games 目前下载UE引擎需要先下载Epic Games,官网为我们提供了下载路径: https://www.unrealengine.com/zh-CN/downloadhttps://www.unrealengine.com/zh-CN/download 我们点击图中步骤一即可进行下载。 注释:Unreal Engi…

AI嵌入式开发 ---- pt模型文件 -> ONNX模型 -> rknn模型 -> 部署到RK3588开发板上(以yolov5为例)

目录 一、前言 1.1 任务 1.2 开发板下跑预训练模型流程 二、pt 文件转换为 onnx 或 TorchScript 文件(平台:x86机器Windows系统) 二、将 .onnx 模型文件转换为 .rknn 模型文件【平台:x86上的 Linux虚拟系统】 三、在 Linux虚…

python爬虫控制aiohttp并发数量方式例子解析

在使用Python的aiohttp库进行爬虫开发时,控制并发数量是一个重要的环节,以避免对目标网站造成过大压力或触发反爬机制。以下是一些控制并发数量的方法和示例: 使用Semaphore限制并发数:Semaphore(信号量)是…

用大模型学习大模型-40问掌握大模型入门知识点(上)

采用提问方式,从个人知识盲点开始,渐进式掌握大模型入门知识点。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 1、大模型中7b、70B代表什么 在讨论人工智能领域特别是大型语言模型(LLMs)时,“7b”和“70B”均…

【Kotlin设计模式】Kotlin实现装饰器模式

前言 装饰器模式(Decorator Pattern),用于动态地为对象添加新功能,而无需修改其结构,通过使用不用装饰类及这些装饰类的排列组合,可以实现不同的功能和效果,但是这样的效果就是会增加很多类&…

debian12 - rsyslog的安装/配置/使用

文章目录 debian12 - rsyslog的安装/配置/使用概述笔记实现main.cppmy_syslog.hmy_syslog.cppMakefileMakefile的准备工作END debian12 - rsyslog的安装/配置/使用 概述 以前在debian7.5中用syslog可以。 现在准备在debian12虚拟机中做个rsyslog的实验,看syslog还…

2024年PDF转换成PPT三步走,职场小白秒变高手

这个信息满天飞的时代,我们几乎天天都得处理一堆文件,PDF和PPT这对搭档简直就是我们工作学习中的老面孔。你有没有碰到过这种头疼事:急着要把PDF转成PPT来准备个演讲,但就是找不到个又快又好使的招?别慌,今…

一文搞懂大模型!基础知识、 LLM 应用、 RAG 、 Agent 与未来发展

LLM 探秘:想要深入了解人工智能界的“新宠”大型语言模型(LLM)吗?本文将带你走进 LLM 的世界,从入门知识到实际应用,全方位解读这个充满魔力的“大模型”。我们将一起揭开 LLM 的神秘面纱,领略其…

代码随想录算法训练营第三十九天 | 198.打家劫舍 , 213.打家劫舍II , 337.打家劫舍III

目录 198.打家劫舍 思路 1.确定dp数组(dp table)以及下标的含义 2.确定递推公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp数组 方法一: 动态规划-一维 方法二:动态规划-二维 方法三:动态规划-两个变…

零知识证明-基础数学(二)

零知识证明(Zero—Knowledge Proof),是指一种密码学工具,允许互不信任的通信双方之间证明某个命题的有效性,同时不泄露任何额外信息 导数、偏导数 ,互质数,费马小定理,欧拉定理 1 导数 导数是微积分学中的重要概念&am…

从《黑神话:悟空》看中国3A游戏之路:历史回顾与未来展望

近年来,随着中国游戏行业的不断发展,一款名为《黑神话:悟空》的游戏引发了全球的广泛关注。这款游戏不仅在视觉效果和动作设计上令人惊艳,还被誉为中国3A游戏的里程碑。然而,从《黑神话:悟空》的发布&#…