最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【整理】NLP核心逻辑和相关库的关系

Python crifan 936浏览 0评论
ASR NLP Python 数据存储
数据科学和 ML 领域常用的 Python 库 – 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那样,它不需要任何服务器基本结构。
NLTK:一个先进的用来处理自然语言数据的Python程序。 – 资源 – 伯乐在线
数据存储 – Python 学习笔记 – 极客学院Wiki
数据挖掘,机器学习,算法类工程师招聘要求熟练运用数据库,这要求有什么看法嘛? – 知乎
Lecture-Series-Python/Python_Resources_1 at master · Github-Classroom-Cybros/Lecture-Series-Python
AosuStudio|数据捕快|DataCaptor
http://aosustudio.com/A48B384766E664EFCB51B098B5B30A84,0D9FDC9F1B794BA3124E68021CC771D8,117B675488A9BA11C954B4DF5D213EA7.DataCaptor
人工智能 Python 数据存储
[人工智能]机器学习的框架偏向于Python原因 – CSDN博客
前言
主要有以下原因:
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核心逻辑和相关库的关系

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.180 seconds, using 22.16MB memory