| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 基于tensorflow2.x的nlp任务(一) -> 正文阅读 |
|
[人工智能]基于tensorflow2.x的nlp任务(一) |
????????作为一个一直使用tf1.x版本的人,为了继续使用google强大的开源技术,同时也为了适配高级的3090系列显卡,还是学习了一下tf2.x版本,并重构了一些nlp相关任务的代码,将其全部用tf2.0版本替换。 ????????为了记录详细的nlp任务过程,本篇博文主要先记录一下从文本数据读取到处理成为batch数据输入到模型训练的一系列过程;这个过程可以主要分为tokenizer,embedding和data_generator这几个步骤。 一、Tokenizer ????????这个单词顾名思义就是将文本转换成token的表现形式,一个完整的句子是由很多个字词组成的,我们首先要将句子转成向量的形式,最简单的方法就是给每个字或者词对应唯一的id编号,这个id也就是token。 句子转换成tokens表示需要进行一下几个简单的步骤: 1.分词或分字 通常用jieba分词器就可以分词 2.词频和词性过滤 通过词频和词性过滤一些不需要的词或字 3.句子补齐padding 对于训练的数据需要输入定长序列,因此需要进行补齐和裁剪的操作 4.词/字索引表和标签索引表的构建 在处理完成所有的句子后,需要构建字/词和id对应的索引表并保存,方便模型训练玩后的预测过程的使用。 5.保存所有训练数据的tokens,方便后续更换模型的时候不需要再重新进行之前的处理步骤。
二、embedding ????????在完成每个字/词的tokenizer的步骤之后,需要将句子进行embedding的嵌入,也就是进行浅层语义特征的提取。比较常见的几种方法有,词频表示,tf-idf表示,one-hot词向量表示,word2vec词向量表示。下面的代码是gensim加载训练好的词向量的代码:
三、data_generator ????????这一部分主要是生成训练数据,需要将数据划分成训练集和测试集,并以batch_size的形式输入到模型中进行训练,一般batch_size可设置成8,16,32,64等2的次方数,每次模型学习batch的数据,然后进行梯度下降更新模型参数,完成一次所有的batch数据的学习后称一个epoch。
????????文本数据的预处理是文本任务的第一步也是非常重要的一步,以上讲的都是比较常规的处理步骤,还有很多实际其他的预处理的方法也非常重要,例如样本数据不均衡,数据增强等提高数据质量的预处理手段。当然不是本系列博客的重点,如果有机会可以把这些内容也补全。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 23:39:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |