10 高级工具

  • 10.1 使用Apache Hadoop作为存储框架
  • 10.2 使用Apache Spark作为数据处理框架
  • 10.3 使用Apache Flink作为数据实时处理框架
  • 10.4 Python中的可视化类库

本附录重点介绍如何在NLP应用程序中使用各种框架。我们将查看这些框架的概述,并介绍它们的基本特性以及它们为您做了什么。我们不会看到每个框架的详细架构。这里,目的是让您了解可以一起用于构建各种NLP应用程序的不同工具和框架。我们还将研究可视化库,它可以帮助您开发仪表板。

10.1 使用Apache Hadoop作为存储框架

Apache Hadoop是广泛使用的框架之一。Hadoop允许使用一个简单的编程模型在商品计算机集群之间对大型数据集进行分布式处理。Hadoop使用了MapReduce的概念。MapReduce将输入查询分为几个小部分,并将它们与存储在Hadoop分布式文件系统(HDFS)上的数据并行处理。Hadoop具有以下功能:
它是可伸缩的
它是有成本效益的
它提供了一个强大的生态系统
它提供更快的数据处理速度Hadoop可以用作NLP应用程序的存储框架。如果要存储大量数据,那么可以使用多节点Hadoop集群并将数据存储在HDF上。因此,许多NLP应用程序使用HDF作为历史数据。Hadoop向数据发送一个程序,数据在本地处理它。这些特性使Hadoop具有良好的速度。注意Hadoop在磁盘级别执行操作,这很慢,但是我们并行执行操作,所以数据处理很快。现在,您可能认为磁盘操作比内存操作慢,但是我们有大量的数据,这些数据不会立即装入内存。因此,这种使用多节点集群本地处理数据并并行执行操作的方法给了我们一个很好的吞吐量。Hadoop的核心架构包括以下组件:
HDFS
MapReduce
YARN
Hadoop common utilities您可以在图01中看到Hadoop的体系结构:

您可以在图02中看到Hadoop生态系统:

对于实时数据处理,Hadoop有点慢,效率也不是很高。别担心!我们有另一个框架来帮助我们进行实时数据处理。

许多NLP应用程序使用Hadoop进行数据存储,因为它可以很好地处理数据处理。在个人层面上,我使用Hadoop将我的语料库存储在HDF上。然后,我使用spark mllib开发了机器学习(ML)算法。

对于实时数据处理,我使用Apache Flink。为了进行试验,我为您提供了建立单节点Hadoop集群的步骤。用于此的Github链接是
https://github.com/jalajthanaki/NLPython/blob/master/Appendix3/Installationdocs
/App3_3_Hadoop_installation.md.您可以在本文档中找到Hadoop的一些命令:
h t t p s ?/d z o n e . c o m /a r t i c l e s /t o p - 10- h a d o o p - s h e l l - c o m m a n d s .
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-comm
on/FileSystemShell.html

10.2 使用Apache Spark作为数据处理框架

Apache Sark是一个大规模的数据处理框架。它是一种快速通用的发动机。它是最快的处理框架之一。spark可以执行内存数据处理以及磁盘数据处理。Spark的重要特点如下:速度:ApacheSark可以在内存中运行比Hadoop MapReduce快100倍的程序,或者在磁盘上运行比Hadoop MapReduce快10倍的程序。

易用性:有多种API可用于斯卡拉、Java、Skar和R开发应用程序

一般性:Spark提供了结合SQL、流和复杂分析的功能

无处不在:Spark可以在Hadoop、Meos、Standalone或云中运行。您可以通过包括HDF、Cassandra、HBase和S3访问不同的数据源。我用Spark用MLLIB训练我的模型。我已经使用了Spice Java和PyStaseAPI。结果是您可以重定向到HDF。我已经将我训练过的模型保存在HDF上,然后在需要时加载它们。Spark真的可以加速你的处理时间。我经历过这一切。这背后的原因是它的内存处理体系结构。Spark架构如图03所示:

您可以在图04中看到Spark生态系统:

您可以看到此Github链接上的安装步骤:
https://github.com/jalajthanaki/NLPython/blob/master/Appendix3/Installationdocs
/App3_4_Spark_installation.md您可以在以下链接中找到更多信息:https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/
h t t p s ?/w w w . g i t b o o k . c o m /b o o k /j a c e k l a s k o w s k i /m a s t e r i n g - a p a c h e - s p a r k /d
e t a i l
http://spark.apache.org/
http://spark.apache.org/docs/latest/ml-guide.html
http://spark.apache.org/docs/latest/mllib-guide.html

10.3 使用Apache Flink作为数据实时处理框架

ApacheFlink用于实时流式处理和批处理。我告诉过你我们不应该担心实时框架。原因是我们有一个Flink框架。

Flink是一个开放源码流处理框架,用于分布式、高性能、始终可用和准确的数据流应用程序。你可以看到更多关于Flink的信息
https://flink.apache.org/.
Flink 一定会有一个非常美好的未来。您可以在图05中看到:

Flink是一个全新的框架。如果你想进行实时情绪分析或者做一个真正的推荐引擎,那么Flink是非常有用的。您可以参考以下视频,了解HDFS、Flink、Kappa和Lamda架构是如何使用的。这是必看视频:
https://www.youtube.com/watch?v=mYGF4BUwtaw
本视频帮助您了解各种框架如何融合在一起以开发一个好的实时应用程序。

10.4 Python中的可视化类库

可视化是用于跟踪特定流程和应用程序结果的重要活动之一。我们在第6章中使用了Matplotlib,高级特征工程和NLP算法,以及其他章节。除了matplotlib之外,我们还可以使用各种可视化库:
Matplotlib:它使用简单,非常有用
bokeh:它提供定制的主题和图表
pygal:你可以用这个制作很酷的图表。
可以使用以下链接引用每个库。所有图书馆都写过文档,这样您就可以检查它们并开始制作自己的图表。
你可以在https://matplotlib.org/上找到更多关于matplotlib的信息。
您可以在http://bokeh.pydata.org/en/latest/docs/gallery.html上找到更多关于bokeh的信息。
有关Pygal的文档,请访问http://pygal.org/en/stable/documentation/index.html。总结

这个框架概述将帮助您了解如何在NLP应用程序中使用各种框架。Hadoop用于存储。spark mllib用于开发机器学习模型,并将训练后的模型存储在hdfs上。我们可以在需要时通过加载来运行经过培训的模型。当实时分析和数据处理进入画面时,Flink使我们的更容易。实时情感分析、文档分类、用户推荐引擎等是您可以使用Flink构建的一些实时应用程序。Matplotlib用于开发机器学习模型。Pygal和Bokeh用于为最终用户制作精美的仪表盘。

致谢
《Python自然语言处理》1 2 3,作者:【印】雅兰·萨纳卡(Jalaj Thanaki),是实践性很强的一部新作。为进一步深入理解书中内容,对部分内容进行了延伸学习、练习,在此分享,期待对大家有所帮助,欢迎加我微信(验证:NLP),一起学习讨论,不足之处,欢迎指正。

参考文献


  1. https://github.com/jalajthanaki ↩︎

  2. 《Python自然语言处理》,(印)雅兰·萨纳卡(Jalaj Thanaki) 著 张金超 、 刘舒曼 等 译 ,机械工业出版社,2018 ↩︎

  3. Jalaj Thanaki ,Python Natural Language Processing ,2017 ↩︎

《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:10 高级工具相关推荐

  1. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:08 自然语言处理中的机器学习方法

    08 自然语言处理中的机器学习方法 8.1 机器学习的基本概念 8.1.1 ML类型 8.1.2 ML 监督学习 8.1.3 无监督学习 8.1.4 强化学习 8.2 自然语言处理应用的开发步骤 8. ...

  2. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:07 规则式自然语言处理系统

    07 规则式自然语言处理系统 7.1 规则式系统 7.2 规则式系统的目的 7.2.1 为何需要规则式系统 7.2.2 使用规则式系统的应用 7.2.3 练习 7.2.4 开发规则式系统需要的资源 7 ...

  3. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:05 特征工程和NLP算法

    05 特征工程和NLP算法 5.1 理解特征工程 5.1.1 特征工程的定义 5.1.2 特征工程的目的 5.1.3 一些挑战 5.2 NLP中的基础特征 5.2.1 句法解析和句法解析器 5.2.2 ...

  4. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:06 高级特征工程和NLP算法

    06 高级特征工程和NLP算法 6.1 词嵌入 6.2 word2vec基础 6.2.1 分布语义 6.2.2 定义word2vec 6.2.3 无监督分布语义模型中的必需品 6.3 word2vec ...

  5. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:11 如何提高你的NLP技能

    11 如何提高你的NLP技能 11.1 开始新的NLP职业生涯 11.2 备忘列表 11.3 确定你的领域 11.4 通过敏捷的工作来实现成功 11.5 NLP和数据科学方面一些有用的博客 11.6 ...

  6. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:04 预处理

    03 预处理 4.1 处理原始语料库文本 4.1.1 获取原始文本 4.1.2 小写化转换 4.1.3 分句 4.1.4 原始文本词干提取 4.1.5 原始文本词形还原 4.1.6 停用词去除 4.2 ...

  7. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:12 安装指导

    12 安装指导 12.1 安装Python.pip和NLTK 12.2 安装PyCharm开发环境 12.3 安装依赖库 12.4 框架安装指导 12.5 解决你的疑问 12.6 总结 本附录为您提供 ...

  8. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:03 理解句子的结构

    03 理解句子的结构 3.1 理解NLP的组成 3.1.1 自然语言理解 3.1.2 自然语言生成 3.1.3 NLU和NLG的区别 3.1.4 NLP的分支 3.2 上下文无关文法 3.3 形态分析 ...

  9. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:02 语料库和数据集

    什么是语料库? 为什么我们需要语料库? 理解语料库分析? 数据属性的类型 语料库的不同文件格式 免费语料库的资源 为NLP应用准备数据集 网页爬取 什么是语料库? 在语料库中,大数据集合可以采用以下格 ...

最新文章

  1. PHP学习笔记-数组
  2. ExtJs 3 自定义combotree
  3. spring mvc返回页面显示空白_Spring 框架基础(06):Mvc架构模式简介,执行流程详解...
  4. 51nod 1268 和为K的组合 dfs
  5. Y2011_M12_HeartChicken
  6. php linux 删除文件夹,linux下如何删除文件夹
  7. python编程软件排行榜_Python编程开发工具:这10个对Web开发者最有用的Python包
  8. 语言专项精讲课程 赵海英_最全汇总:沪江日语课程体系指南
  9. 前端:JS/18/JS运算符(算术运算符,赋值运算符,字符串运算符,比较运算符,逻辑运算符,三元运算符),window.prompt()
  10. zookeeper 单机配置
  11. android 浏览器开技术
  12. oracle混音插件教程,Waves插件个人经验谈
  13. OFD转PDF格式免费在线转换
  14. 散文:dflow 是如何实现slice的
  15. 性能测试场景设计深度解析
  16. 无法启动此程序因为计算机丢失msvcr110.dll,计算机中丢失msvcr110.dll怎么办
  17. 地块电力监控系统的设计和应用
  18. 【Java练习】数字加密(各位数加五对十取余并反转)
  19. 无线网卡(RTL8188EU)驱动编译、使用DHCP配置无线网络(1
  20. 【行业排名】第三方支付平台有哪些?第三方支付平台排名

热门文章

  1. K-Means的三种迭代算法
  2. React-aplayer音乐播放组件引入
  3. 软件测试期末复习知识点(第三章、第四章)
  4. 45页完整版PPT深度阐述互联网全网分销解决方案
  5. 5G智慧医疗 5G医疗接入网关
  6. 基于51单片机的下载电路原理
  7. 关于@font-face
  8. WIZnet 的 TOE 设计大赛
  9. react、umi、dva
  10. 联通定制机酷派7728root方法(含工具)其它版本通用