PaddlePaddle自然语言处理总结
创始人
2024-02-26 14:09:49
0

11月28日 week14 周一 910节 物联201 2008070101

本文总结:

1.介绍词向量引入对自然语言处理有着至关重要的作用;

2.介绍了word2vec算法;

3.介绍CBOW算法的实现;

4.介绍Skip-Gram算法的实现。

基本流程

1.数据预处理:选择需要使用的数据,做好预处理;

2.网络定义:预先定义好网络结构,包括输入层、中间层(隐藏层)、输出层、损失函数和优化算法;

3.网络训练:将准备好的数据送入神经网络进行学习,并观察学习的过程是否正常,如损失函数值是否在降低,也可以及时返回一些关键步骤的结果;

4.网络评估:使用测试集合测试训练好的神经网络,看看训练效果如何。

参考链接:飞桨PaddlePaddle-源于产业实践的开源深度学习平台

目录

词向量

word2vec算法

CBOW算法

1.输入层

2.隐藏层

3.输出层

Skip-Gram算法 

1.结构 

2.实现

代表中心词的tensor

代表目标词的tensor

代表目标词标签的tensor


词向量

[1.]词向量(Word Embedding)的引入:表示自然语言里单词的一种方法,把每个词都表示为一个N维空间内的点,即一个高维空间内的向量,使用这个方法可以把自然语言转换为向量。

通过计算这些向量之间的距离,就可以计算出词语之间的关联关系,从而达到让计算机像计算数值一样去计算自然语言的目的。

word2vec算法

[2.]word2vec算法:通过上下文来学习语义信息,word2vec包括两个经典模型:CBOW(continuous bag-of-words)和Skip-gram;

CBOW:通过上下文的词向量推理中心词。

Skip-gram:根据中心词推理上下文。

一般来说,CBOW比Skip-gram训练速度快,训练过程更加稳定,原因是CBOW使用上下文average的方式进行训练,每个训练step会见到更多样本。而在生僻字(出现频率低的字)处理上,skip-gram比CBOW效果更好,原因是skip-gram不会刻意回避生僻字(CBOW结构中输入中存在生僻字时,生僻字会被其它非生僻字的权重冲淡)。 

CBOW算法

[3.]CBOW算法实现:CBOW是一个具有3层结构的神经网络;

1.输入层

一个形状为C*V的one-hot张量,其中C代表上线文中词的个数,通常是一个偶数,我们假设为4;V表示词表的大小,我们假设为5000,该张量的每一行都是一个上下文词的one-hot向量表示,比如"Pineapples, are, and, yellow"。

2.隐藏层

一个形状为V*N的参数张量W1,一般称为word-embedding,N表示每个词的词向量长度,我们假设为128。输入张量和word embedding W1进行矩阵乘法,就会得到一个形状为C*N的张量。综合考虑上下文中所有词的信息去推理中心词,因此将上下文中C个词相加得一个1×N的向量,是整个上下文的一个隐含表示。

3.输出层

创建另一个形状为N×V的参数张量,将隐藏层得到的1×N的向量乘以该N×V的参数张量,得到了一个形状为1×V的向量。最终,1×V的向量代表了使用上下文去推理中心词,每个候选词的打分,再经过softmax函数的归一化,即得到了对中心词的推理概率:

Skip-Gram算法 

[4.]Skip-Gram算法实现

1.结构 

 

2.实现

在实现的过程中,通常会让模型接收3个tensor输入:

代表中心词的tensor

称之为center_words V,一般来说,这个tensor是一个形状为[batch_size,vocab_size]的one-hot tensor,表示一个mini-batch中每个中心词具体的ID。

代表目标词的tensor

称之为target_words T,一般来说,这个tensor同样是一个形状为[batch_size,vocab_size]的one-hot tensor,表示一个mini-batch中每个目标词具体的ID。

代表目标词标签的tensor

假设我们称之为labels L,一般来说,这个tensor是一个形状为[batch_size,1]的tensor,每个元素不是0就是1(0:负样本,1:正样本)。

上一篇:Qt excel 操作使用说明

下一篇:Azure CDN

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...