『深度学习7日打卡营·快速入门特辑』案例学习-百度飞桨paddlepaddle课程系列
NLP+开源社区
-
Day04-NLP案例_利用情感分析选择年夜饭
-
NLP前置知识
-
NLP任务力度:字、词语、句子、篇章
-
分词、识别、搜索、文章视频推荐、智能客服、对话、文章识别
-
情感分析
-
场景示例
-
文本分类通用步骤
-
自然语言为什么处理为向量
-
怎么处理为向量
-
好的词向量示意——能体现语义
-
高维转化二位t-SNE
-
-
原理介绍
-
原理图
-
batch_size 128,批处理句子
-
黑盒子输出 学到句子向量 图中5
-
具体解释
-
更接近实际,不过前面标注的返利,词向量维度为5
-
句子必须统一相同长度才能批处理——截断、补齐
-
词向量->句子向量:刻画句子语义信息
-
1.加权平均
-
2.序列建模如LSTM
-
3.预训练模型 Bert Transform
-
-
RNN
-
RNN具体
-
从左到右依次处理,调用相同的网络单元
-
LSTM
-
具体
-
分类
-
-
情感分类实践
-
步骤和函数->
-
数据集和数据处理
-
paddle.io.Dataset
-
paddle.io.DataLoader
-
paddlenlp.data
-
-
组网和网络配置
-
paddle.nn.Embedding
-
paddlenlp.seq2vec paddle.nn.Linear
-
paddle.tanh
-
paddle.nn.CrossEntropyLoss
-
paddle.metric.Accuracy
-
paddle.optimizer
-
model.prepare
-
-
网络训练和评估
-
model.fit
-
model.evaluate
-
-
预测 model.predict
-
-
实践
-
1.导入常用库
-
import numpy as npfrom functools
-
import partialimport paddle.nn as nn
-
import paddle.nn.functional as F
-
import paddlenlp as ppnlp
-
from paddlenlp.data import Pad, Stack, Tuple
-
from paddlenlp.datasets import MapDatasetWrapper
-
from utils import load_vocab, convert_example
-
-
2.自定义数据集
-
__getitem__: 根据给定索引获取数据集中指定样本,在 paddle.io.DataLoader 中需要使用此函数通过下标获取样本。
-
__len__: 返回数据集样本个数, paddle.io.BatchSampler 中需要样本个数生成下标序列。
-
-
-
-
-
-
-
Day05-NLP案例_让计算机为你写对联
-
目标:认识seq2seq,LSTM,Attention机制,熟悉飞桨高层API
-
文本生成属于seq2s
-
编码器-解码器
-
内部为LSTM GRU等单元
-
-
右侧图片示例-机器翻译
-
输出时一个一个输出,而不是全部
-
缺点:普通encoder-decoder,无法充分利用输入序列信息
-
——引入Attention机制解决这个问题
-
-
Attention机制
-
通俗理解
-
给予单词不同的关注度
-
-
基本原理
-
数据处理工作
-
切字——>ID——>one-hot表示
-
词向量大表(word2vec,glove)取到之前三个字的向量——操作就是矩阵相乘——>词向量
-
embedding 3 500 128
-
输出到网络中,然后得到句子向量
-
得到句子向量
-
区别: begID endID
-
-
LSTM
-
h 初始化的隐藏状态hidden state
-
c记忆信号
-
x输入
-
原理
-
对比RNN,可以处理特别长的句子,表示能力较强
-
这个只堆了两层,很少有3层以上的,训不动
-
x=paddle.randn((128,29,64)) 64一批,每句统一20 词,128维
-
只记录最后时刻h c
-
-
Attention机制
-
-
-
-
Day06-开源社区
-
为什么开源
-
玩法
-
代码托管
-
创建项目基础文件
-
开源协议 Apache license
-
Readme
-
贡献指南
-
行为准则
-
-