干货 | NLP、知识图谱、教程、书籍、网站、工具...
[ 导读 ]本文整理了这份关于 NLP 与知识图谱的参考资源,涵盖内容与形式也是非常丰富。
NLP参考资源
自然语言处理(Natural Language Processing)是深度学习的主要应用领域之一。
1. 教程
CS224d: Deep Learning for Natural Language Processing
CS224d课程的课件
http://web.stanford.edu/class/cs224n/syllabus.html
CMU的NLP教程。该网页下方还有美国其他高校的NLP课程的链接。
http://demo.clab.cs.cmu.edu/NLP/
北京大学的NLP教程,特色:中文处理。缺点:传统方法居多,深度学习未涉及。
http://ccl.pku.edu.cn/alcourse/nlp/
揭开知识库问答KB-QA的面纱(知识图谱方面的系列专栏)
https://zhuanlan.zhihu.com/kb-qa
《语音与语言处理》第三版,NLP和语音合成方面的专著
http://web.stanford.edu/~jurafsky/slp3/ed3book.pdf
CMU NN for NLP
http://phontron.com/class/nn4nlp2017/assets/slides/
CMU Machine Translation and Sequence to Sequence Models
http://phontron.com/class/mtandseq2seq2017/
Oxford Deep NLP 2017 course
https://github.com/oxford-cs-deepnlp-2017/lectures
2. 书籍
《Natural Language Processing with Python》,Steven Bird、Ewan Klein、Edward Loper著。这本书的作者们创建了著名的NLTK工具库。
http://ccl.pku.edu.cn/alcourse/nlp/LectureNotes/Natural%20Language%20Processing%20with%20Python.pdf
注:
Steven Bird,爱丁堡大学博士,墨尔本大学副教授。
http://www.stevenbird.net/about.html
Ewan Klein,苏格兰人,哥伦比亚大学博士(1978年),爱丁堡大学教授。
Edward Loper,宾夕法尼亚大学博士。
3. 网站
实战课程:自己动手做聊天机器人
北京大学计算机科学技术研究所语言计算与互联网挖掘研究
http://www.icst.pku.edu.cn/lcwm/
NLP深度学习方面的代码库
https://github.com/rockingdingo/deepnlp
NLP专家李维的blog
一个NLP方面的blog
一个DL+ML+NLP的blog
http://www.cnblogs.com/Determined22/
一个NLP方面的blog
http://www.cnblogs.com/robert-dlut/
一个NLP方面的blog
https://blog.csdn.net/wangxinginnlp
4. 工具
Natural Language Toolkit(NLTK)
可使用nltk.download()下载相关nltk官方提供的各种资源。
参考:
http://www.cnblogs.com/baiboy/p/nltk3.html
OpenNLP
FudanNLP
https://github.com/FudanNLP/fnlp
Stanford CoreNLP
http://stanfordnlp.github.io/CoreNLP/
THUCTC
THUCTC(THU Chinese Text Classification)是由清华大学自然语言处理实验室推出的中文文本分类工具包。
gensim
gensim是Python语言的计算文本相似度的程序包。
http://radimrehurek.com/gensim/index.html
安装指令:
pip install --upgrade gensim
GitHub 地址:
https://github.com/RaRe-Technologies/gensim
参考学习:
情感分析的新方法——基于Word2Vec /Doc2Vec/Python
http://www.open-open.com/lib/view/open1444351655682.html
Gensim Word2vec使用教程
http://blog.csdn.net/Star_Bob/article/details/47808499
GloVe
GloVe:Global Vectors for Word Representation
https://nlp.stanford.edu/projects/glove/
textsum
textsum是一个基于深度学习的文本自动摘要工具。
参考:
http://www.jiqizhixin.com/article/1449
谷歌开源新的TensorFlow文本自动摘要代码:
TensorFlow文本摘要生成 - 基于注意力的序列到序列模型
http://blog.csdn.net/tensorflowshizhan/article/details/69230070
jieba
https://github.com/fxsjy/jieba
NLPIR:NLPIR汉语分词系统(又名ICTCLAS2013),是中科院张华平博士的作品。
参考:
这个网页对于NLP的大多数功能进行了可视化的展示。NLP入门必看。
http://ictclas.nlpir.org/nlpir/
snownlp
https://github.com/isnowfy/snownlp
HanLP:HanLP是一个目前留学日本的中国学生的作品
作者blog:
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开发。
Allen AI实验室由微软联合创始人Paul G. Allen投资创立。
python版的汉字转拼音软件
https://github.com/mozillazg/python-pinyin
Java分布式中文分词组件-word分词
jena是一个语义网络、知识图谱相关的软件
NLPchina
NLPchina(中国自然语言处理开源组织)旗下有许多好用的工具。
Github:
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
词性标注
ICTPOS3.0汉语词性标记集
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/
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的一个分支,属于人工智能的一个部分,用来解决机器理解人类语言的问题,属于人工智能的核心难题。
论文
《Distant Supervision for relation extraction without labeled data》
《Using Recurrent Neural Networks for Slot Filling in Spoken Language Understanding》
《Convolutional Neural Networks for Sentence Classification》
知识图谱参考资源
知识图谱技术综述
https://wenku.baidu.com/view/e69a3619fe00bed5b9f3f90f76c66137ee064f15.html
知识图谱技术原理介绍
https://wenku.baidu.com/view/b3858227c5da50e2534d7f08.html
分享了这么多资源,再推荐给大家一场飞马网周四的线上直播活动,期待你的参与~
关注公众账号
【飞马会】
▼
http://weixin.qq.com/r/bThZQajE7PWTrewi921- (二维码自动识别)
飞马会
AI人工智能/大数据/技术管理等人员学习交流园地
往期福利关注飞马会公众号,回复对应关键词打包下载学习资料;回复“入群”,加入飞马网AI、大数据、项目经理学习群,和优秀的人一起成长!
回复 数字“1”下载从入门到研究,人工智能领域最值得一读的10本资料(附下载)
回复 数字“2”机器学习 & 数据科学必读的经典书籍,内附资料包!
回复 数字“3”走进AI & ML:从基本的统计学到机器学习书单(附PDF下载)
回复 数字“4”了解人工智能,30份书单不容错过(附电子版PDF下载)
回复 数字“6”AI人工智能:54份行业重磅报告汇总(附下载)
回复 数字“12”
小白| Python+Matlab+机器学习+深度神经网络+理论+实践+视频+课件+源码,附下载!
回复 数字“14”小白| 机器学习和深度学习必读书籍+机器学习实战视频/PPT+大数据分析书籍推荐!
回复 数字“18”526份行业报告+白皮书:AI人工智能、机器人、智能出行、智能家居、物联网、VR/AR、 区块链等(附下载)
回复 数字“19”800G人工智能学习资料:AI电子书+Python语言入门+教程+机器学习等限时免费领取!
回复 数字“23”机器学习:怎样才能做到从入门到不放弃?(内含福利)
回复 数字“24”限时下载 | 132G编程资料:Python、JAVA、C,C++、机器人编程、PLC,入门到精通~
回复 数字“25”限资源 | 177G Python/机器学习/深度学习/算法/TensorFlow等视频,涵盖入门/中级/项目各阶段!
回复 数字“26”人工智能入门书单推荐,学习AI的请收藏好(附PDF下载)
回复 数字“27”资源 | 吴恩达斯坦福CS230深度学习课程全套资料放出(附下载)
回复 数字“30”领取 | 100+人工智能学习、深度学习、机器学习、大数据、算法等资料,果断收藏!
回复 人工智能下载《FMI人工智能与大数据峰会嘉宾演讲PPT》
回复 AI 江湖下载《十大AI江湖领域》
回复 ML实践下载《机器学习实践经验指导(英文版)》
回复 DL论文下载《深度学习100篇以上论文资料》
回复 算法 下载《数据挖掘十大经典算法》
回复 6.10 下载《6.10饿了么&飞马网项目管理实践PPT》