Spark NLP es una biblioteca de procesamiento de lenguaje natural de última generación construida sobre Apache Spark. Proporciona anotaciones de PNL simples , performativas y precisas para tuberías de aprendizaje automático que se escalan fácilmente en un entorno distribuido.
Spark NLP viene con más de 83000 tuberías y modelos previos a la aparición en más de más de 200 idiomas. También ofrece tareas como tokenización , segmentación de palabras , etiquetado de parte de la voz , incrustaciones de palabras y oraciones, reconocimiento de entidad con nombre , análisis de dependencia , verificación de hechizos , clasificación de texto , análisis de sentimientos , clasificación de token , traducción automática (+180 lenguajes), respuesta de preguntas, respuestas de tabla, respuesta de tabla, generación de textos, clasificación de imagen, imagen a imagen (captación de contactos), reconocimiento automático de discurso, cero de preguntas de cero, cero de respuesta de la tabla de la tabla, la generación de textos, la clasificación de la imagen, la imagen a la imagen a la imagen (captación) del habla, el reconocimiento de los idiomas de la cero, la respuesta , la respuesta de la tabla, la respuesta de la tabla , la respuesta de la tabla , la clasificación de la imagen , la imagen de la imagen a la imagen de la imagen (captación) , el reconocimiento de los idiomas de las cero de la tabla, la cero, el Automático, el Automático, el Automático , el Automático). Muchas más tareas de PNL.
Spark NLP es la única biblioteca de NLP de código abierto en producción que ofrece transformadores de última generación como Bert , Camembert , Albert , Electra , XLNet , Distilbert , Roberta , Deberta , XLM-Roberta , Longformer , ELMO , Universal Orients Encoder , Llama-2 , M2M100 , BART , Instructor , E5 , Google, marzo, marzo , marzo , APER GPT2 , Vision Transformers (VIT) , Openai Whisper , Llama , Mistral , Phi , Qwen2 y muchos más no solo a Python y R , sino también al ecosistema JVM ( Java , Scala y Kotlin ) a escala extendiendo la chispa de Apache Nativo.
Spark NLP proporciona un soporte fácil para importar modelos de varios marcos populares:
Esta amplia gama de soporte le permite integrar a la perfección modelos de diferentes fuentes en sus flujos de trabajo Spark NLP, mejorando la flexibilidad y la compatibilidad con los ecosistemas de aprendizaje automático existentes.
Eche un vistazo a nuestra página oficial de Spark NLP: https://sparknlp.org/ para la documentación y ejemplos del usuario
Este es un ejemplo rápido de cómo usar una tubería pre-entrenada Spark NLP en Python y 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 En la consola Python o 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' ]¡Para más ejemplos, puede visitar nuestros ejemplos dedicados para mostrar todos los casos de uso de Spark NLP!
Esta es una hoja de trucos para el paquete Maven Spark NLP correspondiente a Apache Spark / Pyspark Versión principal:
| Apache Spark | Spark NLP en CPU | Spark NLP en GPU | Spark NLP en Aarch64 (Linux) | Spark NLP en el silicio de manzana |
|---|---|---|---|---|
| 3.0/3.1/3.2/3.3/3.4/3.5 | spark-nlp | spark-nlp-gpu | spark-nlp-aarch64 | spark-nlp-silicon |
| Función de inicio | sparknlp.start() | sparknlp.start(gpu=True) | sparknlp.start(aarch64=True) | sparknlp.start(apple_silicon=True) |
Nota: M1/M2 y AArch64 están bajo soporte experimental . El acceso y el apoyo a estas arquitecturas están limitados por la comunidad y tuvimos que construir la mayoría de las dependencias por nosotros mismos para hacerlas compatibles. Apoyamos estas dos arquitecturas, sin embargo, es posible que no funcionen en algunos entornos.
Para obtener un ejemplo rápido del uso de tuberías y modelos, eche un vistazo a nuestra documentación oficial
Spark NLP 5.5.2 se ha construido sobre Apache Spark 3.4, mientras que es compatible con Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x, 3.4.x y 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 | SÍ | SÍ | SÍ | SÍ | SÍ | SÍ | NO | NO |
| 5.4.x | SÍ | SÍ | SÍ | SÍ | SÍ | SÍ | NO | NO |
| 5.3.x | SÍ | SÍ | SÍ | SÍ | SÍ | SÍ | NO | NO |
| 5.2.x | SÍ | SÍ | SÍ | SÍ | SÍ | SÍ | NO | NO |
| 5.1.x | Parcialmente | SÍ | SÍ | SÍ | SÍ | SÍ | NO | NO |
| 5.0.x | SÍ | SÍ | SÍ | SÍ | SÍ | SÍ | NO | NO |
Obtenga más información sobre las versiones de Spark NLP de nuestras notas de lanzamiento.
| 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 | NO | SÍ | SÍ | SÍ | SÍ | NO | SÍ |
| 5.4.x | NO | SÍ | SÍ | SÍ | SÍ | NO | SÍ |
| 5.3.x | NO | SÍ | SÍ | SÍ | SÍ | NO | SÍ |
| 5.2.x | NO | SÍ | SÍ | SÍ | SÍ | NO | SÍ |
| 5.1.x | NO | SÍ | SÍ | SÍ | SÍ | NO | SÍ |
| 5.0.x | NO | SÍ | SÍ | SÍ | SÍ | NO | SÍ |
Obtenga más información sobre 4.x versiones de SparkNLP en nuestra documentación oficial
Spark NLP 5.5.2 ha sido probado y es compatible con los siguientes tiempos de ejecución:
| UPC | GPU |
|---|---|
| 14.1 / 14.1 ml | 14.1 ml y GPU |
| 14.2 / 14.2 ml | 14.2 ml y GPU |
| 14.3 / 14.3 ml | 14.3 ml y GPU |
| 15.0 / 15.0 ml | 15.0 ml y GPU |
| 15.1 / 15.0 ml | 15.1 ml y GPU |
| 15.2 / 15.0 ml | 15.2 ml y GPU |
| 15.3 / 15.0 ml | 15.3 ml y GPU |
| 15.4 / 15.0 ml | 15.4 ml y GPU |
Somos compatibles con los tiempos de ejecución más antiguos. Para una lista completa, verifique el soporte de Databricks en nuestra documentación oficial
Spark NLP 5.5.2 ha sido probado y es compatible con las siguientes versiones de EMR:
| Lanzamiento de 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 |
Somos compatibles con los lanzamientos de EMR más antiguos. Para una lista completa, verifique el soporte de EMR en nuestra documentación oficial
Lista completa de Amazon EMR 6.x Lista completa de versiones de Amazon EMR 7.x
Nota: El EMR 6.1.0 y 6.1.1 no son compatibles.
Para instalar paquetes Spark-NLP a través de la línea de comandos, siga estas instrucciones de nuestra documentación oficial
Spark NLP admite Scala 2.12.15 si está utilizando Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x y 3.4.x versiones. Nuestros paquetes se implementan en Maven Central. Para agregar cualquiera de nuestros paquetes como dependencia en su aplicación, puede seguir estas instrucciones desde nuestra documentación oficial.
Si está interesado, hay un proyecto SBT simple para Spark NLP para guiarlo sobre cómo usarlo en sus proyectos Spark NLP SBT S5.5.2R
Spark NLP admite Python 3.7.x y arriba dependiendo de su versión principal de Pyspark. Verifique todas las instalaciones disponibles para Python en nuestra documentación oficial
Para compilar los frascos de la fuente, siga estas instrucciones de nuestra documentación oficial
Para obtener instrucciones detalladas sobre cómo usar Spark NLP en plataformas compatibles, consulte nuestra documentación oficial:
| Plataforma | Idioma apoyado |
|---|---|
| Apache zeppelin | Scala, Python |
| Cuaderno de jupyter | Pitón |
| Cuaderno de Google Colab | Pitón |
| Kernel kaggle | Pitón |
| Clúster de databricks | Scala, Python |
| Clúster de EMR | Scala, Python |
| GCP DataProc Cluster | Scala, Python |
La biblioteca Spark NLP y todos los modelos/tuberías previamente capacitados pueden usarse completamente fuera de línea sin acceso a Internet. Consulte estas instrucciones de nuestra documentación oficial para usar Spark NLP fuera de línea.
Puede cambiar las configuraciones de Spark NLP a través de la configuración de propiedades de Spark. Consulte estas instrucciones de nuestra documentación oficial.
En Spark NLP podemos definir ubicaciones S3 para:
NerDLApproachConsulte estas instrucciones de nuestra documentación oficial.
¿Necesitas más ejemplos ? ¡Vea nuestro repositorio de ejemplos de NLP dedicado para mostrar todos los casos de uso de Spark NLP!
Además, no olvide verificar Spark NLP en acción construida por Streamlit.
Revise nuestros artículos y videos aquí
Hemos publicado un artículo que puede citar para la biblioteca 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 Apreciamos cualquier tipo de contribuciones:
¡Clone el repositorio y envíe sus solicitudes de extracción! O crear directamente problemas en este repositorio.
http://johnsnowlabs.com