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

【NLP】如何使用Hugging-Face-Pipelines?

一、说明

        随着最近开发的库,执行深度学习分析变得更加容易。其中一个库是拥抱脸。Hugging Face 是一个平台,可为 NLP 任务(如文本分类、情感分析等)提供预先训练的语言模型。

        本博客将引导您了解如何使用拥抱面部管道执行 NLP 任务。以下是我们将在此博客中讨论的主题。

  • 什么是自然语言处理?
  • 什么是变形金刚?
  • 使用变形金刚执行各种 NLP 任务。

我们将介绍的 NLP 任务是文本分类、命名实体识别、问答和文本生成。

让我们潜入!

二、什么是自然语言处理?

        NLP是人工智能的一个子领域,允许计算机解释,操纵和理解人类语言。NLP 任务的目标是分析文本和语音数据,如电子邮件、社交媒体新闻源、视频、音频等。使用 NLP 技术,您可以处理各种任务,例如文本分类、生成文本内容、从文本中提取答案等。

        NLP不仅仅处理书面文本。它还克服了语音识别和计算机视觉中的复杂挑战,例如创建声音样本的成绩单或图像的描述。

        很酷,我们在本节中了解了 NLP 是什么。让我们继续看看变形金刚库是什么。

三、什么是transformer库?

        Transformers 是一个库,提供 API 和工具,可轻松下载和训练最先进的预训练模型。

        你可能会问什么是预训练模型。让我解释一下。预训练模型实际上是一个保存的预训练网络,该网络以前在大型数据集上训练过。使用预先训练的模型,可以节省从头开始训练模型所需的时间和资源。

        很好,我们看了变形金刚库是什么。让我们执行一些任务来展示如何使用这个库。

3.1 transformer应用

        变压器具有处理各种NLP任务的强大功能。处理 NLP 任务的最简单方法是使用该函数。它将模型与其必要的预处理和后处理步骤连接起来。这允许您直接输入任何文本并获得答案。pipeline

        要使用变压器,您需要使用以下命令安装它:

pip install -q transformers

        为了展示如何使用该功能,让我们从转换器导入它。pipeline

from transformers import pipeline

        很酷,我们现在可以使用这个对象执行 NLP 任务。让我们从情绪分析开始。

3.2 情绪分析

        情绪分析是最常用的NLP任务之一。它是检测文本中积极或消极情绪的过程。为了演示如何执行此任务,让我们创建一个文本。

text = "This movie is beautiful. I would like to watch this movie again."

        太棒了,我们现在有一条短信。让我们找出这段文字的情绪。为此,首先,我们通过调用管道函数来实例化管道。接下来,我们给出我们感兴趣的任务的名称。

classifier = pipeline("sentiment-analysis")

        很好,我们已经准备好使用此对象分析我们的文本。

classifier(text)# Output:
[{'label': 'POSITIVE', 'score': 0.9998679161071777}]

        如您所见,我们的管道预测了标签并显示了分数。标签为正,得分为 0.99。事实证明,模型非常有信心文本具有积极的情绪。太好了,我们已经完成了情绪分析。这很简单,对吧?

        让我们退后一步,想想发生了什么。此管道首先选择了一个预训练模型,该模型已针对情绪分析进行了微调。接下来,在创建分类器对象时,下载模型。请注意,将某些文本传递到管道时,会将文本预处理为模型可以理解的格式。

        在此分析中,我们使用管道进行情绪分析。您还可以将其用于其他任务。最近开发的一些管道是情绪分析;我们刚刚学会了如何执行这个管道、摘要、命名实体识别、问答、文本生成、翻译、特征提取、零镜头分类等。让我们来看看其中的一些。我们现在要讨论的管道是零命中分类。

3.3 零镜头分类

        假设您要对未标记的文本进行分类。这就是零镜头分类管道的用武之地。它可以帮助您标记文本。因此,您不必依赖预训练模型的标签。让我们看一下如何使用这个管道。首先,我们将通过调用管道函数进行实例化。

classifier = pipeline("zero-shot-classification")

        现在让我们创建一个要分类的文本。

text = "This is a tutorial about Hugging Face."

        让我们定义候选标签。

candidate_labels = ["tech", "education", "business"]

        很酷,我们创建了文本和标签。现在,让我们预测一下这句话的标签。为此,我们将使用分类器对象。

classifier(text, candidate_labels)# Output:
{'sequence': 'This is a tutorial about Hugging Face','labels': ['education', 'tech', 'business'],'scores': [0.8693577647209167, 0.11372026801109314, 0.016921941190958023]}

如您所见,文本是关于教育的。在这里,我们没有根据数据微调模型。我们的管道直接返回概率分数。这就是为什么这个管道被称为零镜头。让我们继续看一下文本生成任务。

3.4 文本生成

        像 ChatGPT 这样的工具非常适合生成文本,但有时您可能希望生成有关主题的文本。文本生成的目标是生成有意义的句子。我们的模型会收到提示并自动完成它。让我们看看如何执行管道。首先,我们使用文本生成来实例化管道。

generator = pipeline("text-generation")

        让我们继续创建一个提示。

prompt= "This tutorial will walk you through how to"

        现在,让我们将此提示传递给我们的对象。

generator(prompt)# Output:
[{'generated_text': 'This tutorial will walk you through how to setup a Python script to automatically find your favourite website using Python and JavaScript so you can build a web site that'}]

        如您所见,根据我们的句子生成了一个文本。请注意,此文本是随机生成的。因此,如果您没有获得与此处相同的结果,这是正常的。

        在此示例中,我们使用了默认模型。您还可以从中心选择特定型号。要为您的任务找到合适的模型,请转到模型中心并单击左侧的相应标签。

模特在拥抱脸

        在这里,您可以看到任务支持的模型。很酷,让我们尝试一个模型。首先,我们将创建一个管道。让我们将任务和模型名称传递给它。

generator = pipeline("text-generation", model="distilgpt2")

        很酷,我们实例化了一个对象。让我们使用前面的提示创建一个最大长度为 30 的文本。

generator(prompt, max_length = 30)

        如您所见,使用我们确定的模型创建了一个文本。让我们继续看一下命名实体识别任务。

3.5 命名实体识别 (NER)

        NER是最受欢迎的数据预处理任务之一。在 NLP 中,产品、地点和人员等现实世界的对象称为命名实体,从文本中提取它们称为命名实体识别。让我们通过一个示例来展示此任务是如何完成的。首先,让我们从管道创建一个对象。

ner = pipeline("ner", grouped_entities=True)

在这里,我们通过了将句子的各个部分重新组合在一起。例如,我们希望将“Google”和“Cloud”分组为一个组织。现在让我们创建一个例句。grouped_entities=True


"text = My name is Tirendaz and I love working with Hugging Face for my NLP task."

现在,让我们将此文本传递给我们的对象。

ner(text)# Output:
[{'entity_group': 'PER','score': 0.99843466,'word': 'Tirendaz','start': 11,'end': 19},{'entity_group': 'ORG','score': 0.870751,'word': 'Google Cloud','start': 31,'end': 43},{'entity_group': 'LOC','score': 0.99855834,'word': 'Berlin','start': 47,'end': 53}]

如您所见,我们的模型正确识别了文本中的实体。很好,让我们继续问答任务。

3.6 生成问答系统

        在问答中,我们给模型一段称为上下文的文本和一个问题。模型根据文本回答问题。让我们用一个例子来说明这一点。首先,让我们从问答管道创建一个对象。

question_answerer = pipeline("question-answering")

        现在让我们使用这个对象。

question_answerer(question="Where do I live?",context="My name is Tirendaz and I live in Berlin",)# Output: 
{'score': 0.7006925940513611, 'start': 31, 'end': 43, 'answer': 'Google Cloud'}

        如您所见,我们的管道从上下文中提取了信息。很酷,我们学会了如何使用管道执行各种 NLP 任务。您还可以将管道用于其他任务,例如摘要和翻译。

你可以在这里找到我在这个博客中使用的笔记本。

四、总结

        变形金刚是拥抱脸中的一个库,提供API和工具。您可以使用此库执行 NLP 任务。最简单的方法是使用拥抱面孔管道。管道提供了一个易于使用的 API,可将模型与其必要的预处理和后处理步骤连接起来。因此,您可以使用管道对象轻松执行各种 NLP 任务。

     

参考资源

  • 拥抱脸

相关文章:

【NLP】如何使用Hugging-Face-Pipelines?

一、说明 随着最近开发的库,执行深度学习分析变得更加容易。其中一个库是拥抱脸。Hugging Face 是一个平台,可为 NLP 任务(如文本分类、情感分析等)提供预先训练的语言模型。 本博客将引导您了解如何使用拥抱面部管道执行 NLP 任务…...

网络安全(黑客)自学笔记

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一是市场需求量高; 二则是发展相对成熟入门…...

spring数据校验

数据校验 概述 在开发中,会存在参数校验的情况,如:注册时,校验用户名不能为空、用户名长度不超过20个字符,手机号格式合法等。如果使用普通方式,会将校验代码和处理逻辑耦合在一起,在需要新增一…...

因材施教,有道发布“子曰”教育大模型,落地虚拟人口语教练等六大应用

因材施教的教育宗旨下,大模型浪潮中,网易有道凭借其对教育场景的深入理解和对商业化的理性思考,为行业树立了垂直大模型的典范。 7月26日,教育科技公司网易有道举办了“powered by 子曰”教育大模型应用成果发布会。会上重磅推出了…...

golang waitgroup

案例 WaitGroup 可以解决一个 goroutine 等待多个 goroutine 同时结束的场景,这个比较常见的场景就是例如 后端 worker 启动了多个消费者干活,还有爬虫并发爬取数据,多线程下载等等。 我们这里模拟一个 worker 的例子 package mainimport (…...

单列模式多学两遍

单例模式 单例模式(Singleton Pattern,也称为单件模式),使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。 定义单例类 ● 私有化它的构造函数,…...

Spring Cloud【SkyWalking网络钩子Webhooks、SkyWalking钉钉告警、SkyWalking邮件告警】(十六)

目录 分布式请求链路追踪_SkyWalking网络钩子Webhooks 分布式请求链路追踪_SkyWalking钉钉告警 分布式请求链路追踪_SkyWalking邮件告警 分布式请求链路追踪_SkyWalking网络钩子Webhooks Wbhooks网络钩子 Webhok可以简单理解为是一种Web层面的回调机制。告警就是一个事件&a…...

【力扣每日一题】2023.7.25 将数组和减半的最少操作次数

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 题目给我们一个数组,我们每次可以将任意一个元素减半,问我们操作几次之后才可以将整个数组的和减半&…...

Docker-Compose 轻松搭建 Grafana+InfluxDb 实用 Jmeter 监控面板

目录 前言: 1、背景 2、GranfanaInfluxDB 配置 2.1 服务搭建 2.2 配置 Grafana 数据源 2.3 配置 Grafana 面板 3、Jmeter 配置 3.1 配置 InfluxDB 监听器 3.2 实际效果 前言: Grafana 和 InfluxDB 是两个非常流行的监控工具,它们可…...

异构线程池的c++实现方案

概要 通常线程池是同质的,每个线程都可以执行任意的task(每个线程中的task顺序执行),如下图所示: 但本文所介绍的线程和task之间有绑定关系,如A task只能跑在A thread上(因此称为异构线程池&am…...

Python实现抽象工厂模式

抽象工厂模式是一种创建型设计模式,用于创建一系列相关或依赖对象的家族,而无需指定具体类。在Python中,可以通过类和接口的组合来实现抽象工厂模式。 下面是一个简单的Python实现抽象工厂模式的示例: # 抽象产品接口 class Abs…...

@vue/cli安装

vue/cli安装 1、全局安装vue/cli包2、查看是否成功 1、全局安装vue/cli包 yarn global add vue/cli2、查看是否成功 vue -V...

用友全版本任意文件上传漏洞复现

声明 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 文章作者拥有对此文章的修改和解释权。如欲转载或传播此文章&#xff0c…...

程序员面试系列,MySQL常见面试题?

原文链接 一、索引相关的面试题 (1)索引失效的情况有哪些 在MySQL查询时,以下情况可能会导致索引失效,无法使用索引进行高效的查询: 数据类型不匹配:如果查询条件中的数据类型与索引列的数据类型不匹配&…...

前端Web实战:从零打造一个类Visio的流程图拓扑图绘图工具

前言 大家好,本系列从Web前端实战的角度,给大家分享介绍如何从零打造一个自己专属的绘图工具,实现流程图、拓扑图、脑图等类Visio的绘图工具。 你将收获 免费好用、专属自己的绘图工具前端项目实战学习如何从0搭建一个前端项目等基础框架项…...

2023牛客暑期多校第二场部分题解

索引 ABCDEFGHIK A 队友开的题,说是其实就是问能不能用若干个数异或出来某个数。 应该就是线性基板子,然后他写了一下就过了。 B 一开始看没什么人过不是很敢开,结果到后面一看题——这不是最大权闭合子图板子吗??…...

20230724将真我Realme手机GT NEO3连接到WIN10的电脑的步骤

20230724将真我Realme手机GT NEO3连接到WIN10的电脑的步骤 2023/7/24 23:23 缘起:因为找使用IMX766的手机,找到Realme手机GT NEO3了。 同样使用IMX766的还有:Redmi Note12Pro 5G IMX766 旗舰影像 OIS光学防抖 OLED柔性直屏 8GB256GB时光蓝 现…...

黑马 pink h5+css3+移动端前端

网页概念 网页是网站的一页,网页有很多元素组成,包括视频图片文字视频链接等等,以.htm和.html后缀结尾,俗称html文件 HTML 超文本标记语言,描述网页语言,不是编程语言,是标记语言,有标签组成 超文本指的是不光文本,还有图片视频等等标签 常用浏览器 firefox google safari…...

Docker的七项优秀实践

众所周知,作为一个文本文档,Dockerfile包含了用户创建镜像的所有命令和说明。Docker可以通过读取Dockerfile中指令的方式,去自动构建镜像。因此,大家往往认为编写Dockerfile理应非常简单,只需从互联网上选择一个示例&a…...

【数据结构】24王道考研笔记——图

六、图 目录 六、图定义及基本术语图的定义有向图以及无向图简单图以及多重图度顶点-顶点间关系连通图、强连通图子图连通分量强连通分量生成树生成森林边的权、带权网/图特殊形态的图 图的存储及基本操作邻接矩阵邻接表法十字链表邻接多重表分析对比图的基本操作 图的遍历广度…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...