如何系统性地学习NLP 自然语言处理?

当前NLP技术发展非常迅速,但是缺少系统性的学习资料
收藏者
0
被浏览
79

5 个回答

huanzhijin LV

发表于 2025-4-9 15:50:03

我的方法是:理论+实践+总结!
跟着下面的一个NLP从0到1超强打怪升级的学习路线图,我相信不出6个月,Boss直聘上的岗位可以随便挑了!
先了解NLP语言和一些基本算法,如分类、集成、降维等算法。
定义

自然语言处理 (NLP)是人工智能或 AI 的一个分支,它关注的是让计算机能够以与人类几乎相同的方式理解文本和口语。NLP结合了计算机科学、人工智能和语言学等领域的知识,目标是开发出能够处理文本和语言数据的智能系统任务包括文本分类、情感分析、命名实体识别、语义理解、机器翻译和问答系统等。
掌握数学基础

1、线性代数
2、概率论与数理统计
3、微积分
4、优异化方法
5、图论
6、复杂性理论
每个方向有细分很多,比如说统计学
图形可视化(饼图、条形图、热力图、折线图、箱线图、散点图、雷达图、仪表盘)
数据度量标准(平均数、中位数、众数、期望、方差、标准差)
概率分布(几何分布、二项分布、正态分布、泊松分布)
统计假设检验
举个例子,就拿线性代数来说
可以研究向量、向量空间(或称线性空间)、线性变换(特别是矩阵表示的线性映射)等概念。在机器学习中,数据经常以向量形式表示,特别是在深度学习领域,大量的网络结构,如卷积神经网络、循环神经网络都需要使用到线性代数的知识。
需要学习的编程语言

这里我推荐Python,像NLP包括很多概念,如pos标签、符号化、标记化等。而其中的重点就是标记化。根据所构建的项目内容不同,标记的内容也不同。在这一方面,python有很好的API能完成这些项目。
你需要做的就是做大量的Python任务类的练习,来检测自己的Python能力,再查缺补漏,接着就是要对前面所提到的机器学习和深度学习基础有着比较深刻的认识;
掌握基本算法


  • 回归算法
  • 优化算法
  • 分类算法
  • 聚类算法
  • 深度学习算法
  • 降维算法
  • 概率图模型算法
  • 文本挖掘算法
对于每种算法的原理和应用场景,可以尝试掌握其核心思想和关键步骤

如何系统性地学习NLP 自然语言处理?-1.jpg

假设现在有两枚硬币1和硬币2,,随机抛掷后正面朝上概率分别为 P1,P2。为了估计这两个概率,做实验,每次取一枚硬币,连掷 5 下,记录下结果,如下表所示:

如何系统性地学习NLP 自然语言处理?-2.jpg

这时候,根据最大似然估计,可以很容易地估计出 P1 和 P2,如下所示:

  • P1 = (3+1+2)/ 15 = 0.4
  • P2 = (2+3)/ 10 = 0.5
现在我们抹去每轮投掷时使用的硬币标记,也就是,扔出去的硬币,我们不知道是第一枚还是第二枚了,数据如下所示:

如何系统性地学习NLP 自然语言处理?-3.jpg

我们是用最大似然概率法则估计出的 z 值,然后再用 z 值按照最大似然概率法则估计新的 P1 和 P2 。也就是说,我们使用了一个最可能的 z 值,而不是所有可能的 z 值。我们可以利用EM即概率图模型算法使用下面这个图片来表达:

如何系统性地学习NLP 自然语言处理?-4.jpg

这里不得不提AI领域,大模型程序员需求量高、年薪高等优势,建议入局AI。
GPT就是NLP领域中的一个大模型(LLM)。入机器学习门派还得有与时俱进的精神,按照目前的趋势,大模型成为每个赛博炼丹师必须了解的功夫之一,即使是新入门的炼丹师们,虽然不能马上就能融会贯通这门功夫,也得先了解个梗概。推荐各位赛博炼丹师们了解一下知乎知学堂,联合「AGI课堂」,推出的「程序员的AI大模型进阶之旅」公开课
课程邀请了圈内知名的ai大佬授课,趁着现在还免费,建议对大模型有兴趣的都去听一听⬇️
一共2天的体验课,由门派中的宗师全面解读大模型Q这项前沿技术。
入门书籍

《自然语言处理综论述(第二版)》
《神经网络与深度学习》
《Python深度学习 基于Pytorch》
《聊天机器人》
《知识图谱》
《机器阅读理解》
《深度学习推荐系统》

如何系统性地学习NLP 自然语言处理?-5.jpg

学习NPL,特别是《深度学习入门:基于Python的理论与实践》帮助读者从零开始创建,从自己可以理解的地方出发,在尽量不使用外部现成品的情况下,实现目标技术。这本书是基于深度学习的自然语言处理。目标就是通过这样的过程来切实掌握深度学习,简单说,自然语言处理是让计算机理解我们日常所说的语言的技术。
官方文档

pytorch官网教程: <a href="http://link.zhihu.com/?target=https%3A//pytorch.org/docs/stable/index.html%23bbji5g" class=" wrap external" target="_blank" rel="nofollow noreferrer">https://pytorch.org/docs/stable/index.html
tensorflow官网:https://github.com/tensorflow/tensorflow
Keras:https://github.com/keras-team/keras
相关的论文

阅读论文并了解现有解决方案,主要关注相关领域的综述论文!
论文推荐
论文地址:https://arxiv.org/abs/1301.3781
这个是很经典的一篇论文,论文发表于2013年,大名鼎鼎的W2V,提出了Skip-gram和CBOW两种W2V架构,作者是来自Google的Tomas Mikolov,也是Word2Vec和RNNLM开源软件的作者。
相关代码:https://www.tensorflow.org/tutorials/word2vec
下面的几个论文也值得借鉴
https://www.xueshufan.com/publication/2962739339?publicationId=2962739339
https://papers.nips.cc/paper/5950-skip-thought-vectors.pdf
https://arxiv.org/abs/1706.03762
https://nlp.stanford.edu/pubs/glove.pdf
常见的自然语言处理框架推荐

1、jieba分词:支持三种分词模式(精确,全模式和搜索引擎),自定义分词,词典调整,关键词提取,词性标注等。
2、HanLP分词:相当于利用python调用jvm程序(jar),支持四种分词模式(标准、NLP、索引和极速),自定义分词,实体识别和词性标注等。
3、spacy框架:支持句子分割,实体识别,依赖关系识别,词性识别与还原等。
4、NLTK词频特征统计:实现特征词的频率分布图。
5、Scikit-learn入门级机器学习库:包含大量的机器学习算法和特征提取实现,使用非常简便。Scikit-learn实现的是浅层学习算法,神经网络仅实现了多层感知机。
此外还有
tfidf值特征统计
Gensim库
Tensorflow
SKlearn
一个不错的脑图

下面是我总结的一个不错的学习nlp的学习路线脑图,你可以跟着他查漏补缺,对理论知识进行迭代。

如何系统性地学习NLP 自然语言处理?-6.jpg

注重实践

实际操作比课本上的理论知识来的重要得多。找到切入点,一个具体任务。从任务实践入手,做到既见树木也见森林。
一个NLP词嵌入的应用实战的案例:
我们可以是利用sk-learn 机器学习作为基础,使用TF-IDF 等向量进行计算,获取词嵌入的方式有两种,一种是通过词向量进行模型训练学习得来。另一种通过预训练模型把预先计算好词嵌入,然后将其加入模型中,也称为预训练词嵌入。常用的预训练词嵌入有 Word2doc、GloVe、Doc2vec 等。要使用 Embedding 层首先要对数据进行一下转换,例如上面例子的中文分词原来为下面格式

如何系统性地学习NLP 自然语言处理?-7.jpg

现在需要把文本转换为编码的格式,然后才能作为 Embedding 的输入数据

如何系统性地学习NLP 自然语言处理?-8.jpg

其他的比如通过语音识别技术,计算机能够将人类的口头语言转换为文本形式。苹果的 Siri、亚马逊的 Alexa 和 Google Assistant 都是语音识别技术的典型代表。
了解常见大模型只的训练过程,才能够更好的体验到大模型的神奇,才能够有效的使用大模型对于我们的编程工作进行提示和辅助。【知乎知学】联合「 AGI课堂」推出的「 程序员的AI大模型进阶之旅」课程,邀请了不同领域的大佬,针对各种大模型进行详细的解析,通过几堂免费的课程,就可以让初学者对于大模型有基本的了解,并且不用翻墙,轻松上手体验大模型。
还可以领AI大模型资料、免费的AI工具等等,建议你一定来听听:
只有了解了各个大模型的预训练过程,才有可能基于这些大模型,"微调”出属于自己的“小模型"毕竟大模型训练所需的资源和数据,不是个体小码农可以轻松获取的。但是在大模型的基础上进行“微调"却可谓是站在了巨人的肩膀上,“训练”出的小模型,或许有着惊人的能力。
此外你也可以通过一下几个方向进行切入:

  • 机器翻译
  • 命名实体识别
  • 文本分类
  • 情感分析
  • 信息抽取
  • 聊天机器人
实战相关的书籍:
《自然语言处理实战入门》
《自然语言处理与文本挖掘》
《Python自然语言处理》
最后一点

一定要多做笔记和总结
一定要多做笔记和总结
一定要多做笔记和总结
重要的事情说三遍!
一定要从理论和实践中得到自己的想法,遇到问题就及时的提问和沟通 ,举一反三,同时拥有自己的笔记,写成博客之类的,才能真正掌握到NLP的知识!
NLP学习起来任重而道远,跟着上面的学习,如果能做到80%,能超过大部分的学习者了,加油,共勉!

其乐无穷 LV

发表于 2025-4-9 16:03:59

有基础,多看Paper!多撸代码!欢迎关注GitHub更新更加及时哦,汇总了NLP的论文和复现代码(持续更新),共同学习和进步,加油!!!(部分精读论文配有阅读笔记)
nlp-paper-codeContents | 内容


  • 综述
  • 预训练
  • 模型
  • 对话系统
  • 语音系统
  • 数据集
  • 评估
  • 文本相似度(匹配)
  • 深度学习
  • 机器学习
Summarize | 综述


  • A Survey on Dialogue Systems:Recent Advances and New Frontiers:对话系统的最新研究和方向 | Chen et al,2017
  • Recent Advances and Challenges in Task-oriented Dialog Systems | 阅读笔记:面向任务型对话系统的最新研究和方向 | Zhang et al,2020
  • Pre-trained Models for Natural Language Processing: A Survey | 阅读笔记:超详细的NLP预训练语言模型总结清单 | Xipeng Qiu et al,2020
  • Recent Advances in Deep Learning Based Dialogue Systems: A Systematic Survey: 对话系统综述:新进展新前沿 | JinJie Ni et al,2021
Pretraining | 预训练


  • Character-Aware Neural Language Models:提供一种功能强大,功能强大的语言模型,其可编码子词相关性,同时解决先前模型的罕见字问题,使用更少的参数获得可比较的表现力。 | Yoon et al,2015
  • Neural Machine Translation of Rare Words with Subword Units:就是我们所熟知的Byte Pair Encoding,是一种使用一些出现频率高的byte pair来组成新的byte的方法 | Sennrich et al,2015
  • Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models:一个非常出色的框架,主要是在word-level进行翻译,但是在有需要的时候可以很方便的使用Character-level的输入。 | Luong et al,2016
  • Learning Character-level Representations for Part-of-Speech Tagging:Character-level去构建word-level,该网络结构主要是对字符进行卷积以生成单词嵌入,同时使用固定窗口对PoS标记的字嵌入进行操作。 | Jason et al,2016
  • A Joint Model for Word Embedding and Word Morphology:该模型的目标与word2vec相同,但是使用的是Character-level的输入,它使用了双向的LSTM结构尝试捕获形态并且能够推断出词根。 | Kris et al,2016
  • Enriching Word Vectors with Subword Information:word2vec的升级版,对于具有大量形态学的稀有词和语言有更好的表征,它也可以说是带有字符n-gram的w2v skip-gram模型的扩展。 | Piotr et al,2016
  • Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation:wordpiece作为BERT使用的分词方式,其生成词表的方式和BPE非常相近,区别在于BPE选择频率最高的相邻字符对进行合并,而wordpiece是基于概率生成的。 | Yonghui et al,2016
  • Fully Character-Level Neural Machine Translation without Explicit Segmentation:比较经典的Character-Level的Subword算法模型 | Jason et al,2016
  • Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates:unigram在给定词表及对应概率值下,直接以最大化句子的likelihood为目标来直接构建整个词表 | Kudo et al,2018
  • How to Fine-Tune BERT for Text Classification? | 阅读笔记:BERT在Text Classification上的一些微调实验 | Xipeng Qiu et al,2019
  • Pretraining Methods for Dialog Context Representation Learning | 阅读笔记:作者列举了四种针对对话上下文表示的预训练方法,其中两种是作者新提出的 | Shikib et al,2019
  • Pre-trained Models for Natural Language Processing: A Survey | 阅读笔记:超详细的NLP预训练语言模型总结清单 | Xipeng Qiu et al,2020
  • TOD-BERT: Pre-trained Natural Language Understanding for Task-Oriented Dialogue | 阅读笔记:任务导向型对话的预训练自然语言理解模型 | Chien-Sheng Wu et al,2020
  • LogME: Practical Assessment of Pre-trained Models for Transfer Learning | 阅读笔记:一种通用且快速的评估选择适合下游任务的预训练模型的打分方法,logME | Kaichao You et al,2021
  • Are Pre-trained Convolutions Better than Pre-trained Transformers? | 阅读笔记:将Transformer的Attention换成了卷积,尝试预训练模型新方式 | Yi Tay et al,2021
Model | 模型


  • Convolutional Neural Networks for Sentence Classification:经典的TextCNN,static/non-static几种特征向量学习方式 | Yoon Kim et al,2014
  • Language Modeling with Gated Convolutional Networks | 阅读笔记:受LSTM门控机制的启发,将线性门控机制应用于卷积结构,文中对比GLU、GTU等结构性能 | Yann N. Dauphin et al,2016
  • A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS:Smooth Inverse Frequency,一种简单但是效果好的Sentence Embedding方法 | Sanjeev Arora et al,2017
  • Supervised Learning of Universal Sentence Representations from Natural Language Inference Data:InferSent,通过不同的encoder得到Sentence Embedding,并计算两者差值、点乘得到交互向量,从而得到相似度。 | Alexis Conneau et al,2017
  • Attention Is All You Need | 阅读笔记:Transformer的开山之作,值得精读 | Ashish et al,2017
  • Unsupervised Random Walk Sentence Embeddings: A Strong but Simple Baseline:Unsupervised Smooth Inverse Frequency,USIF改进SIF对句向量长度敏感,在相似度任务上提升很大 | Kawin Ethayarajh Arora et al,2018
  • Multi-Cast Attention Networks for Retrieval-based Question Answering and Response Prediction | 阅读笔记:一种用于通用序列对建模的整体架构,结合多种注意力机制进行特征增强 | Yi Tay et al,2018
  • Sliced Recurrent Neural Networks:切片RNN网络,尝试突破RNN时序限制的模型 | Zeping Yu et al,2018
  • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding | 阅读笔记:BERT的顶顶大名,使用Transformer的Encoder双向架构 | Devlin et al,2018
  • Pay Less Attention With Lightweight And Dynamic Convolutions | 阅读笔记:论文研究Lightweight、Dynamic Convolutions,卷积结构同样能够达到和Self-Attention媲美的效果 | Felix Wu et al,2019
  • XLNet: Generalized Autoregressive Pretraining for Language Understanding | 阅读笔记:XLNet--自回归语言模型的复兴,30多项任务超越BERT | Zhilin Yang et al,2019
  • Synthesizer: Rethinking Self-Attention for Transformer Models | 阅读笔记:在Transformer架构下,对Self-Attention计算的探索研究,看完会对Self-Attention有个新认识 | Yi Tay et al,2020
  • Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting | 阅读笔记:一种效果远超Transformer的长序列预测模型,针对LSTF问题上的研究改进 | Haoyi Zhou et al,2020
Dialogue | 对话系统


  • The Hidden Information State model: A practical framework for POMDP-based spoken dialogue management:关于对话状态管理的文章,可以用来补充相关背景知识 | Young et al,2010
  • Context Sensitive Spoken Language Understanding Using Role Dependent LSTM Layers:使用LSTM在SLU方面做的工作,通过agent和client角色划分,能够解决多轮对话中的歧义问题 | Hori et al,2015
  • A Neural Conversational Model:Seq2Seq结构的对话模型 | Oriol et al,2015
  • A Network-based End-to-End Trainable Task-oriented Dialogue System | 阅读笔记:非常值得一读的任务型对话模型架构 | Wen et al,2016
  • Neural Belief Tracker: Data-Driven Dialogue State Tracking | 阅读笔记:NBT框架,理解Belief state和tracking的好文 | Young et al,2016
  • Sequential Matching Network: A New Architecture for Multi-turn Response Selection in Retrieval-Based Chatbots | 阅读笔记:SMN检索式对话模型,多层多粒度提取信息 | Devlin et al,2016
  • Latent Intention Dialogue Models | 阅读笔记:离散潜在变量模型学习对话意图的框架 | Wen et al,2017
  • An End-to-End Trainable Neural Network Model with Belief Tracking for Task-Oriented Dialog | 阅读笔记:面向任务的对话系统的新型端到端可训练神经网络模型 | Liu et al,2017
  • Multi-Turn Response Selection for Chatbots with Deep Attention Matching Network | 阅读笔记:DAM检索式对话模型,完全基于注意力机制的多层多粒度提取信息 | Xiangyang et al,2018
  • Global-Locally Self-Attentive Dialogue State Tracker | 阅读笔记:全局-局部自注意力状态跟踪 | Zhong et al,2018
  • Dense Passage Retrieval for Open-Domain Question Answering | 阅读笔记:DPR一种高效的开放域问答检索技术,应用了BERT进行编码 | Karpukhin et al,2020
  • TOD-BERT: Pre-trained Natural Language Understanding for Task-Oriented Dialogue | 阅读笔记:任务导向型对话的预训练自然语言理解模型 | Chien-Sheng Wu et al,2020
  • Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering:Fusion-in-Decoder生成式阅读理解模型 | Izacard et al,2020
  • DISTILLING KNOWLEDGE FROM READER TO RETRIEVER FOR QUESTION ANSWERING | 阅读笔记:一种模型训练模型的开放域问答方法 | Izacard et al,2021
  • Increasing Faithfulness in Knowledge-Grounded Dialogue with Controllable Features:通过可控特征来增加知识对话系统的学习 | Rashkin et al,2021
Speech | 语音系统


  • Attention-Based Models for Speech Recognition:Tacotron2使用的Location Sensitive Attention  |  Chorowski et al,2015
  • Tacotron: A Fully End-To-End Text-To-Speech Synthesis Model | 阅读笔记:Tacotron,端到端的语音合成系统 | Yuxuan et al,2017
  • Natural TTS Synthesis By Conditioning Wavenet On Mel Spectrogram Predictions | 阅读笔记:Tacotron2,相较于Tacotron有着更好的性能,使用WaveNet作为Vocoder | Jonathan et al,2017
  • Syllable-Based Sequence-to-Sequence Speech Recognition with the Transformer in Mandarin Chinese:使用Transformer应用在普通话语音识别,数据集是HKUST datasets  |  Shiyu et al,2018
  • Neural Speech Synthesis with Transformer Network | 阅读笔记:本文受Transformer启发,使用多头自注意力机制取代Tacotron2中的RNN结构和原始注意力机制。 | Naihan et al,2018
  • A Comparative Study on Transformer vs RNN in Speech Applications | 阅读笔记:Transformer应用在语音领域上与RNN对比的论文,并在ESPnet上面开源了模型代码 | Nanxin et al,2019
Dataset | 数据集


  • The Second Dialog State Tracking Challenge:DSTC系列语料是专门用于对话状态跟踪的,非常经典,不过它的官网貌似无用了 |  Henderson et al,2014
  • The Ubuntu Dialogue Corpus: A Large Dataset for Research in Unstructured Multi-Turn Dialogue Systems:Ubuntu 非结构化多轮对话数据集 |  Ryan Lowe et al,2015
  • DailyDialog: A Manually Labelled Multi-turn Dialogue Dataset | [数据集地址](DailyDialog.zip):包含对话意图和情感信息的多轮对话数据集 | Yanran Li et al, 2017
  • CrossWOZ: A Large-Scale Chinese Cross-Domain Task-Oriented Dialogue Dataset | 阅读笔记:第一个大规模的中文跨域任务导向对话数据集 | Qi Zhu et al,2020
  • Improving Dialog Evaluation with a Multi-reference Adversarial Dataset and Large Scale Pretraining | 数据集地址:DailyDialog数据集的升级版,11K的多轮对话上下文,每个上下文包括五个标准的参考回复、五个不相关的回复、五个随机挑选的回复 | Ananya B. Sai et al, 2020
  • MuTual: A Dataset for Multi-Turn Dialogue Reasoning | 阅读笔记:MuTual 数据集,用于针对性地评测模型在多轮对话中的推理能力 |  L Cui et al,2020
  • MultiWOZ 2.2: A Dialogue Dataset with Additional Annotation Corrections and State Tracking Baselines](https://arxiv.org/pdf/2007.12720.pdf) | [阅读笔记](DengBoCong:论文阅读笔记:MultiWOZ 2.2):MultiWOZ是一个著名的面向任务的对话数据集,被广泛用作对话状态跟踪的基准,MultiWOZ 2.2是目前最新版本 | Zang et al,2020
Evaluate | 评估


  • LogME: Practical Assessment of Pre-trained Models for Transfer Learning | 阅读笔记:一种通用且快速的评估选择适合下游任务的预训练模型的打分方法,logME | Kaichao You et al,2021
  • Towards Quantifiable Dialogue Coherence Evaluation:QuantiDCE,一种实现可量化的对话连贯性评估指标模型 | Zheng Ye et al,2021
Text Similarity | 文本相似度(匹配)


  • Siamese Recurrent Architectures for Learning Sentence Similarity:Siamese LSTM,一个用来计算句对相似度的模型 | Jonas Mueller et al,2016
Deep Learning | 深度学习


  • NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE:Bahdanau Attention的原文 | Bahdanau et al,2014
  • Convolutional Neural Networks at Constrained Time Cost:针对卷积网络很好地概述了计算成本以及深度,过滤器尺寸之间的权衡 | Kaiming He et al,2014
  • Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift | 阅读笔记:经典的Batch Normalization原论文 | Sergey et al,2015
  • Learning both Weights and Connections for Efficient Neural Networks:有一张表格,其中列出了计算与内存访问的相对成本,除此之外还讨论了怎么精简神经网络 | Song Han et al,2015
  • Effective Approaches to Attention-based Neural Machine Translation:Luong Attention的原文 | Luong et al,2015
  • Strategies for Training Large Vocabulary Neural Language Models | 阅读笔记:主要是对当时的一些Softmax和Sampling进行总结,顺便提出了Differentiated Softmax方法 | Wenlin Chen et al,2015
  • Exploring the Limits of Language Modeling:CNN Softmax方法,虽然还是离不开原始的Softmax,但是换了一个视角效果很好 | Rafal Jozefowicz et al,2016
  • Weight Normalization: A Simple Reparameterization to Accelerate Training of Deep Neural Networks:Weight Normalization是一种在权值维度上进行归一化的方法 | Tim Salimans et al,2016
  • Layer Normalization | 阅读笔记:层归一化方法,针对Batch Normalization的改进 | Jimmy et al,2016
  • Instance Normalization:The Missing Ingredient for Fast Stylization:Instance Normalization是一种不受限于批量大小的算法专门用于Texture Network中的生成器网络 | Dmitry Ulyanov et al,2016
  • Efficient softmax approximation for GPUs | 阅读笔记:Adaptive Softmax,针对GPU的矩阵计算,实现了多倍与普通Softmax计算效率的提升,值得一看 | Edouard Grave et al,2016
  • Large-Margin Softmax Loss for Convolutional Neural Networks | 阅读笔记:L-Softmax在原Softmax的基础上增加了控制系数m,使得类内距离尽可能小,类间距离尽可能大 | Weiyang Liu et al,2016
  • An empirical analysis of the optimization of deep network loss surfaces:论文中得出一个结论,即Batch Normalization更有利于梯度下降 | Shibani et al,2016
  • Cosine Normalization: Using Cosine Similarity Instead of Dot Product in Neural Networks:Cosine Normalization是一种将unbounded的向量点积换成夹角余弦操作,从而进行归一化的方法 | Luo Chunjie et al, 2017
  • Massive Exploration of Neural Machine Translation Architectures | 阅读笔记:展示了以NMT架构超参数为例的首次大规模分析,实验为构建和扩展NMT体系结构带来了新颖的见解和实用建议。 | Denny et al,2017
  • SphereFace: Deep Hypersphere Embedding for Face Recognition | 阅读笔记:A-Softmax,思路和L-Softmax差不多,区别是对权重进行了归一化 | Weiyang Liu et al,2017
  • ProjectionNet: Learning Efficient On-Device Deep Networks Using Neural Projections | 阅读笔记:一种叫ProjectionNet的联合框架,可以为不同机器学习模型架构训练轻量的设备端模型。 | Google et al,2017
  • Additive Margin Softmax for Face Verification | 阅读笔记:AM-Softmax在A-Softmax的最大区别是AM是角度距离,A是余弦距离
  • Self-Attention with Relative Position Representations | 阅读笔记:对Transformer里面用到的位置编码进行讨论,对自注意力进行改造,从而使用相对位置编码代替硬位置编码 | Mihaylova et al,2018
  • Group Normalization:Group Normalization是将输入的通道分成较小的子组,并根据其均值和方差归一化这些值 | Yuxin Wu et al,2018
  • How Does Batch Normalization Help Optimization?:讨论Batch Normalization是如何帮助优化器工作的,主要结论是BN层能够让损失函数更加平滑 | Shibani et al,2018
  • Scheduled Sampling for Transformers | 阅读笔记:在Transformer应用Scheduled Sampling | Mihaylova et al,2019
  • Consistency of a Recurrent Language Model With Respect to Incomplete Decoding | 阅读笔记:讨论Seq2Seq模型解码停不下来的原因 | Sean Welleck et al,2020
  • PowerNorm: Rethinking Batch Normalization in Transformers:对于Transformer中BN表现不好的原因做了一定的empirical和theoretical的分析 | Sheng Shen et al,2020
  • A Theoretical Analysis of the Repetition Problem in Text Generation | 阅读笔记:讨论Seq2Seq模型解码重复生成的原因 | Zihao Fu et al,2020
Machine Learning | 机器学习


  • Optimal Whitening and Decorrelation:提供五种白化方法的数学证明 | Agnan Kessy et al,2015
  • An overview of gradient descent optimization algorithms | 阅读笔记:对当前主流的梯度下降算法进行概述 | Sebastian Ruder et al,2016
  • Covariate Shift: A Review and Analysis on Classifiers | 阅读笔记:通过几种分类算法,在四种不同的数据集下验证几种方法处理Covariate Shift问题后的性能分析 | Geeta et al,2019
Code


如何系统性地学习NLP 自然语言处理?-1.jpg

wuchao LV

发表于 2025-4-9 16:13:01

自荐有三AI的NLP技术专栏,参考
小Dream哥:【完结】 12篇文章带你完全进入NLP领域,掌握核心技术首先是12篇文章垫垫底,然后后面还有持续更新的内容。
1 朴素贝叶斯
贝叶斯分类器在早期的自然语言处理任务中有着较多实际的应用,例如大部分的垃圾邮件处理都是用的贝叶斯分类器。
贝叶斯决策论是在统计概率框架下进行分类决策的基本方法。对于分类任务来说,在所有相关概率都已知的情况下,贝叶斯决策论考虑如何基于这些概率和误判损失来预测分类。

如何系统性地学习NLP 自然语言处理?-1.jpg

链接:
【NLP】经典分类模型朴素贝叶斯解读
2 隐马尔科夫模型(HMM)
HMM早期在语音识别、分词等序列标注问题中有着广泛的应用。
HMM是非常适合用于序列标注问题的。HMM模型引入了马尔科夫假设,即T时刻的状态仅仅与前一时刻的状态相关。

如何系统性地学习NLP 自然语言处理?-2.jpg

链接:
【NLP】用于语音识别、分词的隐马尔科夫模型HMM
3 条件随机场(CRF)
隐马尔科夫模型引入了马尔科夫假设,即当前时刻的状态只与其前一时刻的状态有关。但是,在序列标注任务中,当前时刻的状态,应该同该时刻的前后的状态均相关。于是,在很多序列标注任务中,引入了条件随机场。
这里详细了介绍条件随机场的理论和及其在实体识别中的应用和Tensorflow中的实现。

如何系统性地学习NLP 自然语言处理?-3.jpg

链接:
【NLP】用于序列标注问题的条件随机场(Conditional Random Field, CRF)
4 循环神经网络(RNN)
对于一些序列输入的信息,例如语音、语言等,不同时刻之间的输入存在相互的影响,需要一种模型能够“记忆”历史输入的信息,进而对整个序列进行完整的特征提取和表征。
循环神经网络(RNN)就是面对这样的需求提出来的,它能够“记忆”序列输入的历史信息,从而能够较好的对整个序列进行语义建模。
RNN虽然理论上可以很漂亮的解决序列数据的训练,但是它也像DNN一样有梯度消失的问题,当序列很长的时候问题尤其严重。虽然同选择合适的激活函数等方法能够一定程度的减轻该问题。但人们往往更青睐于使用RNN的变种。

如何系统性地学习NLP 自然语言处理?-4.jpg

链接:
【NLP】 深度学习NLP开篇-循环神经网络(RNN)
5 LSTM
LSTM在原本RNN的基础上增加了CEC的内容,CEC保证了误差以常数的形式在网络中流动,这部分通过引入细胞状态C来体现。

并且,为了解决输入和输出在参数更新时的矛盾,在CEC的基础上添加3个门使得模型变成非线性的,就可以调整不同时序的输出对模型后续动作的影响。

如何系统性地学习NLP 自然语言处理?-5.jpg

链接:
【NLP】 NLP中应用最广泛的特征抽取模型-LSTM
6 NLP中Attention机制
人类在对信息进行处理的过程中,注意力不是平均分散的,而是有重点的分布。受此启发,做计算机视觉的朋友,开始在视觉处理过程中加入注意力机制(Attention)。随后,做自然语言处理的朋友们,也开始引入这个机制。在NLP的很多任务中,加入注意力机制后,都取得了非常好的效果。
在NLP中,Attention机制是什么呢?从直觉上来说,与人类的注意力分配过程类似,就是在信息处理过程中,对不同的内容分配不同的注意力权重

如何系统性地学习NLP 自然语言处理?-6.jpg

链接:
【NLP】 聊聊NLP中的attention机制
7 特征抽取器Tranformer
Transformer中最重要的特点就是引入了Attention,特别是Multi-Head Attention。作为一个序列输入的特征抽取器,其编码能力强大,没有明显的缺点。短期内难以看到可以匹敌的竞争对手。

如何系统性地学习NLP 自然语言处理?-7.jpg

链接:
【NLP】 理解NLP中网红特征抽取器Tranformer
8 BERT
BERT,全称是Pre-training of Deep Bidirectional Transformers for Language Understanding。注意其中的每一个词都说明了BERT的一个特征。
Pre-training说明BERT是一个预训练模型,通过前期的大量语料的无监督训练,为下游任务学习大量的先验的语言、句法、词义等信息。
Bidirectional 说明BERT采用的是双向语言模型的方式,能够更好的融合前后文的知识。
Transformers说明BERT采用Transformers作为特征抽取器。
Deep说明模型很深,base版本有12层,large版本有24层。
总的来说,BERT是一个用Transformers作为特征抽取器的深度双向预训练语言理解模型

如何系统性地学习NLP 自然语言处理?-8.jpg

链接:
【NLP】 深入浅出解析BERT原理及其表征的内容
9 transformerXL
TransformerXL是Transformer一种非常重要的改进,通过映入Recurrence机制和相对位置编码,增强了Transformer在长文本输入上的特征抽取能力。
TransformerXL学习的依赖关系比RNN长80%,比传统Transformer长450%,在短序列和长序列上都获得了更好的性能,并且在评估阶段比传统Transformer快1800+倍。

如何系统性地学习NLP 自然语言处理?-9.jpg

链接:
【NLP】TransformerXL:因为XL,所以更牛
10 GPT及GPT2.0
GPT,特别是GPT2.0是一个大型无监督语言模型,能够生产连贯的文本段落,在许多语言建模基准上取得了 SOTA 表现。而且该模型在没有任务特定训练的情况下,能够做到初步的阅读理解、机器翻译、问答和自动摘要。

如何系统性地学习NLP 自然语言处理?-10.jpg

链接:
【NLP】GPT:第一个引入Transformer的预训练模型
11 XLnet
XLnet集合了目前两大预训练模型的优点,在结构上,XLnet采用改进后的transofmerXL作为特征抽取器。在训练模式上,XLnet实现了BERT的双向语言模型,引入了PLM和双流自注意力模型,避免了BERT MLM的缺点。

如何系统性地学习NLP 自然语言处理?-11.jpg

链接:
【NLP】XLnet:GPT和BERT的合体,博采众长,所以更强
12 NLP综述
绍深度学习在自然语言处理(NLP)中的应用,从词向量开始,到最新最强大的BERT等预训练模型,梗概性的介绍了深度学习近20年在NLP中的一些重大的进展。

如何系统性地学习NLP 自然语言处理?-12.jpg

链接:
【技术综述】深度学习在自然语言处理中的应用发展史接下来是我们正在持续更新的内容:

  • 【NLP-词向量】词向量的由来及本质
  • 【NLP-词向量】从模型结构到损失函数详解word2vec
  • 【NLP-NER】什么是命名实体识别?
  • 【NLP-NER】命名实体识别中最常用的两种深度学习模型
  • 【NLP-NER】如何使用BERT来做命名实体识别
  • 【NLP-ChatBot】我们熟悉的聊天机器人都有哪几类?
  • 【NLP-ChatBot】搜索引擎的最终形态之问答系统(FAQ)详述
  • 【NLP-ChatBot】能干活的聊天机器人-对话系统概述
  • 【NLP-ChatBot】能闲聊的端到端生成型聊天机器人背后都有哪些技术?
  • 【NLP实战】tensorflow词向量训练实战
  • 【NLP实战系列】朴素贝叶斯文本分类实战
  • 【NLP实战系列】Tensorflow命名实体识别实战
  • 【每周NLP论文推荐】从预训练模型掌握NLP的基本发展脉络
  • 【每周NLP论文推荐】 NLP中命名实体识别从机器学习到深度学习的代表性研究
  • 【每周NLP论文推荐】 介绍语义匹配中的经典文章
  • 【每周NLP论文推荐】 对话管理中的标志性论文介绍
  • 【每周NLP论文推荐】 开发聊天机器人必读的重要论文
  • 【每周NLP论文推荐】 掌握实体关系抽取必读的文章
  • 【每周NLP论文推荐】 生成式聊天机器人论文介绍
  • 【每周NLP论文推荐】 知识图谱重要论文介绍

libo LV

发表于 2025-4-9 16:27:39

这里推荐一份超强NLP打怪升级路线图。
从0到1,你需要的都在这里了:

如何系统性地学习NLP 自然语言处理?-1.jpg

这份精致的资源刚刚上线,不到一天Reddit热度就超过400,获得了连篇的赞美和谢意:

“肥肠感谢。”“我需要的就是这个!”“哇,真好啊!”

如何系统性地学习NLP 自然语言处理?-2.jpg

所以,这套丰盛的思维导图,都包含了哪些内容?
四大版块

就算你从前什么都不知道,也可以从第一个版块开始入门:
1 概率&统计


如何系统性地学习NLP 自然语言处理?-3.jpg

从中间的灰色方块,发散出5个方面:

基础 (Basic) ,采样 (Sampling) 、信息理论 (Information Theory) 、模型 (Model) ,以及贝叶斯 (Baysian) 。
每个方面,都有许多知识点和方法,需要你去掌握。
毕竟,有了概率统计的基础,才能昂首挺胸进入第二个板块。
2 机器学习


如何系统性地学习NLP 自然语言处理?-4.jpg

这个版块,一共有7个分支:
线性回归 (Linear Regression) 、逻辑回归 (Logistic Regression) 、正则化 (Regularization) 、非概率 (Non-Probabilistic) 、聚类 (Clustering) 、降维 (Dimensionality Reduction) ,以及训练 (Training) 。
掌握了机器学习的基础知识和常用方法,再正式向NLP进发。
3 文本挖掘

文本挖掘,是用来从文本里获得高质量信息的方法。

如何系统性地学习NLP 自然语言处理?-5.jpg

图上有6个分支:
基本流程 (Basic Procedure) 、 (Graph) 、文档 (Document) 、词嵌入 (Word Embedding)、序列标注 (Sequential Labeling) ,以及NLP基本假设 (NLP Basic Hypothesis)。
汇集了NLP路上的各种必备工具。
4 自然语言处理

装备齐了,就该实践了。这也是最后一张图的中心思想:

如何系统性地学习NLP 自然语言处理?-6.jpg

虽然只有4个分支,但内容丰盛。
一是基础 (Basic) ,详细梳理了NLP常用的几类网络:循环模型、卷积模型和递归模型。
二是语言模型 (Language Model) ,包含了编码器-解码器模型,以及词表征到上下文表征 (Word Representation to Contextual Representation) 这两部分。许多著名模型,比如BERTXLNet,都是在这里得到了充分拆解,也是你需要努力学习的内容。
三是分布式表征 (Distributed Representation) ,许多常用的词嵌入方法都在这里,包括GloVeWord2Vec,它们会一个个变成你的好朋友。
四是任务 (Task) ,机器翻译、问答、阅读理解、情绪分析……你已经是合格的NLP研究人员了,有什么需求,就调教AI做些什么吧。
看完脑图,有人问了:是不是要把各种技术都实现一下?
作者说:
不不,你不用把这些全实现一遍。找一些感觉有趣的,实现一波就好了。
如何系统性地学习NLP 自然语言处理?-7.jpg


△ 作者Tae-Hwan Jung,来自庆熙大学

One More Thing

Reddit楼下,许多小伙伴对这套脑图表示膜拜,并且想知道是用什么做的。
韩国少年说,Balsamiq Mockups


如何系统性地学习NLP 自然语言处理?-8.jpg

GitHub传送门:
https://github.com/graykode/nlp-roadmap
Reddit传送门:
https://www.reddit.com/r/MachineLearning/comments/d8jheo/p_natural_language_processing_roadmap_and_keyword/

毛肚专业户 LV

发表于 2025-4-9 16:42:24

作者 | yuquanle
来源 | AI小白入门(ID: StudyForAI)

如何系统性地学习NLP 自然语言处理?-1.jpg


作为一名自然语言初学者,在 NLP 里摸爬滚打了许久,一些心得,请壮士收下。
谈一下自己探索过的摸爬滚打过的方法,大致可以分为二种。
第一种,在实践中学习,找一个特定的任务,譬如文本分类、情感分析等。然后以做好任务为导向的去挖掘和这一个任务相关的知识点。
由于没有系统的学习,肯定会遇到各种各样的拦路虎问题,当遇到不懂的概念时,利用百度 / 谷歌查阅相关资料去理解学习这个概念,若是概念难懂,就多看不同的人对这些概念的理解,有的时候有些人能深入浅出的讲解一些很不错的资料,个人觉得这种有目的性的实践学习方式学来的东西更加印象深刻。
这样也在潜移默化中锻炼了个人能力(独立查找资料 / 文献是一种极其重要的能力),又能达成某些目的。这样过了一段时间之后,好像懂很多东西了,但是好像又有很多方面不了解,其实这就是在某个点有点深度了,但是广度还不够。
如果此时有大把闲置的时间,就可以去刷刷那些不错的系统性课程,刷课的时候会发现很多概念理解起来轻松多了,或者说似曾相识(理解的知识点又得到了复习并再次确认自己的理解了的知识点和这些老师讲的是否一致)。
第二种,就是一上来就是刷课刷书,把理论什么的都梳理一遍,然后根据课程把课后作业都敲一遍并且理解。
这样系统的学习虽然会花上很长的时间,但是也会让你对知识体系有个全面的认识,之后你再进去某个小点(比如文本分类等)的深入探索,会发现很多东西都理解学习过。
其实你已经有了知识的广度,但是对某个点的知识深度还欠缺,此时就按需深挖即可,当然,这个过程肯定也不轻松。
其实这二种学习方法我觉得都挺不错,根据自身具体情况具体分析,交叉使用,效果应该更佳。现在回过头来看,我之前的学习方法更像第一种。
最近想从头开始学一些基础知识,以查漏补缺,所以收集了一大波不错的资料,作为新年大礼包送给初学者们,往下看,你想要的都在后面,记得看完免费的赞来一个哟!!!
关注博主的脚步,手把手带你学 AI。
▌编程语言
初学者推荐 python,安装方法可以选择纯 python 安装也可以选择 Anaconda 方式安装。IDE 推荐 pycharm。
此外,强烈推荐初学者使用 jupyter 来学习代码,感觉真的超级赞。
对于新手应该如何学 python,个人觉得最重要的是写,排除那种特别优秀的人,相信大部分人都可以归入到我亦无他,唯手熟尔。
因此前期的代码量是必不可少的,即使在不熟悉的语法情况下对着敲也不失为一种不错的方法,总而言之,要敲,要实践,从而达到手熟。
有人会问,那我一开始敲什么呢? 初学者建议把 python 基本语法敲一遍,可以配合 jupyter,这样可以很方便的敲完一个方法就能实时运行展示效果。然后敲一些基础的 python 包的基本用法,譬如最基本的 numpy、pandas、matlibplot 三剑客。
个人建议一开始没必要对里面的每个方法都去深究,这样做会很费时而且可能正反馈也不大,把简单的基本的用法敲几遍熟悉,在这个过程中,要慢慢锻炼一种能力:碰到问题能够独立通过百度 / 谷歌解决。以后会发现这种能力尤为重要。
自然语言处理初学者首先要了解熟悉 NLP 领域的基本术语、任务定义以及一些基本算法,前期可以结合一些不错的工具实践,比如经典的 jieba、hanlp、snownlp、stanfordcorenlp、spaCy、pyltp、nltk、textblob、gensim、scikit-learn 等,以及最近的 pkuseg、flair 等等。通过这些熟悉比如任务的输入输出、评价指标以及应用场景等等。
▌书籍推荐
个人觉得从头到尾的看书对于初学者来说不太友好,但是必备的工具书放在手边经常查阅是必不可少的。比如周志华老师的西瓜书《机器学习》、李航的《统计学习方法》、宗成庆的《统计自然语言处理》以及花书《Deep Learning》等等。另外一些比较有意思的书譬如《数学之美》也可以读读,通俗易懂的语言会让你对这个领域产生兴趣,最后推荐一本培养机器学习思维的书《Machine Learning Yearning》。
就此打住,对于初学者这几本工具书我觉得够了。不想买书的童鞋也没关系,可以直接看 pdf 电子档,网上资料很多,找不到的童鞋也没关系,请在以下链接自取。
链接:
https://pan.baidu.com/s/1k2NNIdmayS0K7K68wfThgQ
提取码:tfhl
此外,当你们发现手头的资料不够的时候,相信你已经拥有了自我搜索寻找更好更进阶资料的能力了,所以我这里也不多说了,授人以鱼不如授人以渔。
搜索资料一般最简单的就是百度、谷歌,相同的关键词在这二种搜索引擎上得到的结果可能也大相径庭,所以在不能找到满意的结果时不妨二者都尝试下。另一方面,一些开放了 github 的项目也可以去 github 上提问,当然 github 也是搜代码的好平台。初学者可以慢慢尝试,总结经验,以便培养自己的解决问题的能力。
当你能力再提升到一个阶段时,可能现阶段的东西都不能满足你,此时,可以锻炼直接看官方 API 了,第一手资源当然是最好的选择,一些前沿的东西可以直接看相关 paper。关于如何寻找相关文献我后面会给出自己的一些经验。
▌视频课程
时间充裕的朋友还是推荐有选择性的看一下不错的课程,这里收集了一大波优秀的免费课程,请收下这个大礼包。

  • 吴恩达的机器学习:https://0x9.me/m8J6G
这是机器学习的经典视频。

  • 网易云课堂有吴恩达的名为深度学习工程师免费微专业
:https://0x9.me/bnMf9
一共包括四周课程,分别为:
1. 神经网络和深度学习
2. 改善深层神经网络: 超参数调试、正则化以及优化
3. 结构化机器学习项目
4. 卷积神经网络
5. 序列模型

  • 李宏毅老师的系列课程:
http://speech.ee.ntu.edu.tw/~tlkagk/courses.html
没梯子可以在 B 站看:https://0x9.me/zd052

  • CS224n:
  • http://web.stanford.edu/class/cs224n/
  • 斯坦福的深度学习的自然语言处理,包括视频、PPT 讲义。
  • Oxford Course on Deep Learning for Natural Language Processing:
  • https://machinelearningmastery.com/oxford-course-deep-learning-natural-language-processing/
  • 林轩田老师的课程,机器学习基石和机器学习技法。
主页:https://www.csie.ntu.edu.tw/~htlin/mooc/
主页可以找到课程资料以及视频链接。没梯子也可以 B 站看。
1. 机器学习基石:https://0x9.me/t6rIR
2. 机器学习技法:https://0x9.me/OcZep
教程习题解答:https://github.com/Doraemonzzz/Learning-from-data
我相信以上大家肯定都或多或少听过,应该都属于经典教程了,所以有大量时间的初学者可以花时间钻研学习,看不懂的地方多看几篇,再看不懂就网上查阅各种资料包括别人的学习笔记继续研究,相信经历过之后肯定是豁然开朗并且功力大为长进。
推荐黄海广博士的笔记,作为参考:

  • 吴恩达机器学习笔记:
  • https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes
  • 吴恩达深度学习课程笔记:
  • https://github.com/fengdu78/deeplearning_ai_books
▌学术论文
当知识贮备到一定量的时候,自身的能力也提升上来了,此时就可以直接看第一手资源了:官方 API 和论文。
关于论文,如果是研究生的话基本上都绕不过去,所以问题来了,我们应该看什么样的文章?答案自然是看高质量的文章啦~ 这不是废话么,那高质量的文章应该如何去找呢?
国内有一个关于计算机的排名叫

  • CCF 推荐排名: https://www.ccf.org.cn/xspj/gyml/
里面保罗了计算机各大领域的会议期刊排名,比如计算机体系结构、计算机网络、人工智能、数据挖掘等等。CCF 推荐排名把会议和期刊被分成 A,B,C 三类。但是这个国内人搞的,国外基本不看这个。不过被推到这里的会议 / 期刊质量都还算不错。
国外把 ACL、EMNLP、NAACL、COLING 被称为 NLP 四大顶会,其中唯独 ACL 在 CCF 里面是 A 类,可见在 ACL 中一篇文章是很难的(ps:这也是作为 nlper 的我以后的目标之一)。ACL 学会在北美和欧洲召开分年会,分别称为 NAACL 和 EACL。ACL 学会下设多个特殊兴趣小组,其中比较有名的诸如 SIGDAT、SIGNLL 等。而 EMNLP 则是 SIGDAT 组织的国际会议。比较有名的还有 SIGNLL 组织的 CoNLL。
NLP/CL 也有自己的旗舰学术期刊 Computational Linguistics 和 ACL 创办的期刊 TACL,虽然 TACL 目前没有被推入 CCF,但是 TACL 真的超级难感觉。
作为交叉学科,也有很多相关领域值得关注。主要包括:信息检索和数据挖掘领域:SIGIR、WWW、KDD、WSDM 等和人工智能领域: AAAI、IJCAI 等。
对于期刊和会议,建议大家直接看会议文章,因为会议文章都比较实时,而且大多数人会把直接的最新研究发到会议上,中了会议之后再去做进一步完善补充扩展成期刊。所以对于目的为发文章的研究生,首先看会议文章即可,当发现此文值得深入研究的时候,可以去尝试寻找期刊版(当然也不一定有)。
那么应该如何下载文章呢?
对于会议文章直接去主页搜索接收文章列表,很多不会提供下载链接,那就把需要的文章名复制粘贴到百度学术 / 谷歌学术里面去搜索下载。
▌深度学习框架
深度学习如此火热,当然在自然语言处理也激起了不小的浪花,比如从 2013 年的 word2vec 到现在的 BERT,都是很不错的工作,初学者肯定也是要接触深度学习框架的,那面对众多的框架应该如何选择呢?
深度学习框架很多,包括 TensorFlow、Keras、Caffe、CNTK、PyTorch、MXnet、DeepLearning4J、Theano、PaddlePaddle、Chainer、Lasagne 等等。推荐初学者 keras,Keras 是一个高层神经网络 API,它由纯 Python 编写而成,并基于 Tensorflow、Theano 以及 CNTK 作为后端。
当然,写工程更多的是用 Tensorflow,搞学术的人可能更喜好 Pytorch。所以这里也收集了一些不错的资料。
Keras
官方文档:
https://github.com/keras-team/keras
中文文档:
https://keras-cn.readthedocs.io/en/latest/
例子:
https://github.com/keras-team/keras/tree/master/examples
Tensorflow
官方文档:
https://github.com/tensorflow/tensorflow
中文文档:
http://www.tensorfly.cn/
中文教程:
https://github.com/CreatCodeBuild/TensorFlow-and-DeepLearning-Tutorial
例子:
https://github.com/aymericdamien/TensorFlow-Examples
Pytorch
官方文档:
https://github.com/pytorch/pytorch
中文文档:
https://pytorch.apachecn.org/#/
例子:
https://github.com/yunjey/pytorch-tutorial
超全资源:
https://github.com/bharathgs/Awesome-pytorch-list
▌项目实践
如果组里面有相关项目,好好做,跟着师兄师姐,能学到不少东西。
如果有大厂的实习机会,争取去,工业界能学到更多与以后工作息息相关的东西。
如果没有实习机会,也没有项目做,那可以关注下比赛,找一下相关的比赛,下载数据集,排行榜可以实时看到你写的模型的性能。初学者可以去 github 找相关的开源模型,先跑起来,再想着如何去改进,以此锻炼自己的工程能力。
之前有人私信问我,这些比赛的信息去哪里找?
一般一些比赛在放出来之前,会做一些推广,在一些公众号或者群里能看到软文。但是这些信息不一定能被我们及时看到,但是比赛一般都会放到平台上,最出名的平台之一当属 kaggle,其它的还有天池、CCF、AI Challenger、DF、DC、biendata 等等。
据我所知,自然语言处理相关的比赛一般可分为二类,一类是学术型的评测,一类是工业界举办的比赛。
很多企业会举办比赛,吸引很多人来参与,特别是一些大企业,宣传工作会做得很到位,大家稍微注意下,一般都能听到风声。
学术型的评测也很多,比如 NAACL 的评测 SemEval( International Workshop on Semantic Evaluation),这种伴随着会议的评测,一般每年都会开放很多任务,在规定时间内报名参加,得到好的名次还可以写一篇评测论文。出名的比如 CIKM、SIGKDD 等等,大家可以关注。国内的话像 NLPCC、CCKS 等也会开放评测。
关乎代码,最好的方法就是不断的练习,对于自然语言处理也不例外,在学习理论的同时,也要积累代码量。关于这一块,初学者可以选定研究的小方向之后,尝试自己写代码 / 或者参考网上代码去跑一些 baseline 的 demo
拿文本分类来举例,最简单的是 one-hot,然后是 tf-idf、lda、lsa,到 word2vec、glove、fasttext,再到 textrnn、textcnn、han 等,最后到现在的 elmo、bert,这一套过来,关于文本分类这一个自然语言处理下的小方向的流行模型我相信基本上都会清晰很多。
ps:这里说的虽然简单,但是要这样过一遍,就是参考优秀的代码跑通相信对于大多数人来说也需要花费很多时间,但相信这也是锻炼成为一位 AI 算法工程师的必经之路。
▌重磅干货
不要愁找不到免费的优质资料,新年大礼包打包送给您。
100 Days Of ML Code(机器学习 100 天):
地址:
https://github.com/Avik-Jain/100-Days-Of-ML-Code
中文版地址:
https://github.com/Avik-Jain/100-Days-of-ML-Code-Chinese-Version
Keras 之父的 Deep Learning with Python:
地址:
https://github.com/fchollet/deep-learning-with-python-notebooks
中文版链接:
https://pan.baidu.com/s/1Fsc1gg8D8E39XhQZ_nRn2Q
提取码:indz
李沐的动手学深度学习 :
链接:
https://pan.baidu.com/s/1YNkuTycWWnKy7APbCN9YeA
提取码:vy7w
B 站视频链接:http://h5ip.cn/NriF
本书代码库:
https://github.com/diveintodeeplearning/d2l-zh
Python 实现统计学习方法一书中所有算法:
代码库地址:
https://github.com/WenDesi/lihang_book_algorithm
Reddit 超高赞免费 NLP 课程:
地址:
https://github.com/yandexdataschool/nlp_course
一个提供了很多机器学习问题的当前最优结果的项目:
地址:
https://github.com//RedditSota/state-of-the-art-result-for-machine-learning-problems
跟踪 NLP 当前最新技术进度的项目:
地址:
https://github.com/yuquanle/NLP-progress
川大毕业极客创建项目深度学习 500 问:
地址:
https://github.com/yuquanle/DeepLearning-500-questions
汇集了 40 个关于中文 NLP 词库项目:
地址:
https://github.com/yuquanle/funNLP
机器学习 / 深度学习 / 自然语言处理 / C/C++/Python / 面试笔记:
地址:
https://github.com/yuquanle/Algorithm_Interview_Notes-Chinese
清华大学 NLP 组 github,很多 paper 的整理:
https://github.com/thunlp/
深度学习实践教程,Pytroch 实现机器学习 / 深度学习算法:
地址:
https://github.com/GokuMohandas/practicalAI
AI Challenger 2018 baseline 方法:
地址:
https://github.com/AIChallenger/AI_Challenger_2018
比赛主页:https://challenger.ai/
一份很全面的机器学习算法资料,包括视频、代码、Demo:
地址:
https://github.com/trekhleb/homemade-machine-learning
模式识别与机器学习 (PRML)
下载主页:
https://www.microsoft.com/en-us/research/people/cmbishop/#!prml-book
本书代码:http://prml.github.io/
200 多个最好的机器学习、NLP 和 Python 相关教程:
地址:http://suo.im/5fTvIN
机器学习小抄 (像背单词一样理解机器学习):
地址:
https://pan.baidu.com/s/1eQpA1DknCJCgjMS8QMLOJQ
提取码:b79u
本文转自:AI科技大本营  本文转自AI科技大本营,作者:yuquanle 。
https://mp.weixin.qq.com/s?__biz=MzI0ODcxODk5OA==&mid=2247503047&idx=4&sn=dc75752a388cd21292432f884b1115e5&chksm=e99eff3edee97628e7947a8ca3f3ba8e6d3bd18ae87b93a0840ac95da748a1cfffaf32f8e257&mpshare=1&scene=1&srcid=03062NInvNwU7SUFzSjJxHKJ&key=06b9089f8b38a19daaedd342d3857c308173269183c64809cf6cb2fd5e09c48df60d5d35a133b36859811764c06121495a0a83a88529812f28494c3f83e5317dd8863c066ec3b82842a5a330ea8b2bc5&ascene=0&uin=MjM2ODI2NDIwMQ%3D%3D&devicetype=iMac+MacBookPro11%2C1+OSX+OSX+10.12.6+build(16G1408)&version=12020810&nettype=WIFI&lang=zh_CN&fontScale=100&pass_ticket=pCvyYrLxxZ6vJ2PIxP7GzQRL%2BuW9dsL0uSnuYrb34IpRPAte%2BnGUz%2B16S50kwo25

您需要登录后才可以回帖 登录 | 立即注册