Spark NLP是建立在Apache Spark顶部的最先进的自然语言处理库。它为机器学习管道提供了简单,性能和准确的NLP注释,可在分布式环境中轻松扩展。
Spark NLP配备了超过200多种语言的83000多个预算管道和型号。 It also offers tasks such as Tokenization , Word Segmentation , Part-of-Speech Tagging , Word and Sentence Embeddings , Named Entity Recognition , Dependency Parsing , Spell Checking , Text Classification , Sentiment Analysis , Token Classification , Machine Translation (+180 languages), Summarization , Question Answering , Table Question Answering , Text Generation , Image Classification , Image to Text (captioning) , Automatic Speech Recognition , Zero-Shot Learning , and many more NLP任务。
Spark NLP is the only open-source NLP library in production that offers state-of-the-art transformers such as BERT , CamemBERT , ALBERT , ELECTRA , XLNet , DistilBERT , RoBERTa , DeBERTa , XLM-RoBERTa , Longformer , ELMO , Universal Sentence Encoder , Llama-2 , M2M100 , BART , Instructor , E5 , Google T5 , MarianMT , OpenAI GPT2 , Vision Transformers ( VIT) , Openai Whisper , Llama , Mistral , Phi , Qwen2等,不仅对Python和R ,而且还可以通过自然扩展Apache来扩展Apache 。
Spark NLP为从各种流行框架中导入模型提供了简单的支持:
这种广泛的支持使您可以将不同源的模型无缝整合到Spark NLP工作流程中,从而增强了与现有机器学习生态系统的灵活性和兼容性。
查看我们的官方Spark NLP页面:https://sparknlp.org/获取用户文档和示例
这是如何在Python和Pyspark中使用Spark NLP预训练的管道的快速示例:
$ java -version
# should be Java 8 or 11 (Oracle or OpenJDK)
$ conda create -n sparknlp python=3.7 -y
$ conda activate sparknlp
# spark-nlp by default is based on pyspark 3.x
$ pip install spark-nlp==5.5.2 pyspark==3.3.1在Python控制台或Jupyter Python3内核中:
# Import Spark NLP
from sparknlp . base import *
from sparknlp . annotator import *
from sparknlp . pretrained import PretrainedPipeline
import sparknlp
# Start SparkSession with Spark NLP
# start() functions has 3 parameters: gpu, apple_silicon, and memory
# sparknlp.start(gpu=True) will start the session with GPU support
# sparknlp.start(apple_silicon=True) will start the session with macOS M1 & M2 support
# sparknlp.start(memory="16G") to change the default driver memory in SparkSession
spark = sparknlp . start ()
# Download a pre-trained pipeline
pipeline = PretrainedPipeline ( 'explain_document_dl' , lang = 'en' )
# Your testing dataset
text = """
The Mona Lisa is a 16th century oil painting created by Leonardo.
It's held at the Louvre in Paris.
"""
# Annotate your testing dataset
result = pipeline . annotate ( text )
# What's in the pipeline
list ( result . keys ())
Output : [ 'entities' , 'stem' , 'checked' , 'lemma' , 'document' ,
'pos' , 'token' , 'ner' , 'embeddings' , 'sentence' ]
# Check the results
result [ 'entities' ]
Output : [ 'Mona Lisa' , 'Leonardo' , 'Louvre' , 'Paris' ]有关更多示例,您可以访问我们的专用示例以展示所有Spark NLP用例!
这是一个备忘单,用于相应的Spark NLP Maven软件包,apache spark / pyspark专业版本:
| Apache Spark | 在CPU上激发NLP | 在GPU上激发NLP | 在Aarch64(Linux)上激发NLP | 苹果硅上的火花NLP |
|---|---|---|---|---|
| 3.0/3.1/3.2/3.3/3.4/3.5 | spark-nlp | spark-nlp-gpu | spark-nlp-aarch64 | spark-nlp-silicon |
| 启动功能 | sparknlp.start() | sparknlp.start(gpu=True) | sparknlp.start(aarch64=True) | sparknlp.start(apple_silicon=True) |
注意: M1/M2和AArch64在experimental支持下。对这些体系结构的访问和支持受社区的限制,我们必须自己建立大多数依赖项,以使它们兼容。我们支持这两个架构,但是它们可能在某些环境中无法使用。
有关使用管道和模型的快速示例,请查看我们的官方文档
Spark NLP 5.5.2已建立在Apache Spark 3.4的顶部,而完全支持Apache Spark 3.0.x,3.1.x,3.2.x,3.3.3.3.x,3.4.4.x和3.5.5.x
| 火花NLP | Apache Spark 3.5.x | Apache Spark 3.4.x | Apache Spark 3.3.x | Apache Spark 3.2.x | Apache Spark 3.1.x | Apache Spark 3.0.x | Apache Spark 2.4.x | Apache Spark 2.3.x |
|---|---|---|---|---|---|---|---|---|
| 5.5.x | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 不 |
| 5.4.x | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 不 |
| 5.3.x | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 不 |
| 5.2.x | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 不 |
| 5.1.x | 部分 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 不 |
| 5.0.x | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 不 |
从我们的发行说明中了解有关Spark NLP版本的更多信息。
| 火花NLP | Python 3.6 | Python 3.7 | Python 3.8 | Python 3.9 | Python 3.10 | Scala 2.11 | Scala 2.12 |
|---|---|---|---|---|---|---|---|
| 5.5.x | 不 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 |
| 5.4.x | 不 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 |
| 5.3.x | 不 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 |
| 5.2.x | 不 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 |
| 5.1.x | 不 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 |
| 5.0.x | 不 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 |
在我们的官方文档中找到有关4.x SparkNLP版本的更多信息
Spark NLP 5.5.2已进行了测试,并且与以下运行时间兼容:
| 中央处理器 | GPU |
|---|---|
| 14.1 / 14.1毫升 | 14.1 ML和GPU |
| 14.2 / 14.2毫升 | 14.2 ML和GPU |
| 14.3 / 14.3毫升 | 14.3 ML和GPU |
| 15.0 / 15.0毫升 | 15.0 ML和GPU |
| 15.1 / 15.0毫升 | 15.1 ML和GPU |
| 15.2 / 15.0毫升 | 15.2 ML和GPU |
| 15.3 / 15.0毫升 | 15.3 ML和GPU |
| 15.4 / 15.0毫升 | 15.4 ML和GPU |
我们与较旧的运行时间兼容。有关完整列表,请在我们的官方文档中查看数据支持
Spark NLP 5.5.2已进行了测试,并且与以下EMR版本兼容:
| EMR释放 |
|---|
| EMR-6.13.0 |
| EMR-6.14.0 |
| EMR-6.15.0 |
| EMR-7.0.0 |
| EMR-7.1.0 |
| EMR-7.2.0 |
我们与较旧的EMR版本兼容。有关完整列表,请在我们的官方文档中查看EMR支持
Amazon EMR 6.x版本的完整列表,Amazon EMR 7.x版本的完整列表
注意:不支持EMR 6.1.0和6.1.1。
通过命令行安装SPARK-NLP软件包,请遵循我们的官方文档中的这些说明
Spark NLP支持Scala 2.12.15如果您使用的是Apache Spark 3.0.x,3.1.x,3.2.x,3.3.3.x和3.4.x版本。我们的软件包被部署到Maven Central。要在您的应用程序中添加我们的任何软件包作为依赖性,您可以按照我们的官方文档中的这些说明进行操作。
如果您有兴趣,Spark NLP有一个简单的SBT项目,可以指导您如何在项目中使用它Spark NLP NLP S5.5.5.2R
Spark NLP根据您的主要Pyspark版本支持Python 3.7.x及以上。在我们的官方文档中检查所有可用安装的python
从源头编译罐子遵循我们的正式文档中的这些说明
有关如何在受支持平台上使用Spark NLP的详细说明,请参阅我们的官方文档:
| 平台 | 支持的语言 |
|---|---|
| Apache Zeppelin | Scala,Python |
| Jupyter笔记本 | Python |
| Google Colab笔记本 | Python |
| Kaggle内核 | Python |
| Databricks群集 | Scala,Python |
| EMR群集 | Scala,Python |
| GCP DataProc群集 | Scala,Python |
Spark NLP库和所有预训练的模型/管道都可以完全离线使用,而无需访问Internet。请从我们的官方文档中检查这些说明,以使用Spark NLP离线。
您可以通过Spark Properties配置更改Spark NLP配置。请从我们的官方文档中检查这些说明。
在Spark NLP中,我们可以将S3位置定义为:
NerDLApproach中使用的TensorFlow图请从我们的官方文档中检查这些说明。
需要更多例子吗?查看我们专用的Spark NLP示例存储库,以展示所有Spark NLP用例!
另外,不要忘记检查由简化构建的动作中的Spark NLP。
在此处查看我们的文章和视频页面
我们发表了一篇论文,您可以为Spark NLP库引用:
@article { KOCAMAN2021100058 ,
title = { Spark NLP: Natural language understanding at scale } ,
journal = { Software Impacts } ,
pages = { 100058 } ,
year = { 2021 } ,
issn = { 2665-9638 } ,
doi = { https://doi.org/10.1016/j.simpa.2021.100058 } ,
url = { https://www.sciencedirect.com/science/article/pii/S2665963.2.300063 } ,
author = { Veysel Kocaman and David Talby } ,
keywords = { Spark, Natural language processing, Deep learning, Tensorflow, Cluster } ,
abstract = { Spark NLP is a Natural Language Processing (NLP) library built on top of Apache Spark ML. It provides simple, performant & accurate NLP annotations for machine learning pipelines that can scale easily in a distributed environment. Spark NLP comes with 1100+ pretrained pipelines and models in more than 192+ languages. It supports nearly all the NLP tasks and modules that can be used seamlessly in a cluster. Downloaded more than 2.7 million times and experiencing 9x growth since January 2020, Spark NLP is used by 54% of healthcare organizations as the world’s most widely used NLP library in the enterprise. }
}
}5.5.2 我们感谢任何贡献:
克隆仓库,提交您的套客!或直接在此存储库中创建问题。
http://johnsnowlabs.com