Skip to content

Latest commit

 

History

History
 
 

nlp

【入门须知】必须了解

nlp 学习书籍和工具:

nlp 全局介绍视频:(简单做了解就行)

地址链接: http://bit.baidu.com/Course/detail/id/56.html

  1. 自然语言处理知识入门
  2. 百度机器翻译
  3. 篇章分析
  4. UNIT:语言理解与交互技术

中文 NLP

开源 - 词向量库集合

深度学习必学

  1. 反向传递: https://www.cnblogs.com/charlotte77/p/5629865.html
  2. CNN原理: http://www.cnblogs.com/charlotte77/p/7759802.html
  3. RNN原理: https://blog.csdn.net/qq_39422642/article/details/78676567
  4. LSTM原理: https://blog.csdn.net/weixin_42111770/article/details/80900575

Word2Vec 原理:

  1. 负采样

介绍: 自然语言处理领域中,判断两个单词是不是一对上下文词(context)与目标词(target),如果是一对,则是正样本,如果不是一对,则是负样本。 采样得到一个上下文词和一个目标词,生成一个正样本(positive example),生成一个负样本(negative example),则是用与正样本相同的上下文词,再在字典中随机选择一个单词,这就是负采样(negative sampling)。

案例: 比如给定一句话“这是去上学的班车”,则对这句话进行正采样,得到上下文“上”和目标词“学”,则这两个字就是正样本。 负样本的采样需要选定同样的“上”,然后在训练的字典中任意取另一个字,如“我”、“梦”、“目”,这一对就构成负样本。 训练需要正样本和负样本同时存在。

优势: 负采样的本质:每次让一个训练样本只更新部分权重,其他权重全部固定;减少计算量;(一定程度上还可以增加随机性)

nlp 操作流程

本项目 试图通过名字分类问题给大家描述一个基础的深度学习中自然语言处理模型,同时也向大家展示了Pytorch的基本玩法。 其实对于大部分基础的NLP工作,都是类似的套路:

  1. 收集数据
  2. 清洗数据
  3. 为数据建立字母表或词表(vocabulary或者叫look-up table)
  4. 根据字母表或者词表把数据向量化
  5. 搭建神经网络,深度学习中一般以LSTM或者GRU为主,按照需求结合各种其他的工具,包括embedding,注意力机制,双向RNN等等常见算法。
  6. 输入数据,按需求得到输出,比如分类模型根据类别数来得到输出,生成模型根据指定的长度或者结束标志符来得到输出等等。
  7. 把输出的结果进行处理,得到最终想要的数据。常需要把向量化的结果根据字母表或者词表变回文本数据。
  8. 评估模型。

如果真的想要对自然语言处理或者序列模型有更加全面的了解,建议大家去网易云课堂看一看吴恩达深度学习微专业中的序列模型这一板块,可以说是讲的非常清楚了。 此外极力推荐两个blog:

  1. 讲述RNN循环神经网络在深度学习中的各种应用场景。http://karpathy.github.io/2015/05/21/rnn-effectiveness/
  2. 讲述LSTM的来龙去脉。http://colah.github.io/posts/2015-08-Understanding-LSTMs/

最后,本文参考整合了:

nlp - 比赛链接


【比赛收集平台】: https://github.com/iphysresearch/DataSciComp