(整理)学习NLP的资源

本文是对网上NLP推荐资源的一个整理,有资源就要开始实践,加油!(以后还会继续更新的)

0 前期基础

自然语言处理和深度学习密切联系,应将两者结合一起学习。参考华为李航(北大AI第八讲 李航 自然语言处理的现实与挑战)。深度学习是机器学习,机器学习基于统计,所以数学和机器学习的基础知识也要扎实。数学包括微积分,统计与概率,线性代数,凸优化。
微积分会求偏导就行了,概率推荐《统计学完全教程》。机器学习基础可以参考周志华老师《机器学习》第1、2、3、5、13、16 章,李航《统计学习方法》第1,4,6章。
深度学习基础打好之后,就可以开始学习在线课程了。深度自然语言处理跟传统的统计自然语言处理的区别是,语言学知识用得少多了,所以深度自然语言处理用的更多的是深度学习知识。
当然,传统自然语言处理不会是不行的,推荐《Speech and Language Processing》(可以入门后再学)。

1 在线课程

  • 斯坦福CS224课程:CS224n: Natural Language Processing with Deep Learning
    PPT、相关文档: http://web.stanford.edu/class/cs224n/
    课程视频(B站):https://space.bilibili.com/23852932/#/channel/detail?cid=11177
  • 牛津大学课程:Deep Learning for Natural Language Processing: 2016-2017
    课程资源:https://github.com/oxford-cs-deepnlp-2017/lectures
    (注:README.md里面涵盖了课程的slides和video)
    这两课程2选1就够入门了

1.1 补充:其它资源

  • 张志华教授《机器学习导论》和《统计机器学习》课程讲义:https://blog.csdn.net/guyuealian/article/details/53672487

2 活跃的博客

  • 我爱自然语言处理(52NLP):http://www.52nlp.cn/category/mit-nlp
  • 自然语言处理博客(HalDaume):https://nlpers.blogspot.com/
  • Google AI博客:https://ai.googleblog.com/

2.1 社交媒体(有些要)

  • Twitter:#nlproc,NLPers上的文章列表(由Jason Baldrige提供)
    https://twitter.com/hashtag/nlproc
    https://twitter.com/jasonbaldridge/lists/nlpers
  • Reddit 社交新闻站点:/r/LanguageTechnology
    https://www.reddit.com/r/LanguageTechnology
  • Medium发布平台:Nlp
    https://medium.com/tag/nlp

3 书籍

  • 《Speech and Language Processing》(经典的NLP教科书,第3版即将出版):https://web.stanford.edu/~jurafsky/slp3/
  • 《Foundations of Statistical Natural Language Processing》(统计自然语言处理基础):(中文版)https://cangshuzhe.ctfile.com/fs/3990681-243197064
  • 《An Introduction to Information Retrieval》(信息检索导论):http://read.pudn.com/downloads166/sourcecode/internet/search_engine/757748/irbookprint.pdf (关于排名和搜索的优秀参考书)
  • 《A Primer on Neural Network Models for Natural Language Processing》(自然语言处理中的神经网络方法):http://u.cs.biu.ac.il/~yogo/nnlp.pdf
  • 其他书籍:http://www.52nlp.cn/resources

4 开放资源

  • spaCy(网站、博客)(Python;新兴的开放源码库并自带酷炫的用法示例、API文档和演示应用程序)
    https://spacy.io/
    https://explosion.ai/blog/
    https://spacy.io/universe/
  • 自然语言工具包(NLTK)(网站、图书)(Python;NLP实用编程介绍)
    https://github.com/nltk/nltk

  • 斯坦福CoreNLP(网站)(Java;自然语言分析工具包)
    https://stanfordnlp.github.io/CoreNLP/

4.1 数据集

  • Nicolas Iderhoff已经创建了一份公开的、详尽的NLP数据集的列表。除了这些,这里还有一些项目,可以推荐给那些想要亲自动手实践的NLP新手们:
    https://github.com/niderhoff/nlp-datasets
  • 基于隐马尔可夫模型(HMM)实现词性标注(POS tagging)
    https://en.wikipedia.org/wiki/Part-of-speech_tagging
    https://en.wikipedia.org/wiki/Hidden_Markov_model
  • 使用CYK算法执行上下文无关的语法解析
    https://en.wikipedia.org/wiki/CYK_algorithm
    https://en.wikipedia.org/wiki/Context-free_grammar
  • 在文本集合中,计算给定两个单词之间的语义相似度,例如点互信息(PMI,Pointwise Mutual Information)
    https://en.wikipedia.org/wiki/Semantic_similarity
    https://en.wikipedia.org/wiki/Pointwise_mutual_information
  • 使用朴素贝叶斯分类器来过滤垃圾邮件
    https://en.wikipedia.org/wiki/Naive_Bayes_classifier
    https://en.wikipedia.org/wiki/Naive_Bayes_spam_filtering
  • 根据单词之间的编辑距离执行拼写检查
    https://en.wikipedia.org/wiki/Spell_checker
    https://en.wikipedia.org/wiki/Edit_distance
  • 实现一个马尔科夫链文本生成器
    https://en.wikipedia.org/wiki/Markov_chain
  • 使用LDA实现主题模型
    https://en.wikipedia.org/wiki/Topic_model
    https://en.wikipedia.org/wiki/Latent_Dirichlet_allocation
  • 使用word2vec从大型文本语料库,例如维基百科,生成单词嵌入。
    https://code.google.com/archive/p/word2vec/
    https://en.wikipedia.org/wiki/Wikipedia:Database_download

4.2 其它

  • 如何在TensorFlow中构建word2vec模型[学习指南]
    https://www.tensorflow.org/versions/master/tutorials/word2vec/index.html
  • NLP深度学习的资源[按主题分类的关于深度学习的顶尖资源的概述]
    https://github.com/andrewt3000/dl4nlp
  • 最后一句话:计算语言学和深度学习——论自然语言处理的重要性。(Chris Manning)[文章]
    http://mitp.nautil.us/article/170/last-words-computational-linguistics-and-deep-learning
  • 对分布式表征的自然语言的理解(Kyunghyun Cho)[关于NLU的ML / NN方法的独立讲义]
    https://github.com/nyu-dl/NLP_DL_Lecture_Note/blob/master/lecture_note.pdf
  • 带泪水的贝叶斯推论(Kevin Knight)[教程工作簿]
    http://www.isi.edu/natural-language/people/bayes-with-tears.pdf
  • 国际计算语言学协会(ACL)[期刊选集]
    http://aclanthology.info/
  • 果壳问答网站(Quora):我是如何学习自然语言处理的?
    https://www.quora.com/How-do-I-learn-Natural-Language-Processing

参考:1、知乎NLP小学生的回答 :https://www.zhihu.com/question/19895141/answer/248636828
2、360doc个人图书馆:这是我见过最好的入门自然语言处理(NLP)的资源清单了:http://www.360doc.com/content/18/0903/11/59296122_783483379.shtml

你可能感兴趣的:(NLP自然语言处理,NLP,深度学习,自然语言处理,学习路线)