O Spark PNs é uma biblioteca de processamento de linguagem natural de última geração, construída sobre o Apache Spark. Ele fornece anotações de NLP simples , de desempenho e preciso para pipelines de aprendizado de máquina que escalam facilmente em um ambiente distribuído.
O Spark PN vem com mais de 83000 oleodutos e modelos pré -gravados em mais de 200 idiomas. 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 , e muitas outras tarefas de PNL.
O Spark NLP é a única biblioteca de NLP de fonte aberta em produção que oferece transformadores de última geração, como Bert , Camembert , Albert , Electra , Xlnet , Distilbert , Roberta , Deberta , XLM-Roberta , Longformer , Burt, Elmo , UNIVENENCIDADE , PROTENHO, LIANMO, LLMAT , M2M100 , BRART , BARTO , BALMO , UNIVRINEMENT , GPT2 , Vision Transformers (VIT) , Openai Whisper , Llama , Mistral , Phi , Qwen2 e muito mais não apenas para Python e R , mas também para o ecossistema JVM ( Java , Scala e Kotlin ) em escala , estendendo o Apache Spark nativamente.
O Spark PNL fornece suporte fácil para importar modelos de várias estruturas populares:
Essa ampla gama de suporte permite integrar modelos sem problemas de diferentes fontes nos seus fluxos de trabalho de Spark PN, aumentando a flexibilidade e a compatibilidade com os ecossistemas existentes de aprendizado de máquina.
Dê uma olhada na nossa página oficial do Spark NLP: https://sparknlp.org/ para documentação e exemplos do usuário
Este é um exemplo rápido de como usar um oleoduto pré-treinado Spark NLP em Python e 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 No console python ou no kernel 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' ]Para mais exemplos, você pode visitar nossos exemplos dedicados para mostrar todos os casos de uso da Spark PNL!
Esta é uma folha de truques para o pacote Spark NLP Maven correspondente para a versão principal Apache Spark / Pyspark:
| Apache Spark | Spark NLP na CPU | Spark NLP na GPU | Spark NLP no AARCH64 (Linux) | Spark NLP no 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 |
| Iniciar a função | sparknlp.start() | sparknlp.start(gpu=True) | sparknlp.start(aarch64=True) | sparknlp.start(apple_silicon=True) |
Nota: M1/M2 e AArch64 estão sob suporte experimental . O acesso e o apoio a essas arquiteturas são limitados pela comunidade e tivemos que construir a maioria das dependências para torná -las compatíveis. Apoiamos essas duas arquiteturas, no entanto, elas podem não funcionar em alguns ambientes.
Para um rápido exemplo de uso de pipelines e modelos, dê uma olhada em nossa documentação oficial
O Spark NLP 5.5.2 foi construído sobre o Apache Spark 3.4, enquanto suporta totalmente o Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x, 3.4.x e 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 | SIM | SIM | SIM | SIM | SIM | SIM | NÃO | NÃO |
| 5.4.x | SIM | SIM | SIM | SIM | SIM | SIM | NÃO | NÃO |
| 5.3.x | SIM | SIM | SIM | SIM | SIM | SIM | NÃO | NÃO |
| 5.2.x | SIM | SIM | SIM | SIM | SIM | SIM | NÃO | NÃO |
| 5.1.x | Parcialmente | SIM | SIM | SIM | SIM | SIM | NÃO | NÃO |
| 5.0.x | SIM | SIM | SIM | SIM | SIM | SIM | NÃO | NÃO |
Saiba mais sobre as versões Spark NLP em nossas notas de lançamento.
| 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 | NÃO | SIM | SIM | SIM | SIM | NÃO | SIM |
| 5.4.x | NÃO | SIM | SIM | SIM | SIM | NÃO | SIM |
| 5.3.x | NÃO | SIM | SIM | SIM | SIM | NÃO | SIM |
| 5.2.x | NÃO | SIM | SIM | SIM | SIM | NÃO | SIM |
| 5.1.x | NÃO | SIM | SIM | SIM | SIM | NÃO | SIM |
| 5.0.x | NÃO | SIM | SIM | SIM | SIM | NÃO | SIM |
Saiba mais sobre as versões 4.x SparkNLP em nossa documentação oficial
O Spark NLP 5.5.2 foi testado e é compatível com os seguintes tempos de execução:
| 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 |
Somos compatíveis com os tempos de execução mais antigos. Para uma lista completa, verifique o suporte dos Databricks em nossa documentação oficial
O Spark NLP 5.5.2 foi testado e é compatível com os seguintes lançamentos EMR:
| Liberação do 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 compatíveis com os lançamentos do EMR mais antigos. Para uma lista completa, verifique o suporte EMR em nossa documentação oficial
Lista completa do Amazon EMR 6.x Libera a lista completa do Amazon EMR 7.x Releases
Nota: O EMR 6.1.0 e 6.1.1 não são suportados.
Para instalar os pacotes Spark-NLP através da linha de comando, siga estas instruções de nossa documentação oficial
O Spark PNL suporta Scala 2.12.15 se você estiver usando o Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x e 3.4.x versões. Nossos pacotes são implantados para a Maven Central. Para adicionar qualquer um de nossos pacotes como uma dependência em seu aplicativo, você pode seguir estas instruções de nossa documentação oficial.
Se você estiver interessado, existe um projeto SBT simples para Spark PN para guiá -lo sobre como usá -lo em seus projetos Spark NLP SBT S5.5.2R
O Spark PNL suporta o Python 3.7.x e acima, dependendo da sua principal versão do Pyspark. Verifique todas as instalações disponíveis para Python em nossa documentação oficial
Para compilar os frascos da fonte, siga estas instruções de nossa documentação oficial
Para obter instruções detalhadas sobre como usar o Spark PNL em plataformas suportadas, consulte nossa documentação oficial:
| Plataforma | Idioma (s) suportado (s) |
|---|---|
| Apache Zeppelin | Scala, Python |
| Notebook Jupyter | Python |
| Notebook do Google Colab | Python |
| Kaggle kernel | Python |
| Cluster de banco de dados | Scala, Python |
| Cluster EMR | Scala, Python |
| Cluster GCP DataProc | Scala, Python |
A Spark NLP Library e todos os modelos/pipelines pré-treinados podem ser usados totalmente offline, sem acesso à Internet. Verifique estas instruções de nossa documentação oficial para usar o Spark PNS offline.
Você pode alterar as configurações de Spark PNL através da configuração do Spark Properties. Verifique estas instruções da nossa documentação oficial.
Em Spark PNL, podemos definir locais S3 como:
NerDLApproachVerifique estas instruções da nossa documentação oficial.
Precisa de mais exemplos ? Confira nosso repositório de exemplos de Spark PNs dedicado para mostrar todos os casos de uso do Spark PNL!
Além disso, não se esqueça de verificar o Spark PNs em ação construída pelo StreamLit.
Verifique nossa página de artigos e vídeos aqui
Publicamos um artigo que você pode citar para a 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 Agradecemos qualquer tipo de contribuições:
Clone o repositório e envie suas solicitações de tração! Ou criar problemas diretamente neste repo.
http://johnsnowlabs.com