自然语言处理入门基础
1 数学基础
(1)线性代数
向量、 矩阵、距离计算(余弦距离、欧式距离、曼哈顿距离、明可夫斯基距离、切比雪夫距离、杰卡德距离、汉明距离、标准欧式距离、皮尔逊相关系数)
(2)概率论
随机试验、条件概率、全概率、贝叶斯定理、信息论
(3)统计学
图形可视化(饼图、条形图、热力图、折线图、箱线图、散点图、雷达图、仪表盘)
数据度量标准(平均数、中位数、众数、期望、方差、标准差)
概率分布(几何分布、二项分布、正态分布、泊松分布)
统计假设检验
2 语言学基础
语音、词汇、语法
3 Python基础
廖雪峰教程,Python从入门到实践
4 机器学习基础
统计学习方法、机器学习周志华、机器学习实战
5 深度学习基础
CNN、RNN、LSTM
6 自然语言处理的理论基础
统计自然语言处理(宗成庆第二版)、Python自然语言处理、数学之美(第二版)
7、NLP常用工具
(1)Anaconda
Anaconda是一个用于科学计算的Python开发平台,支持 Linux,Mac和Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本Python并存、切换以及各种第三方包安装问题。Anaconda利用conda命令来进行package和environment的管理,并且已经包含了Python和相关的配套工具。Anaconda集成了大量的机器学习库以及数据处理必不可少的第三方库,比如NumPy,SciPy,Scikit-Learn以及TensorFlow等。
(2)Scikit-learn
Scikit-learn是广受欢迎的入门级机器学习库,包含大量的机器学习算法和特征提取实现,使用非常简便。Scikit-learn实现的是浅层学习算法,神经网络仅实现了多层感知机。
(3)TensorFlow
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,可被用于语音识别或图像识别等多项机器学习和深度学习领域。
(4)Keras
Keras是一个高级别的Python神经网络框架,能在TensorFlow或者 Theano 上运行。Keras的作者、谷歌AI研究员Francois Chollet宣布了一条激动人心的消息,Keras将会成为第一个被添加到TensorFlow核心中的高级别框架,这将会让Keras变成Tensorflow的默认API。
(5)Gensim
Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训练,并提供了诸如相似度计算,信息检索等一些常用任务的API接口。
(6)NLTK
在NLP领域中,NLTK是最常使用的一个Python库。
(7)Jieba
Jieba,结巴分词是最受欢迎的中文分词工具。
8、NLP语言模型
(1)词的独热表示(one-hot representation)
(2)Bag of Words
(3)Bi-gram 和 N-gram
(4)词的分布式表示(distributed representation)
(5)共现矩阵(Cocurrence martrix)
(6)神经网络语言模型(Neural Networ Language model,NNLM)
(7)word2vec
连续词袋模型(Continuous Bag of Words,CBOW)
Skip-Gram模型
9、快速入门NLP方法
(1)认真看完一本NLP相关的书,坚持看完一部视频。
(2)看这两年相关方向的综述论文,然后看一些经典的论文和最新论文。
(3)独立实现一个小型的自然语言处理项目。
(4)可以在Github上找到很多相关的开源代码,选一个自己感兴趣的方向进行研究。