• PaddlePaddle自然语言处理总结


    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:正样本)。

  • 相关阅读:
    医院用故障电弧探测器AAFD 安科瑞 时丽花
    你知道如何实现游戏中的透视效果吗?
    《乔布斯传》英文原著重点词汇笔记(十五)【 chapter fourteen】
    用html编写的简易新闻页面
    27-搭建LVS-DR+Nginx高可用模式
    GitLab CI/CD关键词(九):作业依赖needs,GitLab Pages pages,制品依赖 dependencies
    mNetAssist(arm64)linux下图形界面的网络调试助手
    如何利用Flutter框架开发运行小程序
    你能解释一下Spring AOP(面向切面编程)的概念和用法吗?在Spring中,如何使用事务管理?
    金九21道Java面试题推荐及剖析(数据库+JVM+微服务+高并发)分享
  • 原文地址:https://blog.csdn.net/m0_57656758/article/details/128085042