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

使用 BERT 进行文本分类 (01/3)

摄影:Max Chen on Unsplash

一、说明

        这是使用 BERT 语言模型的一系列文本分类演示的第一部分。以文本的分类作为例,演示它们的调用过程。

二、什么是伯特?

        BERT 代表 来自变压器的双向编码器表示。

        首先,转换器是一种深度学习模型,它使用自我注意机制,根据每个单词与其他单词的关系对其进行加权。根据注意力得分,模型可以“注意”序列中的有价值的部分。其次,BERT是双向的,这意味着它在训练时会同时考虑左上下文和右上下文。从这个意义上说,BERT模型可以从两个方向理解上下文。

三、BERT BASE 和 BERT LARGE

        BERT BASE:更少的变压器块和隐藏层大小,具有与OpenAI GPT相同的模型大小。[12个变压器块,12个注意头,768个隐藏层尺寸]

        BERT LARGE:庞大的网络,其注意力层是BERT BASE的两倍,在NLP任务上实现了最先进的结果。[24个变压器块,16个注意头,1024隐藏层尺寸]

        区别:Bert base的参数比Bert large少,因此可以用更少的计算机内存使用。Bert large具有更多的参数,因此它比Bert基数更准确。

四、伯特输入和输出

        输入:[CLS]令牌序列[SEP]

  • [CLS] 代表 分类令牌
  • [SEP] 让 BERT 知道哪个令牌属于哪个序列
  • 可以输入BERT模型的令牌的最大大小为512。因此,如果令牌小于 512,我们可以使用填充来填充空令牌;如果序列中的令牌长度超过 512,那么我们需要截断令牌。
  • BERT 模型的输出将是每个令牌中大小为 768 的嵌入向量。然后,这些令牌将成为分类器的输入。

五、 尝试一个简单的文本

        拥抱脸是一个很棒的学习场所。它提供语言模型、数据集,您甚至可以在那里学习自然语言处理!浏览其网站以获取更多信息:

拥抱面孔 - 构建未来的 AI 社区。

构建、训练和部署由机器学习中的参考开源提供支持的先进模型。超过。。。

huggingface.co

让我们从拥抱脸中导出一个语言模型,看看它对一个简单的句子有什么作用。我们需要先导入自动标记器来启动语言模型。

pip install transformers
from transformers import AutoTokenizer
tokenizer= AutoTokenizer.from_pretrained('cl-tohoku/bert-base-japanese-v2')
example_text = '今日は一日サッカーをしました'
##('I played soccer for the whole day')##
BERT_input = tokenizer(example_text,padding='max_length', max_length = 20, truncation=True, return_tensors="pt")print(BERT_input['input_ids'])
print(BERT_input['token_type_ids'])
print(BERT_input['attention_mask'])
tensor([[    2, 13711,   897,  1031,  2719, 11731,   932,   873, 13276,   881,3,     0,     0,     0,     0,     0,     0,     0,     0,     0]])
tensor([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]])

六、解释

  • 填充 :将每个序列填充到指定的最大长度。
  • max_length:每个序列的最大长度。在这个例子中,我们使用 20,但对于我们的实际数据集,我们将使用 512,这是 BERT 允许的最大序列长度。
  • 截断 :如果为 True,则每个序列中超过最大长度的标记将被截断。
  • return_tensors:将返回的张量类型。如果你使用 Pytorch,那么你将使用 pt。如果你使用Tensorflow,那么你需要使用tf。

七 什么是input_ids

我们可以解码令牌以查看input_ids是什么。

example_text = tokenizer.decode(bert_input.input_ids[0])
print(example_text)
[CLS] 今日 は 一 日 サッカー を し まし た [SEP] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD]

八、 什么是token_type_ids和attention_mask?

  • token_type_ids是一个二进制掩码,用于标识哪些令牌属于哪个序列。因为我们只有一个序列,所以所有代币都属于类 0。
  • attention_mask是一个二进制掩码,如果令牌是实词,则为 [CLS]、[SEP] 或填充。如果令牌是实词 [CLS]、[SEP],则掩码将为 1。否则,掩码将为 0。

九、总结

        在这篇文章中,我简要介绍了BERT是什么,并使用一个简单的文本来显示使用BERT的标记化结果。达门·

相关文章:

使用 BERT 进行文本分类 (01/3)

摄影:Max Chen on Unsplash 一、说明 这是使用 BERT 语言模型的一系列文本分类演示的第一部分。以文本的分类作为例,演示它们的调用过程。 二、什么是伯特? BERT 代表 来自变压器的双向编码器表示。 首先,转换器是一种深度学习模…...

layui第三方组件cron的使用

1. 首先上代码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>cron表达式生成</title><meta name"renderer" content"webkit" /><meta http-equiv"X-UA-Compatible" con…...

Linux 信号的基本概念

信号的基本概念 1. 信号的概念 信号是Linux系统响应某些条件产生的一些事件。接收到信号的进程会相应地采取一些行动。 2. 信号的生成 信号是由于某些错误条件而生成的&#xff0c;如内存段冲突、浮点处理器错误或非法指令等。信号的生成其实就是一种软件层次的中断&#x…...

神经网络基础-神经网络补充概念-31-参数与超参数

概念 参数&#xff08;Parameters&#xff09;&#xff1a; 参数是模型内部学习的变量&#xff0c;它们通过训练过程自动调整以最小化损失函数。在神经网络中&#xff0c;参数通常是连接权重&#xff08;weights&#xff09;和偏置&#xff08;biases&#xff09;&#xff0c;…...

C# Linq源码分析之Take (二)

概要 本文主要分析Linq中Take带Range参数的重载方法的源码。对于其中的一些关于Range或序列的新概念&#xff0c;不再赘述&#xff0c;请参看C# Linq源码分析之Take &#xff08;一&#xff09; 源码分析 基于Range参数的Take重载方法&#xff0c;主要分成两部分实现&#x…...

FPGA控制RGB灯WS2812B

文章目录 FPGA控制RGB灯WS2812B1、简介1.1水一水1.2程序完成目标1.3项目工程结构 2、代码3、仿真代码4、结果展示 FPGA控制RGB灯WS2812B 1、简介 1.1水一水 最近在学习WS2812B手册&#xff0c;是一个简单的协议编写&#xff0c;做的时间也算是比较久&#xff0c;相对做出了一…...

【Linux】【驱动】应用层和驱动层传输数据

【Linux】【驱动】应用层和驱动层传输数据 绪论1.如果我在应用层使用系统0 对设备节点进行打开&#xff0c;关闭&#xff0c;读写等操作会发生什么呢? 2 我们的应用层和内核层是不能直接进行数据传输的3 驱动部分的代码4 应用代码5 编译以及运行代码 绪论 Linux一切皆文件! 文…...

【第二阶段】kotlin函数引用

针对上篇传入函数参数我们也可以重新定义一个函数&#xff0c;然后在main中调用时传入函数对象 lambda属于函数类型的对象&#xff0c;需要把普通函数变成函数类型的对象&#xff08;函数引用&#xff09;&#xff0c;使用“&#xff1a;&#xff1a;” /*** You can edit, ru…...

sip网络号角喇叭 sip音柱 POE供电广播音箱 ip网络防水对讲终端 sip网络功放

SV-7042TP网络号角喇叭 一、描述 SV-7042TP是我司的一款SIP网络号角喇叭&#xff0c;具有10/100M以太网接口&#xff0c;内置有一个高品质扬声器&#xff0c;将网络音源通过自带的功放和喇叭输出播放&#xff0c;可达到功率30W。SV-7042TP作为SIP系统的播放终端&#xff0c;可…...

【网络】传输层——TCP(滑动窗口流量控制拥塞控制延迟应答捎带应答)

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 上篇文章对TCP可靠性机制讲解了一部分&#xff0c;这篇文章接着继续讲解。 &#x1f3a8;滑动窗口 在…...

Electron教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Electron是一个是使用JavaScript&#xff0c;HTML和CSS构建跨平台的桌面应用程序框架。 Electron 通过将 Chromium 和 Node.js 合并到同一个运行时环境中&#xff0c;并将其打包为 Mac&#xff0c;Windows 和 Linux 系统下的应用来实现这一目的。 Electron入门教程 …...

LVS负载均衡DR(直接路由)模式

在LVS&#xff08;Linux Virtual Server&#xff09;负载均衡中的DR&#xff08;Direct Routing&#xff09;模式下&#xff0c;数据包的流向如下&#xff1a; 客户端发送请求到负载均衡器&#xff08;LVS&#xff09;的虚拟IP&#xff08;VIP&#xff09;。负载均衡器&#x…...

14 anaconda+pycharm环境管理以及源管理

文章目录 环境管理博主使用的环境环境设置conda常用指令pycharm与环境的连接&#xff08;新2023版本后&#xff09;设置国内镜像&#xff08;源管理&#xff09;常用操作 环境管理 博主使用的环境 Anaconda3-2023.03-Windows-x86_64 pycharm-professional-2023.2 环境设置 …...

【C语言程序设计】C语言基本数据类型与表达式(思考题)

思考题 1、C语言的主要特点有哪些&#xff1f; ①简单紧凑、灵活方便&#xff0c;②是结构化的语言&#xff0c;③运算符丰富&#xff0c;④是一种高效的语言&#xff0c;⑤可直接对硬件进行操作&#xff0c;⑥具有较好的可移植性。 高效性&#xff1a;C语言是一种高级编程语言…...

Linux 网络发包流程

哈喽大家好&#xff0c;我是咸鱼 之前咸鱼在《Linux 网络收包流程》一文中介绍了 Linux 是如何实现网络接收数据包的 简单回顾一下&#xff1a; 数据到达网卡之后&#xff0c;网卡通过 DMA 将数据放到内存分配好的一块 ring buffer 中&#xff0c;然后触发硬中断CPU 收到硬中…...

Python web实战之Django的AJAX支持详解

关键词&#xff1a;Web开发、Django、AJAX、前端交互、动态网页 今天和大家分享Django的AJAX支持。AJAX可实现在网页上动态加载内容、无刷新更新数据的需求。 1. AJAX简介 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一种在网页上实现异步通信的技术。通过…...

spring boot实现实体类参数自定义校验

安装依赖项 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>1、新建实体类 Data public class UserEntity {private String name;private Integer age;…...

网络安全威胁与防御策略

第一章&#xff1a;引言 随着数字化时代的快速发展&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。然而&#xff0c;网络的广泛应用也引发了一系列严峻的网络安全威胁。恶意软件、网络攻击、数据泄露等问题层出不穷&#xff0c;给个人和企业带来了巨大的风险。本文…...

C++:哈希表——模拟散列表

模拟散列表 维护一个集合&#xff0c;支持如下几种操作&#xff1a; 1.“I x”&#xff0c;插入一个数x 2.“Q x”&#xff0c;询问数x是否在集合中出现过 现在要进行N次操作&#xff0c;对于每个询问操作输出对应的结果 输入格式 第一行包含整数N&#xff0c;表示操作数量 …...

项目配置中心介绍

目录 什么是配置中心 为什么要有配置中心 配置中心的做法&#xff08;读取和通知&#xff09; 配置中心优点: 常用的配置中心中间件 什么是配置中心 配置中心就是用来管理项目当中所有配置的系统&#xff0c;也是微服务系统当中不可或缺的一部分。项目的配置文件不放到本地…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...