你的浏览器不支持canvas

墨染半纸,清心煮字

NLP自然语言处理学习资料库





示例项目



自动对联及作诗机
风云三尺剑,花鸟一床书---对联数据集和自动对联机器人
自动对联活动获奖结果以及机器对联赏析
"自动作诗机"上线,代码和数据都是公开的

腾讯词向量和相似词、相似度、词语游戏系列
相似词查询:玩转腾讯 AI Lab 中文词向量
玩转腾讯词向量:词语相似度计算和在线查询
腾讯词向量实战:通过Annoy进行索引和快速查询
玩转腾讯词向量:Game of Words(词语的加减游戏)
词向量游戏:梅西-阿根廷+葡萄牙=?

NLP相关工具及在线测试(公众号对话测试)
五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP
中文分词工具在线PK新增:FoolNLTK、LTP、StanfordCoreNLP
Python中文分词工具大合集:安装、使用和测试
中文分词工具评估:chinese-segmentation-evaluation
中文分词文章索引和分词数据资源分享
自然语言理解太难了之中文分词八级测试
八款中文词性标注工具使用及在线测试
百度深度学习中文词法分析工具LAC试用之旅
来,试试百度的深度学习情感分析工具
AINLP公众号新增SnowNLP情感分析模块

聊天机器人相关
一行Python代码实现夸夸聊天机器人
为了夸夸聊天机器人,爬了一份夸夸语料库
夸夸聊天机器人升级:从随机到准个性化
来,试试语音(识别)聊天(机器人)
来,试试成语接龙




NLP教程



NLP

自然语言处理(Natural Language Processing)是深度学习的主要应用领域之一。

教程

http://cs224d.stanford.edu/

CS224d: Deep Learning for Natural Language Processing

http://web.stanford.edu/class/cs224n/syllabus.html

cs224d课程的课件

http://demo.clab.cs.cmu.edu/NLP/

CMU的NLP教程。该网页下方还有美国其他高校的NLP课程的链接。

http://ccl.pku.edu.cn/alcourse/nlp/

北京大学的NLP教程,特色:中文处理。缺点:传统方法居多,深度学习未涉及。

http://www.cs.columbia.edu/~cs4705/

COMS W4705: Natural Language Processing

https://mp.weixin.qq.com/s/TSc4E8lKwgc-EvzP8OlJeg

初学者如何查阅自然语言处理(NLP)领域学术资料

https://zhuanlan.zhihu.com/kb-qa

揭开知识库问答KB-QA的面纱(知识图谱方面的系列专栏)

http://web.stanford.edu/~jurafsky/slp3/ed3book.pdf

《语音与语言处理》第三版,NLP和语音合成方面的专著

https://mp.weixin.qq.com/s/5KhTWdOk-b84DXmoVr68-A

CIPS ATT 2017 文本分析和自然语言课程PPT

http://phontron.com/class/nn4nlp2017/assets/slides/

CMU NN for NLP

http://phontron.com/class/mtandseq2seq2017/

CMU Machine Translation and Sequence to Sequence Models

https://github.com/oxford-cs-deepnlp-2017/lectures

Oxford Deep NLP 2017 course

书籍

http://ccl.pku.edu.cn/alcourse/nlp/LectureNotes/Natural%20Language%20Processing%20with%20Python.pdf

《Natural Language Processing with Python》,Steven Bird、Ewan Klein、Edward Loper著。这本书的作者们创建了著名的NLTK工具库。

注:Steven Bird,爱丁堡大学博士,墨尔本大学副教授。
http://www.stevenbird.net/about.html

Ewan Klein,苏格兰人,哥伦比亚大学博士(1978年),爱丁堡大学教授。

Edward Loper,宾夕法尼亚大学博士。

https://mp.weixin.qq.com/s/0HmsMytif3INqAX1Si5ukA

推荐5本经典自然语言处理书籍

网站

http://www.52nlp.cn/

一个自然语言处理爱好者的群体博客。包括52nlp、rickjin、liwei等国内外华人大牛。

http://www.shareditor.com/bloglistbytag/?tagname=%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E8%81%8A%E5%A4%A9%E6%9C%BA%E5%99%A8%E4%BA%BA

实战课程:自己动手做聊天机器人

http://www.icst.pku.edu.cn/lcwm/

北京大学计算机科学技术研究所语言计算与互联网挖掘研究室

https://github.com/rockingdingo/deepnlp

NLP深度学习方面的代码库

https://liweinlp.com/

NLP专家李维的blog

http://www.shuang0420.com/

一个NLP方面的blog

http://www.cnblogs.com/Determined22/

一个DL+ML+NLP的blog

http://www.cnblogs.com/robert-dlut/

一个NLP方面的blog

blog.csdn.net/hellonlp/

一个NLP方面的blog

工具

Natural Language Toolkit(NLTK)

官网:

http://www.nltk.org/

可使用nltk.download()下载相关nltk官方提供的各种资源。

参考:

http://www.cnblogs.com/baiboy/p/nltk3.html

OpenNLP

http://opennlp.apache.org/

FudanNLP

https://github.com/FudanNLP/fnlp

Stanford CoreNLP

http://stanfordnlp.github.io/CoreNLP/

THUCTC

THUCTC(THU Chinese Text Classification)是由清华大学自然语言处理实验室推出的中文文本分类工具包。

http://thuctc.thunlp.org/

gensim

gensim是Python语言的计算文本相似度的程序包。

http://radimrehurek.com/gensim/index.html

pip install --upgrade gensim

GitHub:

https://github.com/RaRe-Technologies/gensim

参考:

http://www.open-open.com/lib/view/open1444351655682.html

情感分析的新方法——基于Word2Vec/Doc2Vec/Python

http://blog.csdn.net/Star_Bob/article/details/47808499

Gensim Word2vec使用教程

GloVe

GloVe:Global Vectors for Word Representation

https://nlp.stanford.edu/projects/glove/

textsum

textsum是一个基于深度学习的文本自动摘要工具。

代码:

https://github.com/tensorflow/models/tree/master/textsum

参考:

http://www.jiqizhixin.com/article/1449

谷歌开源新的TensorFlow文本自动摘要代码

http://blog.csdn.net/tensorflowshizhan/article/details/69230070

TensorFlow文本摘要生成 - 基于注意力的序列到序列模型

jieba

https://github.com/fxsjy/jieba

NLPIR

NLPIR汉语分词系统(又名ICTCLAS2013),是中科院张华平博士的作品。官网:

http://ictclas.nlpir.org/

参考:

http://ictclas.nlpir.org/nlpir/

这个网页对于NLP的大多数功能进行了可视化的展示。NLP入门必看。

snownlp

https://github.com/isnowfy/snownlp

HanLP

HanLP是一个目前留学日本的中国学生的作品。

官网:

http://hanlp.linrunsoft.com/

作者blog:

http://www.hankcs.com/

Github:

https://github.com/hankcs/HanLP/

从作者的名气来说,HanLP无疑是最低的,性能也不见得有多好。然而对于初学者来说,这却是最适合的工具。这主要体现在以下几个方面:

1.中文处理能力。NLTK和OpenNLP对中文支持非常差,这里不光是中文分词的问题,有些NLP算法需要一定的语言模型数据,但浏览NLTK官方的模型库,基本找不到中文模型数据。

2.jieba、IK之类的功能太单一,多数局限在中文分词方面领域。gensim、THUCTC专注于NLP的某一方面,也不是通用工具。

3.NLPIR和Stanford CoreNLP算是功能最强的工具包了。前者的问题在于收费不开源,后者的问题在于缺少中文文档。FudanNLP的相关文档较少,文档友好度不如HanLP。

4.HanLP在主页上提供了相关算法的blog,便于初学者快速掌握相关概念。其词典是明文发布,便于用户修改。HanLP执行时,会将明文词典以特定结构缓存,以提高执行效率。

注:不要以为中文有分词问题,就比别的语言复杂,英文还有词根问题呢。。。每种语言都不简单。

AllenNLP

AllenNLP是Allen AI实验室的作品,采用深度学习技术,基于PyTorch开发。

官网:

http://allennlp.org/

Allen AI实验室由微软联合创始人Paul G. Allen投资创立。

官网:

http://allenai.org/

其他

https://github.com/mozillazg/python-pinyin

python版的汉字转拼音软件

https://github.com/ysc/word

Java分布式中文分词组件-word分词

http://jena.apache.org/

jena是一个语义网络、知识图谱相关的软件。

NLPchina

NLPchina(中国自然语言处理开源组织)旗下有许多好用的工具。

官网:

http://www.nlpcn.org/

Github:

https://github.com/NLPchina

Ansj

Ansj是一个NLPchina旗下的开源的Java中文分词工具,基于中科院的ictclas中文分词算法,比其他常用的开源分词工具(如mmseg4j)的分词准确率更高。

https://github.com/NLPchina/ansj_seg

Word2VEC_java

word2vec java版本的一个实现。

https://github.com/NLPchina/Word2VEC_java

doc2vec java版本的一个实现,基于Word2VEC_java。

https://github.com/yao8839836/doc2vec_java

ansj_fast_lda

LDA算法的Java包。

https://github.com/NLPchina/ansj_fast_lda

nlp-lang

这个项目是一个基本包.封装了大多数nlp项目中常用工具

https://github.com/NLPchina/nlp-lang

词性标注

http://jacoxu.com/ictpos3-0%E6%B1%89%E8%AF%AD%E8%AF%8D%E6%80%A7%E6%A0%87%E8%AE%B0%E9%9B%86/

ICTPOS3.0汉语词性标记集

Word Hashing

Word Hashing是非常重要的一个trick,以英文单词来说,比如good,他可以写成#good#,然后按tri-grams来进行分解为#go goo ood od#,再将这个tri-grams灌入到bag-of-word中,这种方式可以非常有效的解决vocabulary太大的问题(因为在真实的web search中vocabulary就是异常的大),另外也不会出现oov问题,因此英文单词才26个,3个字母的组合都是有限的,很容易枚举光。

那么问题就来了,这样两个不同的单词会不会产出相同的tri-grams,paper里面做了统计,说了这个冲突的概率非常的低,500K个word可以降到30k维,冲突的概率为0.0044%。

但是在中文场景下,这个Word Hashing估计没有这么有效了。

词汇共现

词汇共现是指词汇在文档集中共同出现。以一个词为中心,可以找到一组经常与之搭配出现的词,作为它的共现词汇集。

词汇共现的其中一种用例:

有若干关键词,比如:水果、天气、风,有若干描述词,比如,很甜、晴朗、很大,然后现在要找出他们之间的搭配,在这个例子里,我们最终要找到:水果很甜、天气晴朗、风很大

http://sewm.pku.edu.cn/TianwangLiterature/SEWM/2005(5)/%5b%b3%c2%c1%88,%20et%20al.,2005%5d/050929.pdf

关键词提取

主要三种方法:

1.基于统计特征,如TF-IDF。

2.基于词图模型,如TextRank。

3.基于主题模型,如LDA。

自然语言理解

Natural language understanding(NLU)属于NLP的一个分支,属于人工智能的一个部分,用来解决机器理解人类语言的问题,属于人工智能的核心难题。

上图是语义理解中,最有实用价值的框架语义表示(frame semantics representation)的原理简图。




机器学习与文本分析部分



第一期:深度学习与文本分析(CIPS ATT5) 第一讲:深度学习基础知识(邱锡鹏,复旦大学)

第一节 基础知识、前馈神经网络、分布式表示

第二节 卷积神经网络、循环神经网络、外部记忆与注意力模型

第三节 概率图模型、深度生成模型、深度强化学习

ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/ATT2017-Basic.pdf

第二讲:深度学习工具实战(龚经经,复旦大学)

第一节 TensorFlow介绍与深度学习模型实现

ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/ATT2017-Practice.pdf

第三讲:深度学习与词法句法语义分析 (车万翔,哈工大)

第一节 词法、句法与语义分析简介;结构化预测任务(序列分割、序列标注、句法分析);传统的结构化预测方法(基于图方法、基于转移的方法)

第二节 基于神经网络的图方法;基于神经网络的转移方法

ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/ATT2017-NLP.pdf

第四讲:深度学习与知识获取 (刘康,中科院自动化所)

第一节 基于深度学习的词表示(NNLM、Word2Vector、Log-Bilinear等)、知识图谱表示学习(RESCAL、TransE、TransH、TransD、KG2E等)

第二节 基于深度学习的知识抽取:实体关系抽取、开放域关系抽取、事件抽取

ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/ATT2017-Knowledge.pdf

第二期:深度学习与NLP应用(CIPS ATT6) 第一讲:深度学习与机器翻译(熊德意,苏州大学)

第一节 神经机器翻译基础知识 :神经机器翻译发展过程简介,串到串模型,基于注意力的神经机器翻译,注意力模型,集外词翻译,覆盖度模型,神经机器翻译与统计机器翻译比较与融合,神经机器翻译开源工具与平台

第二节 神经机器翻译进阶:字符与subword级神经机器翻译,基于句法的神经机器翻译与外部语言学知识融合,神经机器翻译新架构,多语与多模态神经机器翻译,神经机器翻译未来发展方向

ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/ATT2017-NMT.pdf

第二讲:深度学习与自动问答(冯岩松,北京大学)

第一节 自动问答简介;传统知识库问答;基于深度学习的知识问答 I

第二节 基于深度学习的知识问答 II;基于深度学习的阅读理解;基于深度学习的对话系统

ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/ATT2017-QAI.pdf

ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/QA_2017_QAII.pdf

第三讲:深度学习与社会计算(赵鑫,中国人民大学信息学院)

ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/ATT2017-IRII.pdf

第一节 网络表示:主要以network embedding作为主要技术点,包括一些基本的network embedding模型(包括DeepWalk、LINE、Node2vec等),同时也包括一些拓展工作(包括异质关系网络融合表示)

第二节 推荐系统:主要介绍最近几年深度学习在推荐系统中的应用,将分为两大块,刻画用户与物品交互以及刻画附加内容信息。将会涵盖大部分最新的深度学习推荐模型。

ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/ATT2017-NetworkI.pdf

第四讲:深度学习与信息检索(郭嘉丰,中科院计算所)

第一节 基于分布式表示的信息检索:深度学习搜索发展历史简介、分布式表达、基于分布式表达的信息检索模型及其在检索问题上的应用

第二节 基于深层匹配的信息检索:信息检索的深层匹配建模、深层匹配模型及其在不同检索问题上的应用,相关的Toolkit介绍

ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/ATT2017-IRI.pdf ppt:http://cips-upload.bj.bcebos.com/2017/ssatt2017/ATT2017-IRII.pdf

示例项目原文
NLP教程原文
机器学习与文本分析部分原文