我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么进行Spark NLP使用入门

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么进行Spark NLP使用入门

怎么进行Spark NLP使用入门,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

AI在企业中的应用

关于AI在企业中应用的年度O‘Reilly报告已经在2019年2月发布, 该报告针对多个垂直行业的1300多从业人员进行调查, 该调查包含受访者所在企业中生产环境的AI项目,这些AI项目是如何在企业中应用,以及AI如何快速的扩展到深度学习,人机互助系统,知识图谱, 强化学习中。
该调查包含了受访者企业主要使用ML以及AI的框架以及工具情况,下图为使用情况总结的展示图:

怎么进行Spark NLP使用入门

其中Spark NLP在所有的框架以及工具排在第7位,是迄今为止最受欢迎NLP库,其受欢迎程度是spaCy的两倍, 事实上,除了其他开源工具以及其他云服务外提供工具或者框架之外,Spark NLP是继scikit-learn, TensorFlow, Keras,和 PyTorch之后最受欢迎的AI工具。

高准确度,高性能以及扩展性

该调查与近年来Spark NLP在医疗保健,金融, 生命科学和招聘中应用越来越广泛保持一致, 根本原因在NLP技术在近年来发生重大转变。

高准确度

在过去的3-5年中深度学习在自然语言领域的兴起使得算法的精度越来越高,而传统的例如 spaCy, Stanford CoreNLP, ntlp以及OpenNLP在精度上显然比不上这些最新的研究成果。
为了追求更高的准确度以及性能,工业界不断将最新的研究成果产品化, 下图是迄今为止的总结(基于en_core_web_lg标准测试的F1值):

怎么进行Spark NLP使用入门

高性能

由于Apache Spark的优化使得无论在单机或者在集群的性能都已经非常接近bare metal的性能, Spark NLP的性能可以比传统的AI库快一个数量级, 这些传统的库受限于他们的设计。

一年前O'Reily发布了迄今为止最全面的产品级别的NLP库性能对比测试, 下图中左侧为在spaCy和Spark NLP训练简单流水的性能对比图, 该测试基于单机配置(Intel I5, 4核, 16GB内存)进行:

怎么进行Spark NLP使用入门

利用GPU来进行训练以及推理编程深度学习的领域的一大趋势,使用TensorFlow进行深度学习使得Spark NLP能够充分利用现代计算机平台 - 从nVida的DGX-1到Intel的Cascade Lake处理器, 传统的库, 不管有没有使用深度学习的技术, 需要重写代码才能够充分利用这些新硬件的特性,而正是这些新硬件的特性使得NLP性能提高了一个数量级。

可扩展性

在深度学习领域能够将模型训练,推理,整个AI流水无缝从单机迁移到集群变得越来越关键,Spark NPL得益于原生的构建Apache Spark ML之上,能够在spark集群做任意扩展, 而Spark的分布式执行计划以及Cache的优化也能助力提升Spark NLP性能。

产品化的其他工作

产品级别的代码

不同于AllenNLP以及NLP Architect这样面向研究的NLP库,我们致力于向企业提供我们的Spark NLP库。

开源许可协议

Spark NLP使用Apache 2.0的许可协议, 不同于Stanford CoreNLP(商业化需要付费)以及SpaCy模型使用的ShareAlike CC许可协议,该协议是完全免费应用于商品化。

Python, Java, Scala支持

支持多语言编程不仅提高了Spark NLP的受众面,而且可以避免在使用过程数据的交换,例如, SpaCy只支持Python, 用户在使用过程需要将数据在JVM进程和Python进程进行交换,这样会导致架构变得复杂以及性能下降。

快速的版本发布

除了社区贡献,Spark NLP还有一个专门的开发团队,Spark NLP基本上每个月发布两次,在2018年总共发布了26个版本, Spark NLP社区非常欢迎贡献代码,文档,模型以及问题。

入门

Python

Spark NLP 2.0 一大设计目标就是使用者不要了解Spark或者TensorFlow就可以使用Spark和TensorFlow平台带来的好处。用户不必要了解什么是Spark ML的estimator和transformer, 或者什么是tensorFlow graph或者session, 用户也可以使用Spark NLP 构建自己的模型,但是能够以最少时间和学习曲线完成,Spark NLP内置的15种训练流水和模型可以覆盖大部分的用户场景。
用户可以通过pip或者conda安装Spark NLP的python版本,Jupyter以及Databricks的安装以及配置细节可以参考 安装页面 (https://nlp.johnsnowlabs.com/docs/en/install), Spark NLP 被广泛应用在各种组件当中,包括Zepplin, SageMaker, Azure,GCP, Cloudera以及Vanilla spark,支持K8S和非K8S环境。
下图是展示的是情绪分析的简单例子:

怎么进行Spark NLP使用入门

下图是利用Bert模型训练命名实体识别的例子:

怎么进行Spark NLP使用入门

上述例子代码能够在spark集群上处理大量文本,其中有两个关键的方法 - annotate(), 该方法以string类型作为输入, transform(), 该方法的数据输入是spark 的data frame。

Scala

Spark NLP是用Scala语言编写的, 可以直接操作Spark Data Frame, 在这过程中数据零拷贝,可以充分利用Spark执行计划以及其他优化,因此对于Scala和Java开发者,使用Spark NLP非常方便。

Spark NLP 可以Maven库中找到, 用户只要加上Spark NLP的依赖就可以使用它, 如果用户希望是有Spark NLP's OCR能力,需要安装额外的依赖。下图是个拼写检查的例子:

怎么进行Spark NLP使用入门

深入了解Spark NLP

Spark NLP为用户屏蔽许多复杂的细节,因此上面的代码片段都非常简单, 此外Spark NLP也提供了灵活性,用户可以根据自己的需求进行定制。Spark NLP针对训练领域的NLP模型做过深度优化。下面详细介绍Bert模型训练命名实体识别的Python代码:

  • sparknlp.start() 创建spark session。

  • PretrainedPipeline() 加载 explain_document_dl流水的英文版本, 预训练模型以及他们的依赖。

  • 启动TensorFlow, TensorFlow的进程跟spark的处于同一个JVM进程,加载预先训练的Embeddings和深度学习的模型(例如NER), 模型可以自动在集群上分发以及共享。

  • annotate() 启动NLP的推理流程,并且分发各个阶段的算法流程。

  • NER阶段运行在tensorflow上,分别采用双向LSTM的神经网络以及CNN

  • Embeddings在推理过程用来将contextual tokens转换为vectors

  • 最后结果以python字典的形式输出

GIVE IT A GO

Spark NLP主页包含大量的样例, 文档以及安装说明文档, 此外Spark NLP还提供了docker镜像, 用户可以很方便的在本地构建自己的环境。用户如果遇到任何问题, 用户可以登录Slack寻求帮助。

看完上述内容,你们掌握怎么进行Spark NLP使用入门的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么进行Spark NLP使用入门

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么进行Spark NLP使用入门

怎么进行Spark NLP使用入门,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。AI在企业中的应用关于AI在企业中应用的年度O‘Reilly报告已经在2019年2月发布, 该报
2023-06-19

怎么进行Python Flask入门

这篇文章将为大家详细讲解有关怎么进行Python Flask入门,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。追溯到最初,Flask 诞生于 Armin Ronacher 在 2010 年愚
2023-06-25

怎么进行Objective-C的入门

怎么进行Objective-C的入门,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言Objective-C(下面简称OC)是由C语言和Smalltalk扩展出
2023-06-21

怎么进行C#语言入门

怎么进行C#语言入门,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C#语言入门:简介C# (C sharp)是微软推出的面向对象的编程语言。C#语言是一种***
2023-06-17

Node.js 入门:使用 OAuth 轻松进行认证

Node.js 中 OAuth 认证让开发人员能够安全且轻松地在应用程序中集成第三方服务,从而简化身份验证过程。本文将指导您使用 OAuth 协议在 Node.js 中进行认证。
Node.js 入门:使用 OAuth 轻松进行认证
2024-02-19

怎么进行Python的加密库入门

这期内容当中小编将会给大家带来有关怎么进行Python的加密库入门,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。加密你的数据并使确保安全。密码学俱乐部的一条规则是:永远不要自己发明密码系统。密码学俱乐部的
2023-06-16

怎么进行spark的基本算子使用和源码解析

这篇文章将为大家详细讲解有关怎么进行spark的基本算子使用和源码解析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一.coalesce1.coalesce源码2.coalesce解释是窄依
2023-06-02

如何进行ActiveMQ的简单入门与使用

这期内容当中小编将会给大家带来有关如何进行ActiveMQ的简单入门与使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、什么是消息中间件消息中间件顾名思义实现的就是在两个系统或两个客户端之间进行消息传
2023-06-21

使用Pandas进行数据清理的入门示例

数据清理是数据分析过程中的关键步骤,它涉及识别缺失值、重复行、异常值和不正确的数据类型。获得干净可靠的数据对于准确的分析和建模非常重要。

k8s入门之deployment怎么使用

这篇“k8s入门之deployment怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“k8s入门之deployment
2023-07-05

Android入门之使用eclipse进行源码开发的方法

本文实例讲述了Android入门之使用eclipse进行源码开发的方法。分享给大家供大家参考,具体如下: 一、版本说明: 1. eclipse for javaEE 3.5.2 2. jdk1.6 3. adt12.0 4. linux/U
2022-06-06

使用Spark-shell怎么批量命令执行脚本

这篇文章给大家介绍使用Spark-shell怎么批量命令执行脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。批量执行spark-shell命令,并指定提交参数#!/bin/bashsource /etc/profil
2023-06-09

Android入门教程之ListView怎么使用

在Android中,ListView是一种常用的界面元素,用于显示数据列表。下面是一个简单的示例,演示如何在Android中使用ListView:在布局文件中添加ListView元素:
Android入门教程之ListView怎么使用
2024-03-06

怎么使用Win8快速入门指导

&nbswww.cppcns.comp;&nandroidbsp; Win8客户预览发布啦,全新的操作会不会令你vgZPKQZD无所适从?如何快速入门玩转Winhttp://www.cppcns.comdows8?Windows8快
2023-06-03

怎么进行Spring-Retry的使用

怎么进行Spring-Retry的使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1 Spring-Retry的简介在日常的一些场景中, 很多需要进行重试的操作.而spr
2023-06-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录