ASR NLP Python 数据存储
“Python 对于数据科学家来说几乎是一项必备技能。正如你看到的那样,很多数据科学家的岗位要求具备 Python 编程的能力。这篇文章将会针对数据科学介绍几种常用的 Python 包。在与数据挖掘、机器学习以及数据分析相关的项目中,这些 Python 包通常会得到广泛应用。
1. SciPy
SciPy (发音为“Sigh Pie”) 是一个基于 Python 的开源软件生态系统,主要用于数学、科学和工程学等领域,给数据科学家提供了大量的算法和数学工具。
2. NumPy
Numpy是用 Pyhton 进行科学计算时的基础包,为 Python 提供了出色的数学功能。
3. Scikit-learn
Scikit-learn 是 Python 中最著名的机器学习包,包含了大量不同的分类方法、交叉检验及其他模型选择方法、降维技术、回归和聚类分析的模块以及非常实用的数据预处理的模块。
4. Pandas
Pandas 是一个用于处理具有类表格结构数据的库,通常与强大的数据框对象一起使用。DataFrame 是高效处理数据的多维数组对象,类似 Numpy 的 narray ,同时也有些附加的功能。
5. IPython
IPython 是一个命令行shell,相对于自带的 Python 解释器,具有很多有用的增强功能。
IPython Notebooks 对于科学计算来说是个不错的环境:不仅仅可以执行代码,同时也能通过 Markdown 、 HTML 、 LaTeX 、内置图片、内置数据图表(例如 matplotlib 等)增加信息化文件,还能为并行计算提供高性能的工具。
6. Requests
Requests 是 Python 中为人们搭建的优雅而简单的 HTTP 库。作为一名数据科学家,你或许需要从网上采集数据,而Requests 则为你提供了强大的工具。
7. Scrapy
Scrapy 是从互联网上采集数据的开源和协同框架,使用了快速、简单并且可扩展的方式。
8. Statsmodels
用户可以通过 Statsmodels 这个 Python 模块去挖掘数据、搭建预测统计模型和进行统计检验。它是个可扩展的列表,用来描述数据、统计检验、绘图以及为不同类型的数据和每一种预测提供统计结果。
9. Theano
如果从事深度学习项目,通常会需要 theano 。你可以用它这个 Python 库去定义、优化、高效评估包括多维数组在内的数学表达式。
10. gensim
genism 是最稳健、高效和省事的软件之一,通过纯文本实现无监督的语义建模,可以很容易地训练主题模型。如果想要在文本数据中应用主题模型,那你应该去试试 genism。
11. SymPy
SymPy 是进行符号数学计算的 Python 库,拥有大量的特征,包括微积分、代数、几何学、离散数学,甚至还有量子物理学。同时在 LaTeX 的支持下具备基础绘图和输出功能。
12. PyMC
PyMC 的核心是贝叶斯统计和模型拟合的大量算法(包括Markov Chain Monte Carlo, MCMC)。
13. matplotlib
matplotlib 是 python 的平面绘图库,能以硬拷贝格式和跨平台交互环境的多种形式输出高质量的图形,对于任何数据科学家或数据分析师来说都是必备的。
14. BeautifulSoup
如果想要提取些数据出来,那么 BeautifulSoup 正是你所需要的,可以用它在网页中提取内容。
15. nltk
Natural Language Toolkit (NLTK) 是使用人类语言数据搭建 Python 项目的领先平台。如果你在从事 NLP 相关的项目,那么 NLTK 是个必备工具。
16. sqlite3
这个工具能帮助你轻而易举地存储数据。它为 Python 连接 SQLite 数据库提供了接口。搭建开源的 SQL 数据库引擎对于小团队来说是个理想的选择,因为它是独立的本地存储数据库文件(最多140Tb),不像SQL那样,它不需要任何服务器基本结构。
”
AosuStudio|数据捕快|DataCaptor
http://aosustudio.com/A48B384766E664EFCB51B098B5B30A84,0D9FDC9F1B794BA3124E68021CC771D8,117B675488A9BA11C954B4DF5D213EA7.DataCaptor
人工智能 Python 数据存储
前言
主要有以下原因:
1. Python是解释语言,程序写起来非常方便
写程序方便对做机器学习的人很重要。
因为经常需要对模型进行各种各样的修改,这在编译语言里很可能是牵一发而动全身的事情,Python里通常可以用很少的时间实现。
举例来说,在C等编译语言里写一个矩阵乘法,需要自己分配操作数(矩阵)的内存、分配结果的内存、手动对BLAS接口调用gemm、最后如果没用smart pointer还得手动回收内存空间。Python几乎就是import numpy; numpy.dot两句话的事。
当然现在很多面向C/C++库已经支持托管的内存管理了,这也让开发过程容易了很多,但解释语言仍然有天生的优势——不需要编译时间。这对机器学习这种需要大量prototyping和迭代的研究方向是非常有益工作效率的。
2. Python的开发生态成熟,有很多有用的库可以用
除了上面说到的NumPy,还有SciPy、NLTK、os(自带)等等不一而足。Python灵活的语法还使得包括文本操作、list/dict comprehension等非常实用的功能非常容易高效实现(编写和运行效率都高),配合lambda等使用更是方便。这也是Python良性生态背后的一大原因。相比而言,Lua虽然也是解释语言,甚至有LuaJIT这种神器加持,但其本身很难做到Python这样,一是因为有Python这个前辈占领着市场份额,另一个也因为它本身种种反常识的设计(比如全局变量)。不过借着Lua-Python bridge和Torch的东风,Lua似乎也在寄生兴起。
3. Python的效率很高。
解释语言的发展已经大大超过许多人的想象。很多比如list comprehension的语法糖都是贴近内核实现的。除了JIT[1]之外,还有Cython可以大幅增加运行效率。最后,得益于Python对C的接口,很多像gnumpy, theano这样高效、Python接口友好的库可以加速程序的运行,在强大团队的支撑下,这些库的效率可能比一个不熟练的程序员用C写一个月调优的效率还要高。
4.数据存储方便
有sql,hadoop,mangodb,redis,spark等
5.数据获取方便
有Scrapy,beautifulsoup,requests,paramiko等
6.数据运算方便
有pandas,Numpy,scipy等
7.输出结果方便
有matplotlib,VisPy等
8.和其他语言交互方便
有ctypes,rpy2,Cython,SWIG,PyQt,boost.python
9.加速方便
有pypy,Cython,PyCUDA
10.图形图像方便
有PyOpenGL,PyOpenCV,mayavi2
11.信号处理方便
PyWavelets,scipy.signal
12.云系统支持方便
github,sourceforge,EC2,BAT,HPC
13.python开源
python支持的平台多,包括windows,linux,unix,macos。而matlab太贵,只能调用其api,用python省钱,省钱就是赚钱。
python 和 c++ 做个比较
c++ 的cpu效率是远远高于 python 的.不过 python 是一门胶水语言,它可以和任何语言结合,基于这个优点,很多数据处理的python 库底层都是 c++ 实现的,意思就是说:你用python写code,但效率是c++的。只有那些for 循环,还是用python的效率高。
近年来机器学习最要是深度学习,而深度学习使用cuda gpu加速远比cpu要快,而cuda 是c++写的。
所以现在TensorLayer、theano 等深度学习库都是 python 编程、底层c++。
【总结】
- NLP核心步骤:很像爬虫的3步:下载、处理和存储
- 下载=爬取
- 人工智能要想获取智能,先要得到数据
- 通过下载或爬虫爬取
- 下载
- Requests、Paramiko
- 爬虫框架
- Scrapy
- 处理
- 下载后的数据提取和处理
- 提取
- Beautifulsoup
- 运算和处理
- 通用
- Pandas、NumPy、SciPy、SymPy
- 人工智能相关
- 统计相关
- 人工智能数据处理中往往包含根据统计结果去分类,所以用到统计
- Statsmodels、PyMC
- 机器学习相关
- scikit-learn
- 深度学习相关
- Theano
- Tensorflow
- NLP相关
- NLTK
- 主题和建模
- genism
- 存储或输出
- 存储
- 各种数据库:
- 关系型数据库
- sql
- MySQL、sqlite3
- 往往是非关系型数据,所以也常用:
- mangodb、redis
- 各种框架
- 数据量往往较大,所以往往是大数据相关框架
- Hadoop、Spark
- 输出、显示
- 可视化
- Matplotlib、VisPy
- 期间相关
- 和其他别的语言交互
- 因为实际现存很多其他语言和内容,所以要和别的东西交交互
- ctypes、rpy2、Cython、SWIG、PyQt、boost.python
- 觉得性能不够的
- 需要提升性能
- Pypy、Cython、PyCUDA
- 具体研究领域
- 图形图像处理
- PyOpenGL、PyOpenCV、mayavi2
- 信号处理
- PyWavelets、scipy.signal
转载请注明:在路上 » 【整理】NLP核心逻辑和相关库的关系