Spark NLP est une bibliothèque de traitement du langage naturel de pointe construite sur Apache Spark. Il fournit des annotations de PNL simples , performantes et précises pour les pipelines d'apprentissage automatique qui évoluent facilement dans un environnement distribué.
Spark NLP est livré avec plus de 83000 pipelines et modèles pré-entraînés dans plus de plus de 200 langues. Il offre également des tâches telles que la tokenisation , la segmentation des mots , le marquage d'une partie du discours , les incorporations de mots et de phrases, la reconnaissance des entités nommées , l'analyse de dépendance , la vérification des sorts , la classification du texte , l' analyse des sentiments , la classification des jetons , la traduction machine (+180 langues), la résumé , la réponse à la réponse à la question , la création de textes , la classification de l'image , le nombre de textes (SORMINGA Plus de tâches PNL.
Spark NLP est la seule bibliothèque NLP open-source en production qui propose des transformateurs de pointe tels que Bert , Camembert , Albert , Electra , XLNET , Distilbert , Roberta , Deberta , LaMAM Vision Transformers (VIT) , Openai Whisper , Llama , Mistral , Phi , Qwen2 , et bien d'autres non seulement à Python et R , mais aussi à l'écosystème JVM ( Java , Scala et Kotlin ) à grande échelle en étendant Native Native .
Spark NLP fournit une prise en charge facile pour l'importation de modèles à partir de divers cadres populaires:
Ce large éventail de support vous permet d'intégrer de manière transparente des modèles de différentes sources dans vos flux de travail NLP Spark, d'améliorer la flexibilité et la compatibilité avec les écosystèmes d'apprentissage automatique existants.
Jetez un œil à notre page NLP Spark officielle: https://sparknlp.org/ pour la documentation et les exemples utilisateur
Ceci est un exemple rapide de la façon d'utiliser un pipeline pré-formé NLP Spark dans Python et 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 Dans Python Console ou 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' ]Pour plus d'exemples, vous pouvez visiter nos exemples dédiés pour présenter tous les cas d'utilisation de Spark NLP!
Ceci est une feuille de triche pour le package Maven NLP Spark correspondant à la version majeure Apache Spark / Pyspark:
| Apache Spark | Spark NLP sur CPU | Spark NLP sur GPU | Spark NLP sur Aarch64 (Linux) | Spark NLP sur le silicium Apple |
|---|---|---|---|---|
| 3.0 / 3.1 / 3.2 / 3.3 / 3.4 / 3.5 | spark-nlp | spark-nlp-gpu | spark-nlp-aarch64 | spark-nlp-silicon |
| Fonction de démarrage | sparknlp.start() | sparknlp.start(gpu=True) | sparknlp.start(aarch64=True) | sparknlp.start(apple_silicon=True) |
Remarque: M1/M2 et AArch64 sont sous support experimental . L'accès et le soutien à ces architectures sont limités par la communauté et nous avons dû construire la plupart des dépendances par nous-mêmes pour les rendre compatibles. Nous soutenons ces deux architectures, cependant, ils peuvent ne pas fonctionner dans certains environnements.
Pour un exemple rapide de l'utilisation de pipelines et de modèles, jetez un œil à notre documentation officielle
Spark NLP 5.5.2 a été construit au-dessus de Apache Spark 3.4 tout en prenant en charge Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x, 3.4.x et 3.5.x
| 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 | OUI | OUI | OUI | OUI | OUI | OUI | NON | NON |
| 5.4.x | OUI | OUI | OUI | OUI | OUI | OUI | NON | NON |
| 5.3.x | OUI | OUI | OUI | OUI | OUI | OUI | NON | NON |
| 5.2.x | OUI | OUI | OUI | OUI | OUI | OUI | NON | NON |
| 5.1.x | Partiellement | OUI | OUI | OUI | OUI | OUI | NON | NON |
| 5.0.x | OUI | OUI | OUI | OUI | OUI | OUI | NON | NON |
En savoir plus sur les versions Spark NLP de nos notes de sortie.
| 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 | NON | OUI | OUI | OUI | OUI | NON | OUI |
| 5.4.x | NON | OUI | OUI | OUI | OUI | NON | OUI |
| 5.3.x | NON | OUI | OUI | OUI | OUI | NON | OUI |
| 5.2.x | NON | OUI | OUI | OUI | OUI | NON | OUI |
| 5.1.x | NON | OUI | OUI | OUI | OUI | NON | OUI |
| 5.0.x | NON | OUI | OUI | OUI | OUI | NON | OUI |
En savoir plus sur les versions 4.x SparkNLP dans notre documentation officielle
Spark NLP 5.5.2 a été testé et est compatible avec les temps d'exécution suivants:
| Processeur | 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 et GPU |
| 15.1 / 15.0 ml | 15.1 ml et 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 et GPU |
Nous sommes compatibles avec les temps anciens. Pour une liste complète, vérifiez la prise en charge de Databricks dans notre documentation officielle
Spark NLP 5.5.2 a été testé et est compatible avec les versions de DME suivantes:
| Libération de DME |
|---|
| EMR-6.13.0 |
| EMR-6.14.0 |
| EMR-6.15.0 |
| EMR-7.0.0 |
| EMR-7.1.0 |
| EMR-7.2.0 |
Nous sommes compatibles avec les versions de DME plus anciennes. Pour une liste complète, consultez le support EMR dans notre documentation officielle
Liste complète des versions Amazon EMR 6.x Liste complète des versions Amazon EMR 7.x
Remarque: les DME 6.1.0 et 6.1.1 ne sont pas pris en charge.
Pour installer les packages Spark-NLP via la ligne de commande, suivez ces instructions de notre documentation officielle
Spark NLP prend en charge Scala 2.12.15 Si vous utilisez Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x et 3.4.x versions. Nos forfaits sont déployés sur Maven Central. Pour ajouter l'un de nos packages en tant que dépendance dans votre application, vous pouvez suivre ces instructions de notre documentation officielle.
Si vous êtes intéressé, il existe un projet SBT simple pour Spark NLP pour vous guider sur la façon de l'utiliser dans vos projets Spark NLP SBT S5.5.2r
Spark NLP prend en charge Python 3.7.x et au-dessus en fonction de votre version principale Pyspark. Vérifiez toutes les installations disponibles pour Python dans notre documentation officielle
Pour compiler les pots de Source, suivez ces instructions de notre documentation officielle
Pour des instructions détaillées sur la façon d'utiliser Spark NLP sur les plates-formes prises en charge, veuillez vous référer à notre documentation officielle:
| Plate-forme | Langue (s) soutenue (s) |
|---|---|
| Apache Zeppelin | Scala, python |
| Cahier de jupyter | Python |
| Google Colab Notebook | Python |
| Noyau de kaggle | Python |
| Cluster de données | Scala, python |
| Cluster EMR | Scala, python |
| Cluster GCP DataProc | Scala, python |
La bibliothèque NLP Spark et tous les modèles / pipelines pré-formés peuvent être utilisés entièrement hors ligne sans accès à Internet. Veuillez vérifier ces instructions de notre documentation officielle pour utiliser Spark NLP hors ligne.
Vous pouvez modifier les configurations NLP Spark via la configuration des propriétés Spark. Veuillez vérifier ces instructions de notre documentation officielle.
Dans Spark NLP, nous pouvons définir les emplacements S3 pour:
NerDLApproachVeuillez vérifier ces instructions de notre documentation officielle.
Besoin de plus d' exemples ? Consultez notre référentiel d'exemples NLP Spark dédié pour présenter tous les cas d'utilisation NLP Spark!
N'oubliez pas non plus de vérifier Spark NLP en action construite par Streamlit.
Consultez notre page d'articles et de vidéos ici
Nous avons publié un article que vous pouvez citer pour la bibliothèque NLP Spark:
@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 Nous apprécions toute sorte de contributions:
Clone le repo et soumettez vos refus! Ou créer directement des problèmes dans ce dépôt.
http://johnsnowlabs.com