使用 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. 信号的生成 信号是由于某些错误条件而生成的,如内存段冲突、浮点处理器错误或非法指令等。信号的生成其实就是一种软件层次的中断&#x…...
神经网络基础-神经网络补充概念-31-参数与超参数
概念 参数(Parameters): 参数是模型内部学习的变量,它们通过训练过程自动调整以最小化损失函数。在神经网络中,参数通常是连接权重(weights)和偏置(biases),…...
C# Linq源码分析之Take (二)
概要 本文主要分析Linq中Take带Range参数的重载方法的源码。对于其中的一些关于Range或序列的新概念,不再赘述,请参看C# Linq源码分析之Take (一) 源码分析 基于Range参数的Take重载方法,主要分成两部分实现&#x…...
FPGA控制RGB灯WS2812B
文章目录 FPGA控制RGB灯WS2812B1、简介1.1水一水1.2程序完成目标1.3项目工程结构 2、代码3、仿真代码4、结果展示 FPGA控制RGB灯WS2812B 1、简介 1.1水一水 最近在学习WS2812B手册,是一个简单的协议编写,做的时间也算是比较久,相对做出了一…...
【Linux】【驱动】应用层和驱动层传输数据
【Linux】【驱动】应用层和驱动层传输数据 绪论1.如果我在应用层使用系统0 对设备节点进行打开,关闭,读写等操作会发生什么呢? 2 我们的应用层和内核层是不能直接进行数据传输的3 驱动部分的代码4 应用代码5 编译以及运行代码 绪论 Linux一切皆文件! 文…...
【第二阶段】kotlin函数引用
针对上篇传入函数参数我们也可以重新定义一个函数,然后在main中调用时传入函数对象 lambda属于函数类型的对象,需要把普通函数变成函数类型的对象(函数引用),使用“::” /*** You can edit, ru…...
sip网络号角喇叭 sip音柱 POE供电广播音箱 ip网络防水对讲终端 sip网络功放
SV-7042TP网络号角喇叭 一、描述 SV-7042TP是我司的一款SIP网络号角喇叭,具有10/100M以太网接口,内置有一个高品质扬声器,将网络音源通过自带的功放和喇叭输出播放,可达到功率30W。SV-7042TP作为SIP系统的播放终端,可…...
【网络】传输层——TCP(滑动窗口流量控制拥塞控制延迟应答捎带应答)
🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言:你只管努力,剩下的交给时间! 上篇文章对TCP可靠性机制讲解了一部分,这篇文章接着继续讲解。 🎨滑动窗口 在…...
Electron教程_编程入门自学教程_菜鸟教程-免费教程分享
教程简介 Electron是一个是使用JavaScript,HTML和CSS构建跨平台的桌面应用程序框架。 Electron 通过将 Chromium 和 Node.js 合并到同一个运行时环境中,并将其打包为 Mac,Windows 和 Linux 系统下的应用来实现这一目的。 Electron入门教程 …...
LVS负载均衡DR(直接路由)模式
在LVS(Linux Virtual Server)负载均衡中的DR(Direct Routing)模式下,数据包的流向如下: 客户端发送请求到负载均衡器(LVS)的虚拟IP(VIP)。负载均衡器&#x…...
14 anaconda+pycharm环境管理以及源管理
文章目录 环境管理博主使用的环境环境设置conda常用指令pycharm与环境的连接(新2023版本后)设置国内镜像(源管理)常用操作 环境管理 博主使用的环境 Anaconda3-2023.03-Windows-x86_64 pycharm-professional-2023.2 环境设置 …...
【C语言程序设计】C语言基本数据类型与表达式(思考题)
思考题 1、C语言的主要特点有哪些? ①简单紧凑、灵活方便,②是结构化的语言,③运算符丰富,④是一种高效的语言,⑤可直接对硬件进行操作,⑥具有较好的可移植性。 高效性:C语言是一种高级编程语言…...
Linux 网络发包流程
哈喽大家好,我是咸鱼 之前咸鱼在《Linux 网络收包流程》一文中介绍了 Linux 是如何实现网络接收数据包的 简单回顾一下: 数据到达网卡之后,网卡通过 DMA 将数据放到内存分配好的一块 ring buffer 中,然后触发硬中断CPU 收到硬中…...
Python web实战之Django的AJAX支持详解
关键词:Web开发、Django、AJAX、前端交互、动态网页 今天和大家分享Django的AJAX支持。AJAX可实现在网页上动态加载内容、无刷新更新数据的需求。 1. AJAX简介 AJAX(Asynchronous JavaScript and XML)是一种在网页上实现异步通信的技术。通过…...
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;…...
网络安全威胁与防御策略
第一章:引言 随着数字化时代的快速发展,网络已经成为人们生活和工作中不可或缺的一部分。然而,网络的广泛应用也引发了一系列严峻的网络安全威胁。恶意软件、网络攻击、数据泄露等问题层出不穷,给个人和企业带来了巨大的风险。本文…...
C++:哈希表——模拟散列表
模拟散列表 维护一个集合,支持如下几种操作: 1.“I x”,插入一个数x 2.“Q x”,询问数x是否在集合中出现过 现在要进行N次操作,对于每个询问操作输出对应的结果 输入格式 第一行包含整数N,表示操作数量 …...
项目配置中心介绍
目录 什么是配置中心 为什么要有配置中心 配置中心的做法(读取和通知) 配置中心优点: 常用的配置中心中间件 什么是配置中心 配置中心就是用来管理项目当中所有配置的系统,也是微服务系统当中不可或缺的一部分。项目的配置文件不放到本地…...
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; 左…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...
大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
