Spark NLP는 Apache Spark 위에 내장 된 최첨단 자연어 처리 라이브러리입니다. 분산 환경에서 쉽게 확장하는 기계 학습 파이프 라인에 대해 간단하고 성능 및 정확한 NLP 주석을 제공합니다.
Spark NLP에는 200 개 이상의 언어로 83000 개 이상의 사전 관리 파이프 라인 과 모델이 제공됩니다. 또한 토큰 화 , 단어 세분화 , 부문 태그 태그 , 단어 및 문장 임베드 , 이름이라는 이름의 엔티티 인식 , 의존성 구문 분석 , 맞춤법 검사 , 텍스트 분류 , 정서 분석 , 토큰 분류 , 기계 번역 (+180 언어), 요약 , 질문 답변 , 텍스트 세대 , 이미지 상실 , 텍스트에 대한 이미지 및 텍스트에 대한 텍스트 및 기름에 대한 작업을 제공합니다 . NLP 작업.
Spark NLP 는 Bert , Camembert , Albert , Electra , XLNet , Distilbert, Roberta , Deberta , XLM-Roberta , Longformer , Elmo , Universal Chentence encoder , llama-2 , M2M100 , Bart , E5 , Google T5, Openianmt 2 , Google T5 , Openai , Vision Transformers (VIT) , Openai Whisper , Llama , Mistral , Phi , Qwen2 등, Python 및 R 뿐만 아니라 JVM 생태계 ( Java , Scala 및 Kotlin )에도 Apache Spark가 기본적으로 확장되어 규모가 규모 입니다.
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 파이썬 콘솔 또는 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 사용 사례를 보여줄 수 있습니다!
이는 Apache Spark / Pyspark 주요 버전의 해당 Spark NLP Maven 패키지의 치트 시트입니다.
| 아파치 스파크 | CPU의 스파크 NLP | GPU의 스파크 NLP | Aarch64 (Linux)의 Spark NLP | Apple Silicon의 Spark 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.4.x 및 3.5.x를 완전히 지원합니다.
| 스파크 NLP | 아파치 스파크 3.5.x | 아파치 스파크 3.4.x | 아파치 스파크 3.3.x | 아파치 스파크 3.2.x | 아파치 스파크 3.1.x | 아파치 스파크 3.0.x | 아파치 스파크 2.4.x | 아파치 스파크 2.3.x |
|---|---|---|---|---|---|---|---|---|
| 5.5.x | 예 | 예 | 예 | 예 | 예 | 예 | 아니요 | 아니요 |
| 5.4.x | 예 | 예 | 예 | 예 | 예 | 예 | 아니요 | 아니요 |
| 5.3.x | 예 | 예 | 예 | 예 | 예 | 예 | 아니요 | 아니요 |
| 5.2.x | 예 | 예 | 예 | 예 | 예 | 예 | 아니요 | 아니요 |
| 5.1.x | 부분적으로 | 예 | 예 | 예 | 예 | 예 | 아니요 | 아니요 |
| 5.0.x | 예 | 예 | 예 | 예 | 예 | 예 | 아니요 | 아니요 |
릴리스 노트에서 Spark NLP 버전에 대해 자세히 알아보십시오.
| 스파크 NLP | 파이썬 3.6 | 파이썬 3.7 | 파이썬 3.8 | 파이썬 3.9 | 파이썬 3.10 | 스칼라 2.11 | 스칼라 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는 테스트되었으며 다음 런타임과 호환됩니다.
| 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 |
우리는 구형 런타임과 호환됩니다. 공식 문서에서 전체 목록 확인 데이터 릭 지원을 확인하십시오.
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는 Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x 및 3.4.x 버전을 사용하는 경우 Scala 2.12.15를 지원합니다. 우리의 패키지는 Maven Central에 배치되었습니다. 응용 프로그램의 종속성으로 패키지를 추가하려면 공식 문서의 지침을 따라갈 수 있습니다.
관심이 있으시면 Spark NLP를위한 간단한 SBT 프로젝트가 있습니다. 프로젝트에서 사용하는 방법을 안내합니다 Spark NLP SBT S5.5.2R
Spark NLP는 주요 PySpark 버전에 따라 Python 3.7.x 이상을 지원합니다. 공식 문서에서 Python의 사용 가능한 모든 설치를 확인하십시오.
소스에서 항아리를 컴파일하려면 공식 문서의 다음 지침을 따르십시오.
지원되는 플랫폼에서 Spark NLP를 사용하는 방법에 대한 자세한 지침은 공식 문서를 참조하십시오.
| 플랫폼 | 지원되는 언어 |
|---|---|
| 아파치 제프 펠린 | 스칼라, 파이썬 |
| Jupyter 노트북 | 파이썬 |
| Google Colab 노트북 | 파이썬 |
| Kaggle 커널 | 파이썬 |
| Databricks 클러스터 | 스칼라, 파이썬 |
| EMR 클러스터 | 스칼라, 파이썬 |
| GCP Dataproc 클러스터 | 스칼라, 파이썬 |
Spark NLP 라이브러리 및 미리 훈련 된 모든 모델/파이프 라인은 인터넷에 액세스 할 수없는 오프라인으로 사용할 수 있습니다. Spark NLP Offline을 사용하려면 공식 문서 에서이 지침을 확인하십시오.
Spark Properties 구성을 통해 Spark NLP 구성을 변경할 수 있습니다. 공식 문서 에서이 지침을 확인하십시오.
Spark NLP에서는 S3 위치를 다음과 같이 정의 할 수 있습니다.
NerDLApproach 에 사용 된 텐서 플로 그래프를 저장하십시오공식 문서 에서이 지침을 확인하십시오.
더 많은 예가 필요하십니까? 전용 Spark NLP 예제 저장소를 확인하여 모든 Spark NLP 사용 케이스를 표시하십시오!
또한 Streamlit에 의해 구축 된 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 우리는 모든 종류의 기여에 감사드립니다.
레포를 복제하고 풀 수반을 제출하십시오! 또는이 repo에서 직접 문제를 만듭니다.
http://johnsnowlabs.com