bert入门

news2024/9/29 3:29:35

bert是什么

        BERT(Bidirectional Encoder Representations from Transformers)是一种自然语言处理(NLP)中的预训练模型,它是基于Transformer架构的一种深度学习模型。BERT的主要目标是在大规模文本语料库上进行预训练,然后可以通过微调来用于各种NLP任务,例如文本分类、命名实体识别、问答等。

         BERT的核心思想是在大规模文本语料库上进行预训练。在大量的文本数据上进行了自我学习,以学习单词、短语和句子之间的语义关系。BERT使用了两个预训练任务来训练模型:

  • 掩盖语言建模(Masked Language Modeling,MLM):在输入文本中,随机选择一些单词并将它们替换为特殊的"[MASK]"标记,然后模型的任务是预测这些标记的原始单词。
  • 下一句预测(Next Sentence Prediction,NSP):模型接受一对句子作为输入,并预测这两个句子是否是连续的。 

        BERT在通过大量数据进行预训练后,会生成一个预训练模型。预训练模型包含了在大规模文本语料库上学习到的单词、短语和句子的语义表示。这个模型可以用于各种NLP任务,同时也可以通过微调来进一步优化,以适应特定任务的需求。

bert能干什么

        BERT还是比较强大的,可以在多种NLP任务中发挥作用。

  1. 文本分类:BERT可以用于对文本进行分类,例如情感分析(判断文本是正面还是负面情感)、主题分类等。通过微调BERT模型,可以对不同的文本进行分类。

  2. 命名实体识别(NER):BERT可以识别文本中的命名实体,如人名、地名、组织名等。可以用于信息提取、文本注释等任务中。

  3. 问答系统(QA):BERT可以用于构建问答系统,它可以理解问题并在文本中找到相关的答案。在搜索引擎、智能助手和知识图谱等应用中具有重要价值。

  4. 机器翻译:BERT可以用于机器翻译任务,通过将源语言文本编码为BERT表示,然后将其解码为目标语言文本。

  5. 文本生成:BERT可以用于生成文本,包括生成摘要、自动化写作、对话生成等任务。结合生成型模型,BERT可以生成自然流畅的文本。

  6. 信息检索:BERT可以改进搜索引擎的性能,通过更好地理解用户查询来提供相关的搜索结果。

  7. 语言理解:BERT的预训练表示可以用于许多其他语言理解任务,如自动摘要、文本聚类、句法分析等。

  8. 语义相似度计算:BERT可以用于计算两个文本之间的语义相似度,这在信息检索和推荐系统中很有用。

  9. 情感分析:BERT可以分析文本中的情感,用于了解用户对产品、服务或事件的情感倾向。

  10. 对话系统:BERT可以用于构建智能对话系统,能够理解和生成自然语言对话。

bert如何用

        使用BERT模型通常分为两个主要步骤:预训练和微调。

        首先,对BERT进行预训练,生成一个预训练模型。预训练模型包含了在大规模文本语料库上学习到的单词、短语和句子的语义表示。

        BERT应用分为预训练、微调、推理三个步骤。

        预训练:首先要准备数据,需要大规模的文本数据。这些数据需要进行预处理,包括分词、标记化、去除停用词等,以便将其转化为模型可接受的格式。

        然后,需要获取经过预训练的BERT模型,通常可以在互联网上或深度学习框架的模型库中找到预训练的BERT模型权重。使用预处理后的文本数据,对BERT模型进行预训练。这一步通常需要大量计算资源和时间,因此常常在大型计算集群或云平台上进行。

        训练完成后,将生成预训练的BERT模型,供后续微调和应用。

        微调:准备与该任务相关的标记化数据。例如,进行文本分类,那么需要一个包含文本和标签的数据集。加载之前预训练好的BERT模型权重,然后将其嵌入到任务特定模型中。使用任务数据对整个模型进行微调,以适应具体任务。微调的目标是通过反向传播算法来调整模型的权重,以最大程度地提高任务性能。在微调完成后,使用验证数据集来评估模型的性能。

        推理:一旦微调完成并选择了最佳模型,就可以将该模型用于推理阶段,用来处理新的文本数据并产生预测或输出。对于新的文本数据,需要进行与预训练数据相同的预处理,包括分词、标记化等。将新数据传递给微调后的BERT模型,以获得模型的输出。

bert具体操作demo

        在使用BERT之前,首先需要具备如下环境:

        1.python 环境 我用的是3.8.5的

        2.相应的引用

pip install bert

pip install bert-tensorflow

pip install bert-serving-server --user

pip install bert-serving-client --user

pip install tensorflow==1.13.1

        3.代码下载 

谷歌的bert地址

        打开该地址后,页面搜索chinese,找到 如下内容。

        点击 BERT-Base, Chinese下载中文的预训练模型,也可以根据自己需要下载对应的模型。下载当前代码,使用pyCharm打开。

找到run_classifier.py文件,配置参数 运行它。

参数配置: parameters中具体内容:

--data_dir=data \
--task_name=sim \
--vocab_file=../GLUE/BERT_BASE_DIR/chinese_L-12_H-768_A-12/vocab.txt \
--bert_config_file=../GLUE/BERT_BASE_DIR/chinese_L-12_H-768_A-12/bert_config.json \
--output_dir=sim_model \
--do_train=true \
--do_eval=true \
--init_checkpoint=../GLUE/BERT_BASE_DIR/chinese_L-12_H-768_A-12/bert_model.ckpt \
--max_seq_length=70 \
--train_batch_size=32 \
--learning_rate=2e-5 \
--num_train_epochs=3.0 \

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

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

相关文章

自动求导,计算图示意图及pytorch实现

pytorch实现 x1 torch.tensor(3.0, requires_gradTrue) y1 torch.tensor(2.0, requires_gradTrue) a x1 ** 2 b 3 * a c b * y1 c.backward() print(x1.grad) print(y1.grad) print(x1.grad 6 * x1 * y1) print(y1.grad 3 * (x1 ** 2))输出为: tensor(36.) …

uniapp-vue3-弹出选择组件wo-pop-selector

wo-pop-selector弹出选择组件采用uniapp-vue3实现, 支持H5、微信小程序&#xff08;其他小程序未测试过&#xff0c;可自行尝试&#xff09; 可到插件市场下载尝试&#xff1a; https://ext.dcloud.net.cn/plugin?id14879 使用示例 <template><view><view c…

GBU808-ASEMI小功率开关电源GBU808

编辑&#xff1a;ll GBU808-ASEMI小功率开关电源GBU808 型号&#xff1a;GBU808 品牌&#xff1a;ASEMI 芯片个数&#xff1a;4 封装&#xff1a;GBU-4 恢复时间&#xff1a;&#xff1e;50ns 工作温度&#xff1a;-55C~150C 浪涌电流&#xff1a;200A 正向电流&#…

微信小程序报错request:fail -2:net::ERR_FAILED(生成中间证书)

微信小程序报错request:fail -2:net::ERR_FAILED-生成中间证书 前言一、检查网站ssl证书二、生成证书方法1.获取中间证书手动合并1.进入网站&#xff1a;[https://www.myssl.cn/tools/downloadchain.html](https://www.myssl.cn/tools/downloadchain.html)2.点击下一步3.手动合…

【Vue面试题十四】、说说你对vue的mixin的理解,有什么应用场景?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;说说你对vue的mixin的理…

abap代码优化和性能调优工具

select/end select与loop类似是循环&#xff08;一个是对数据库表&#xff0c;一个是对内表&#xff09; select *效率低于select 字段1 字段2... select 主键1 主键2 主键3 非主键4效率高于select 主键1 主键2 非主键4. into table 内表效率高于into corresponding fields …

Linux动态链接库.so文件

一、动态库和静态库的区别 库是一个二进制文件&#xff0c;包含的代码可以被程序调用&#xff0c;如标准库、线程库。Windows 和 Linux下的库文件格式不兼容。 Windows环境&#xff1a;静态库是 .lib 文件&#xff0c;共享库是 .dll 文件 Linux环境&#xff1a;静态库是 .a 文…

IC工程师职场必备《经典Verilog100多个代码案例》(附下载)

对于IC行业的人员而言&#xff0c;Verilog是最基础的入门&#xff0c;用于数字电路的系统设计&#xff0c;很多的岗位都会用到&#xff0c;可对算法级、门级、开关级等多种抽象设计层次进行建模。 Verilog由于其简单的语法&#xff0c;和C语言的相似性&#xff0c;目前被各大公…

uni-app:js时间与时间戳之间的转换

运行结果 代码 <template><view></view> </template><script>export default {data() {return {}},onLoad() {//时间转换为时间戳&#xff08;十位时间戳即秒级时间戳&#xff09;const time 2023-10-01 12:34:56; // 时间格式为年-月-日 时:分…

BlowFish加解密原理与代码实现

BlowFish加解密原理与代码实现 一丶简介 ​ BlowFish 是一个对称加密的加密算法。由Bruce Schneier&#xff0c;1993年设计的。是一个免费自由使用的加密算法。 了解的必要知识 BlowFish是一个对称区块加密算法。每次加密数据为 64位 &#xff08;2个int)类型数据大小。八个…

Maven 引入外部依赖

如果我们需要引入第三方库文件到项目&#xff0c;该怎么操作呢&#xff1f; pom.xml 的 dependencies 列表列出了我们的项目需要构建的所有外部依赖项。 要添加依赖项&#xff0c;我们一般是先在 src 文件夹下添加 lib 文件夹&#xff0c;然后将你工程需要的 jar 文件复制到 …

mac(M1)卸载miniconda3

参考https://stackoverflow.com/questions/29596350/how-to-uninstall-mini-conda-python step1 因为我目前只有一个base环境&#xff0c;所以直接在这个环境中安装 anaconda-clean即可 conda install anaconda-clean然后继续输入 anaconda-clean如果不加–yes&#xff0c;那…

精品Python考务监考管理系统

《[含文档PPT源码等]精品Python考务管理系统的设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;python 使用框架&#xff1a;Django 前端技术&#xff1a;JavaSc…

SECS/GEM封装库RapidSecs开发手记HMSM

四. SECS/GEM封装库RapidSecs开发手记-基础库开发-1 https://blog.csdn.net/jxb_memory/article/details/105739410 secsgem https://www.cnpython.com/pypi/secsgem

95740-26-4|用于体内DNA合成的探针F-ara-EdU

产品简介&#xff1a;(2S)-2-Deoxy-2-fluoro-5-ethynyluridine&#xff0c;一种用于体内DNA合成的探针&#xff0c;其毒性比EdU和BrdU都小。当需要延长细胞存活时间和不受干扰的细胞周期进展时&#xff0c;非常适合进行代谢DNA标记。 CAS号&#xff1a;95740-26-4 分子式&…

2023腾讯云双11优惠活动服务器价格预测

2023腾讯云服务器双十一有活动吗&#xff1f;有的&#xff0c;双11轻量应用服务器和云服务器CVM均有活动&#xff0c;只是现在还未开启&#xff0c;一般为11月1日开始&#xff0c;活动时间持续1个月时间&#xff0c;腾讯云百科txybk.com预测一下2023年腾讯云服务器双十一优惠活…

链表常见问题

1.实现一个链表 public class Linked {public Node first;public Node last;//头插public void addFirst(int data){//获取原头节点Node f first;//创建新节点Node newNode new Node(data);//指向新头节点first newNode;//if(f null){last newNode;}else {newNode.next …

POI 和 EasyExcel 操作 Excel

一、概述 目前操作 Excel 比较流行的就是 Apache POI 和阿里巴巴的 easyExcel。 1.1 POI 简介 Apache POI 是用 Java 编写的免费开源的跨平台的 Java API&#xff0c;Apache POI 提供 API 给 Java 程序对 Microsoft Office 格式文档读和写的常用功能。POI 为 “Poor Obfuscati…

【工作流引擎】Activiti的使用01

基础配置 依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM…

Promise resolver undefined is not a function

错误的代码 function handlUsernameOrEmail(rules,value,){const regex /^([a-zA-Z0-9_-])([a-zA-Z0-9_-])(\.[a-zA-Z0-9_-]){1,2}$/;if(regex.test(value)){return new Promise().resolve(成功);}else {return new Promise().reject(失败);}// console.log(rules,rules,valu…