Antkillerfarm Hacking V7.0

NLP(一)

2017-04-28

NLP

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

参考:

https://blog.csdn.net/CoderPai/article/details/105050924

NLP任务总结

https://mp.weixin.qq.com/s/qskKTKKSeBBV8qJbPURL8A

一文看尽各种NLP任务

教程

http://cs224d.stanford.edu/

CS224d: Deep Learning for Natural Language Processing

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

cs224d课程的课件

https://zhuanlan.zhihu.com/p/31977759

CS224n自然语言处理与深度学习笔记汇总

web.stanford.edu/class/cs224u/

CS224U: Natural Language Understanding

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://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/nn4nlp2020/schedule.html

CMU CS 11-747: Neural Networks for NLP

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

CMU Machine Translation and Sequence to Sequence Models

http://www.phontron.com/teaching.php

NLP Programming Tutorial

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

Oxford Deep NLP 2017 course

http://web.stanford.edu/~jurafsky/NLPCourseraSlides.html

这是斯坦福2012年的NLP教程

https://mp.weixin.qq.com/s/IxDZLprG1xwlIqN-uxeGkg

UIUC韩家炜团队218页文本语料数据挖掘教程

https://mp.weixin.qq.com/s/nMX5YNdJcLc6Hwr63qHzrA

188页PPT帮你理解深度学习在智能对话系统中应用

https://mp.weixin.qq.com/s/sBRqSEKozodG2iA3Iqrpxw

300页文本知识提取与推断最新教程

https://mp.weixin.qq.com/s/wQEahUTHvqDNndv8Spkolw

清华刘洋与邓力合著338页新书《Deep Learning in Natural Language Processing》

https://mp.weixin.qq.com/s/HcGDwZWhuL-vmF19aerJyw

Jacob Eisenstein《自然语言处理》最新经典教材免费分享

https://mp.weixin.qq.com/s/wutcKURaYvBGcHvLSayKAw

机器阅读理解的任务与模式研究,61页pdf,多伦多约克大学

https://mp.weixin.qq.com/s/jjio8GUiinM2No5q568ImQ

深度学习自然语言处理概述,116页ppt,Jiri Materna

书籍

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本经典自然语言处理书籍

https://mp.weixin.qq.com/s/FNKFbUk0A6meXdE-HpwfvQ

Python自然语言处理实战书籍和代码《Natural Language Processing in Action》

https://github.com/jacobeisenstein/gt-nlp-class/tree/master/notes

乔治亚理工大学Jacob Eisenstein教授写的教材

网站

http://www.52nlp.cn/

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

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

http://blog.csdn.net/hellonlp/

一个NLP方面的blog

https://zhuanlan.zhihu.com/RucAIBox

一个NLP方面的blog

http://www.shuang0420.com/

一个NLP方面的blog

https://mp.weixin.qq.com/s/aF9eoWT8vXnqk2yOUDaMlA

自然语言处理领域重要论文&资源全索引

https://zhuanlan.zhihu.com/c_143965981

知乎专栏:基于深度学习的对话系统

工具

Natural Language Toolkit(NLTK)

官网:

http://www.nltk.org/

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

参考:

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

Python NLTK走进大秦帝国

https://mp.weixin.qq.com/s/LKwvTob2fqsAATtH8IIKoQ

分分钟学懂机器学习如何净化处理文本!

https://mp.weixin.qq.com/s/C7s038JYEIC8eMkJAfKJ0Q

初学者不能不会的NLTK

OpenNLP

http://opennlp.apache.org/

FudanNLP

https://github.com/FudanNLP/fnlp

它还提供了一个新手教程:

https://github.com/FudanNLP/nlp-beginner

Stanford CoreNLP

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

这还有个.NET的版本:

https://sergey-tihon.github.io/Stanford.NLP.NET/

当然了没有人会傻傻的自己做移植,这里使用IKVM.NET(一个基于.NET实现的JVM)进行自动编译。

后者的官网:

http://www.ikvm.net/

最近(2019.1),StanfordNLP推出了一个python版本的库:

https://github.com/stanfordnlp/stanfordnlp

看来在AI领域,Java是越来越不行了。2年前,好多AI库沿袭了大数据开发的语言习惯,使用了Java语言。然而,Google的tensorflow的出现,硬是将生态扭到了python语言一边。正如若干年前,Google在Android开发中引入Java一样,当时的手机业界基本都是C++的天下。

THUCTC

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

http://thuctc.thunlp.org/

pkuseg

pkuseg是由北京大学语言计算与机器学习研究组研制推出的一套全新的中文分词工具包。

https://github.com/lancopku/PKUSeg-python

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使用教程

https://mp.weixin.qq.com/s/Vawp4ywOAxX0Acwm9oyKEg

利用NLTK和Gensim进行主题建模

https://mp.weixin.qq.com/s/doaJJa04U_aiRgvfiUh9Eg

15分钟入门NLP神器—Gensim

SpaCy

SpaCy是新出来的一个NLP库,对DL的支持较好,可无缝衔接TensorFlow, PyTorch, scikit-learn, Gensim等库。

官网:

https://spacy.io/

参考:

https://mp.weixin.qq.com/s/xQrq1UbnliGPUWdF_lufRw

在Python中使用SpaCy进行文本分类

https://mp.weixin.qq.com/s/bvgOy4VIEvdL_Or2sAXUxA

快速掌握spacy在python中进行自然语言处理

GloVe

GloVe:Global Vectors for Word Representation

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

参考:

https://zhuanlan.zhihu.com/p/80335195

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

参考:

https://mp.weixin.qq.com/s/f2tegV4KwjyttMAhoHknMg

jieba分词快速入门

https://mp.weixin.qq.com/s/rzF_Er6yJdQaQB7hyoc9Bw

浅谈结巴分词算法原理

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执行时,会将明文词典以特定结构缓存,以提高执行效率。

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

参考:

https://mp.weixin.qq.com/s/GwU3wtINvV9T4kQcr8qcJA

一文掌握HanLP用法

AllenNLP

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

官网:

http://allennlp.org/

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

官网:

http://allenai.org/

参考:

https://mp.weixin.qq.com/s/QZT1SLCVFXBE-1FNNhWk0g

利用AllenNLP,百行Python代码训练情感分类器

https://zhuanlan.zhihu.com/p/48504619

写给NLP研究者的编程指南

FlashText

在NLP任务中,清理文本数据通常需要替换句子中的关键词或从句子中提取关键词。通常,这样的操作可以用正则表达式来完成,但是如果要搜索的词汇量过大,操作就会变得麻烦。Python中基于FlashText算法的FlashText模块,为这种情况提供了一个合适的替代方案。

官网:

https://flashtext.readthedocs.io/en/latest/

论文:

《Replace or Retrieve Keywords In Documents at Scale》

参考:

https://mp.weixin.qq.com/s/IKxweABi4IEyXjKNw9BJgA

正则表达式太慢?这里有一个提速100倍的方案:FlashText

https://mp.weixin.qq.com/s/ImtSR6VwYalN6gTgjVJOsQ

十五分钟完成Regex五天任务:FlashText,语料库数据快速清理利器

https://mp.weixin.qq.com/s/NmB8Jbm8zEwxQ8PGoz_wvg

关键词匹配利器FlashText

Fork me on GitHub