Spark NLP ist eine hochmoderne Bibliothek für natürliche Sprache, die auf Apache Spark basiert. Es bietet einfache , leistungsfähige und genaue NLP -Annotationen für maschinelle Lernpipelines, die in einer verteilten Umgebung problemlos skalieren .
Spark NLP verfügt über 83000+ vorbereitete Pipelines und Modelle in mehr als 200 Sprachen. 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 -Aufgaben.
Spark NLP ist die einzige Open-Source-NLP-Bibliothek in der Produktion , die hochmoderne Transformatoren wie Bert , Camembert , Albert , Electra , XLNet , Distilbert , Roberta , Deberta , XLM-Roberta , Longformer , Elmo , Universal-Sätze-Encoder , Open, Open, Open, Open, Open, Open , Open, Open, Open, Open, Open, Open, Open, Open, Open, Open, Open , E5 , E5, E5, Open , Open, E5 , Open, BART, E5 , an . Transformers (Vit) , Openai Whisper , Lama , Mistral , Phi , Qwen2 und vieles mehr nicht nur für Python und R , sondern auch zum JVM -Ökosystem ( Java , Scala und Kotlin ) in Maßstab, indem sie den Apache -Spark nativ erweitern.
Spark NLP bietet eine einfache Unterstützung für das Importieren von Modellen aus verschiedenen beliebten Frameworks:
Mit diesem breiten Bereich der Unterstützung können Sie Modelle nahtlos aus verschiedenen Quellen in Ihre Funken -NLP -Workflows integrieren und die Flexibilität und Kompatibilität mit vorhandenen Ökosystemen für maschinelles Lernen verbessern.
Schauen Sie sich unsere offizielle Spark NLP -Seite an: https://sparknlp.org/ für Benutzerdokumentation und Beispiele
Dies ist ein kurzes Beispiel für die Verwendung einer vorgebildeten Spark NLP-Pipeline in Python und PySpark:
$ 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 In Python Console oder Jupyter Python3 Kernel:
# 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' ]Für weitere Beispiele können Sie unsere dedizierten Beispiele besuchen, um alle Funken -NLP -Anwendungsfälle zu präsentieren!
Dies ist ein Cheatsheet für das entsprechende Spark NLP Maven -Paket für Apache Spark / PySpark Major Version:
| Apache Funken | Spark NLP auf der CPU | Spark NLP auf GPU | Spark NLP auf AARCH64 (Linux) | Spark NLP auf Apple Silicon |
|---|---|---|---|---|
| 3.0/3.1/3.2/3.3/3.4/3.5 | spark-nlp | spark-nlp-gpu | spark-nlp-aarch64 | spark-nlp-silicon |
| Startfunktion | sparknlp.start() | sparknlp.start(gpu=True) | sparknlp.start(aarch64=True) | sparknlp.start(apple_silicon=True) |
HINWEIS: M1/M2 und AArch64 stehen unter experimental Unterstützung. Der Zugang und die Unterstützung dieser Architekturen sind von der Gemeinde begrenzt und wir mussten die meisten Abhängigkeiten selbst aufbauen, um sie kompatibel zu machen. Wir unterstützen diese beiden Architekturen, sie funktionieren jedoch möglicherweise nicht in einigen Umgebungen.
Ein kurzes Beispiel für die Verwendung von Pipelines und Modellen finden Sie in unserer offiziellen Dokumentation
Spark NLP 5.5.2 wurde auf Apache Spark 3.4 aufgebaut, während Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x, 3.4.x und 3.5.x vollständig unterstützt
| Spark 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 | JA | JA | JA | JA | JA | JA | NEIN | NEIN |
| 5.4.x | JA | JA | JA | JA | JA | JA | NEIN | NEIN |
| 5.3.x | JA | JA | JA | JA | JA | JA | NEIN | NEIN |
| 5.2.x | JA | JA | JA | JA | JA | JA | NEIN | NEIN |
| 5.1.x | Teilweise | JA | JA | JA | JA | JA | NEIN | NEIN |
| 5.0.x | JA | JA | JA | JA | JA | JA | NEIN | NEIN |
Erfahren Sie mehr über Spark NLP -Versionen aus unseren Versionshinweise.
| Spark 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 | NEIN | JA | JA | JA | JA | NEIN | JA |
| 5.4.x | NEIN | JA | JA | JA | JA | NEIN | JA |
| 5.3.x | NEIN | JA | JA | JA | JA | NEIN | JA |
| 5.2.x | NEIN | JA | JA | JA | JA | NEIN | JA |
| 5.1.x | NEIN | JA | JA | JA | JA | NEIN | JA |
| 5.0.x | NEIN | JA | JA | JA | JA | NEIN | JA |
Erfahren Sie mehr über 4.x SparkNLP -Versionen in unserer offiziellen Dokumentation
Spark NLP 5.5.2 wurde getestet und ist mit den folgenden Laufzeiten kompatibel:
| CPU | GPU |
|---|---|
| 14.1 / 14.1 ml | 14,1 ml & gpu |
| 14,2 / 14,2 ml | 14,2 ml & gpu |
| 14.3 / 14.3 ml | 14,3 ml & gpu |
| 15.0 / 15.0 ml | 15,0 ml & GPU |
| 15.1 / 15.0 ml | 15,1 ml & gpu |
| 15,2 / 15,0 ml | 15,2 ml & GPU |
| 15.3 / 15.0 ml | 15,3 ml & GPU |
| 15,4 / 15,0 ml | 15,4 ml & GPU |
Wir sind mit älteren Laufzeiten kompatibel. Für eine vollständige Listen -Überprüfung der Datenbeutelunterstützung in unserer offiziellen Dokumentation
Spark NLP 5.5.2 wurde getestet und ist mit den folgenden EMR -Veröffentlichungen kompatibel:
| EMR -Veröffentlichung |
|---|
| EMR-6.13.0 |
| EMR-6.14.0 |
| EMR-6.15.0 |
| EMR-7.0.0 |
| EMR-7.1.0 |
| EMR-7.2.0 |
Wir sind mit älteren EMR -Veröffentlichungen kompatibel. Für eine vollständige Listen -Überprüfung der EMR -Unterstützung in unserer offiziellen Dokumentation finden Sie
Vollständige Liste der Amazon EMR 6.x -Releases Vollständige Liste der Amazon EMR 7.x -Veröffentlichungen
Hinweis: Die EMR 6.1.0 und 6.1.1 werden nicht unterstützt.
So installieren Sie Spark-NLP-Pakete über die Befehlszeile. Befolgen Sie diese Anweisungen aus unserer offiziellen Dokumentation
Spark NLP unterstützt Scala 2.12.15, wenn Sie Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x und 3.4.x verwenden. Unsere Pakete werden in Maven Central eingesetzt. Um unsere Pakete als Abhängigkeit in Ihrer Bewerbung hinzuzufügen, können Sie diese Anweisungen aus unserer offiziellen Dokumentation befolgen.
Wenn Sie interessiert sind, gibt es ein einfaches SBT -Projekt für Spark NLP, das Sie dazu leitet, wie Sie es in Ihren Projekten verwenden können
Spark NLP unterstützt Python 3.7.x und höher, abhängig von Ihrer wichtigsten PYSPARK -Version. Überprüfen Sie alle verfügbaren Installationen für Python in unserer offiziellen Dokumentation
Um die Gläser aus der Quelle zu kompilieren, folgen Sie diesen Anweisungen aus unserer offiziellen Dokumentation
Ausführliche Anweisungen zur Verwendung von Spark NLP auf unterstützten Plattformen finden Sie in unserer offiziellen Dokumentation:
| Plattform | Unterstützte Sprache (en) |
|---|---|
| Apache Zeppelin | Scala, Python |
| Jupyter Notebook | Python |
| Google Colab Notebook | Python |
| Kaggle Kernel | Python |
| Databricks Cluster | Scala, Python |
| EMR Cluster | Scala, Python |
| GCP -Dataproc -Cluster | Scala, Python |
Die Spark NLP-Bibliothek und alle vorgebildeten Modelle/Pipelines können vollständig offline verwendet werden, ohne dass das Internet zugänglich ist. Bitte überprüfen Sie diese Anweisungen aus unserer offiziellen Dokumentation, um Spark NLP offline zu verwenden.
Sie können die Spark -NLP -Konfigurationen über Spark Properties -Konfiguration ändern. Bitte überprüfen Sie diese Anweisungen aus unserer offiziellen Dokumentation.
In Spark NLP können wir S3 -Standorte definieren, um:
NerDLApproach verwendet werdenBitte überprüfen Sie diese Anweisungen aus unserer offiziellen Dokumentation.
Benötigen Sie weitere Beispiele ? Schauen Sie sich unser dediziertes Spark NLP -Beispiel -Repository an, um alle Spark NLP -Anwendungsfälle zu präsentieren!
Vergessen Sie auch nicht, Spark NLP in Aktion zu überprüfen, das von Streamlit erstellt wurde.
Überprüfen Sie hier unsere Artikel und Videosseite
Wir haben ein Papier veröffentlicht, das Sie für die Spark NLP -Bibliothek zitieren können:
@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 Wir schätzen jede Art von Beiträgen:
Klonen Sie das Repo und reichen Sie Ihre Pull-Requests ein! Oder direkt Probleme in diesem Repo erstellen.
http://johnsnowlabs.com