| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Bert模型输入输出大揭秘 -> 正文阅读 |
|
[人工智能]Bert模型输入输出大揭秘 |
2021SC@SDUSC 1.简介 Bert在自然语言处理(NLP)领域刷新了 11 个任务的记录,万众瞩目,成为异常火热的一个预训练语言模型。相信不少人入门学习Bert模型都倾向于提纲挈领,先明白它的输入输出形式以及预训练过程中的处理,本文结合代码和相应的数据集带大家一起解密Bert模型的输入输出。 2.输入输出处理 这是一个运用bert模型对句子进行分类的应用的原始数据集(训练集)形式,由上图不难看出该数据集由关键词、关键词位置、文本和标签四个属性组成。而最终经过处理得到的能够直接传入bert模型进行预测的数据形式如下图: 这其中有一些基本概念在我的上一篇博客中有所说明,大家可以参考: (80条消息) 文本分类半监督学习_永远只有12划的博客-CSDN博客 下面引入相关的代码来进行分析: ?第一段代码定义了一个get_train_examples方法和train_examples数组分别对原始数据集进行预处理和结构化存储。 第二段代码首先对每一个字段进行了bert分词和编码工作,即将每一个词映射到词向量空间中进行编码,将所有词转换成向量。接着定义了len_padding变量,这是为了确保所有句子经过编码后的最终长度相同,一般在配置文件中会设置一个max_sequence_len作为所有句子编码后的最后长度,所以对于一些长度不够的句子就需要进行填充(padding)。根据代码最后解释一下[101],[102]。需要了解 BERT 分词器(tokenizer)将这些句子划分成词(token),然后,我们再加入句子分类所需的特殊词(在句子开始加入 [CLS],末端加入 [SEP])。因此不难想到[CLS]对应于词向量空间的[101],而[SEP]对应词向量空间的[102]。至此一个能够直接放入Bert模型进行训练或预测的数据集就完成了。 数据集和代码附上github网址如下: https://github.com/XuelinLuu/NLPwithDisasterTweetshttps://github.com/XuelinLuu/NLPwithDisasterTweets? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 8:47:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |