Melanie Tosik目前就职于旅游搜索公司WayBlazer,她的工作内容是通过自然语言请求来生产个性化旅游推荐路线。回顾她的学习历程,她为期望入门自然语言处理的初学者列出了一份学习资源清单。

displaCy网站上的可视化依赖解析树

https://demos.explosion.ai/displacy/?text=Great%2C%20this%20is%20just%20what%20I%20needed!&model=en&cpu=1&cph=0

记得我曾经读到过这样一段话,如果你觉得有必要回答两次同样的问题,那就把答案发到博客上,这可能是一个好主意。根据这一原则,也为了节省回答问题的时间,我在这里给出该问题的标准问法:“我的背景是研究**科学,我对学习NLP很有兴趣。应该从哪说起呢?”

在您一头扎进去阅读本文之前,请注意,下面列表只是提供了非常通用的入门清单(有可能不完整)。 为了帮助读者更好地阅读,我在括号内添加了简短的描述并对难度做了估计。最好具备基本的编程技能(例如Python)。

在线课程

• Dan Jurafsky 和 Chris Manning:自然语言处理[非常棒的视频介绍系列]

https://www.youtube.com/watch?v=nfoudtpBV68&list=PL6397E4B26D00A269

• 斯坦福CS224d:自然语言处理的深度学习[更高级的机器学习算法、深度学习和NLP的神经网络架构]

http://cs224d.stanford.edu/syllabus.html

• Coursera:自然语言处理简介[由密西根大学提供的NLP课程]

https://www.coursera.org/learn/natural-language-processing

图书馆和开放资源

• spaCy(网站,博客)[Python; 新兴的开放源码库并自带炫酷的用法示例、API文档和演示应用程序]

网站网址:https://spacy.io/

博客网址:https://explosion.ai/blog/

演示应用网址: https://spacy.io/docs/usage/showcase

• 自然语言工具包(NLTK)(网站,图书)[Python; NLP实用编程介绍,主要用于教学目的]

网站网址:http://www.nltk.org

图书网址: http://www.nltk.org/book/

• 斯坦福CoreNLP(网站)[由Java开发的高质量的自然语言分析工具包]

网站网址: https://stanfordnlp.github.io/CoreNLP/

活跃的博客

• 自然语言处理博客(HalDaumé)

博客网址:https://nlpers.blogspot.com/

• Google研究博客

博客网址:https://research.googleblog.com/

• 语言日志博客(Mark Liberman)

博客网址:http://languagelog.ldc.upenn.edu/nll/

书籍

• 言语和语言处理(Daniel Jurafsky和James H. Martin)[经典的NLP教科书,涵盖了所有NLP的基础知识,第3版即将出版]

https://web.stanford.edu/~jurafsky/slp3/

• 统计自然语言处理的基础(Chris Manning和HinrichSchütze)[更高级的统计NLP方法]

https://nlp.stanford.edu/fsnlp/

• 信息检索简介(Chris Manning,Prabhakar Raghavan和HinrichSchütze)[关于排名/搜索的优秀参考书]

https://nlp.stanford.edu/IR-book/

• 自然语言处理中的神经网络方法(Yoav Goldberg)[深入介绍NLP的NN方法,和相对应的入门书籍]

https://www.amazon.com/Network-Methods-Natural-Language-Processing/dp/1627052984

入门书籍: http://u.cs.biu.ac.il/~yogo/nnlp.pdf

其它杂项

• 如何在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

DIY项目和数据集

资料来源:http://gunshowcomic.com/

• 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

NLP在社交媒体上

• 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

原文链接:

https://medium.com/towards-data-science/how-to-get-started-in-nlp-6a62aa4eaeff

自然语言处理(NLP)入门学习资源清单的更多相关文章

  1. 你不可错过的Java学习资源清单(包含社区、大牛、专栏、书籍等)

    学习Java和其他技术的资源其实非常多,但是我们需要取其精华去其糟粕,选择那些最好的,最适合我们的,同时也要由浅入深,先易后难.基于这样的一个标准,我在这里为大家提供一份Java的学习资源清单. 一: ...

  2. 你不可错过的Java学习资源清单

    学习Java和其他技术的资源其实非常多,但是我们需要取其精华去其糟粕,选择那些最好的,最适合我们的,同时也要由浅入深,先易后难.基于这样的一个标准,我在这里为大家提供一份Java的学习资源清单. Ja ...

  3. 对JAVA工程师绝对有用的Java学习资源清单

    学习Java和其他技术的资源其实非常多,但也不是都是好的有用的,我们要取其精华去其糟粕,选择那些最好的,最适合我们的,同时也要由浅入深,先易后难.基于这样的一个标准,我在这里为大家提供一份Java的学 ...

  4. WEB前端学习资源清单

    常用学习资源 JS参考与基础学习系列 [MDN]JS标准参考 es6教程 JS标准参考教程 编程类中文书籍索引 深入理解JS系列 前端开发仓库 <JavaScript 闯关记> JavaS ...

  5. [转] WEB前端学习资源清单

    常用学习资源 JS参考与基础学习系列 [MDN]JS标准参考 es6教程 JS标准参考教程 编程类中文书籍索引 深入理解JS系列 前端开发仓库 <JavaScript 闯关记> JavaS ...

  6. 《转载》python/人工智能/Tensorflow/自然语言处理/计算机视觉/机器学习学习资源分享

    本次分享一部分python/人工智能/Tensorflow/自然语言处理/计算机视觉/机器学习的学习资源,也是一些比较基础的,如果大家有看过网易云课堂的吴恩达的入门课程,在看这些视频还是一个很不错的提 ...

  7. (转)开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引

    Github, Soundcloud, FogCreek, Stackoverflow, Foursquare,等公司通过elasticsearch提供搜索或大规模日志分析可视化等服务.博主近4个月搜 ...

  8. Sublime text 入门学习资源篇及其基本使用方法

    Sublime text 学习资源篇 史上最性感的编辑器-sublimetext,插件, 学习资源 官网 http://www.sublimetext.com/ 插件 https://packagec ...

  9. 开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引

    from:  http://www.w3c.com.cn/%E5%BC%80%E6%BA%90%E5%88%86%E5%B8%83%E5%BC%8F%E6%90%9C%E7%B4%A2%E5%B9%B ...

随机推荐

  1. adb command not found / abd' 不是内部或外部命令,也不是可运行的程序 或批处理文件。最简易修改

    此处提供最简易高效的方法 不需要添加.bash_profile 只需手动设置环境变量 1.打开环境变量设置页面:确保你ANDROID_HOME, JAVA_HOME已经设置好,我们针对abd的环境配置 ...

  2. ssh语法高亮

    借助于ssh,使用vi/vim进行文本编辑的语法高亮显示的方法如下: 第一步:设置vi别名 在Linux中,.bashrc与.bash_profile文件为当前用户登录时所执行的,/etc/bashr ...

  3. 函数式语言(Functional language)简单介绍

    函数式语言(functional language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型. 函数式语言有:Haskell,Clean,M ...

  4. C基础学习笔记

    1.C语言运算符优先级: 2.三种循环比较 while.do-while和for三种循环在具体的使用场合上是有区别的,如下: 1).在知道循环次数的情况下更适合使用for循环: 2).在不知道循环次数 ...

  5. 配置JAVA开发环境

    以下为搭建java的开发环境...... 第一步:安装JDK 1. 了解一下 JVM(Java Virtual Machine—Java虚拟机) JRE(Java Runtime Environmen ...

  6. the implemention of redblack tree

    public class redbalcktree { private class Node{ private int val; private int key; boolean color; //b ...

  7. 剑指Offer 29. 最小的K个数 (其他)

    题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题目地址 https://www.nowcoder.com/prac ...

  8. Vue+WebSocket 实现页面实时刷新长连接

    最近vue项目要做数据实时刷新,折线图每秒重画一次,数据每0.5秒刷新一次,说白了就是实时刷新,因为数据量较大,用定时器估计页面停留一会就会卡死... 与后台人员讨论过后决定使用h5新增的WebSoc ...

  9. 【oracle入门】数据完整性约束

    数据的完整性约束是对数据描述的某种约束条件,关系型数据模型中可以有三类完整性约束:实体完整性.参照完整性和用户定义的完整性. 实体完整性Entity Integrity 一个基本关系通过对应显示世界的 ...

  10. Cannot find ./catalina.sh The file is absent or does not have execute permission This file is nee

    从tomcat官网上下载了apache-tomcat-5.5.36.zip,在window xp系统里面解压以后,直接放在了linux服务器上. 进入tomcat/bin目录,执行启动的时候出现如下错 ...