Spark NLP เป็นห้องสมุดการประมวลผลภาษาธรรมชาติที่ทันสมัยที่สร้างขึ้นบน Apache Spark มันให้คำอธิบายประกอบ NLP ที่ เรียบ ง่าย และ มีความแม่นยำ สำหรับท่อการเรียนรู้ของเครื่องที่ ปรับขนาดได้ อย่างง่ายดายในสภาพแวดล้อมแบบกระจาย
Spark NLP มาพร้อมกับ ท่อ และ รุ่น ที่ผ่านการฝึกอบรม 83000+ ในมากกว่า 200 ภาษา นอกจากนี้ยังมีงานเช่น tokenization , การแบ่งส่วนคำ , การ ติด แท็กส่วนหนึ่งของคำพูด , คำและ ประโยค ฝังตัว, การจดจำเอน ทิตีที่มีชื่อ , การแยก วิเคราะห์ การพึ่งพา, การตรวจสอบ การ สะกด , การจำแนกข้อความ , การ วิเคราะห์ ความรู้สึก, การ จำแนก ประเภทของ เครื่องจักร และงาน NLP อื่น ๆ อีกมากมาย
Spark NLP เป็นห้องสมุด NLP โอเพ่นซอร์สแห่งเดียวใน การผลิต ที่ให้บริการ หม้อแปลง ไฟฟ้า ที่ ทันสมัยเช่น Bert , Camembert , Albert , Electra , Xlnet , Distilbert , Roberta , Deberta , XLM-Roberta , Longformer , Elmo , Vision Transformers (VIT) , Openai Whisper , Llama , Mistral , PHI , Qwen2 และอีกมากมายไม่เพียง แต่กับ Python และ R แต่ยังรวมถึงระบบนิเวศ JVM ( Java , Scala และ Kotlin ) ใน ระดับ โดยการขยาย Apache Spark
Spark NLP ให้การสนับสนุนที่ง่ายสำหรับการนำเข้าโมเดลจากเฟรมเวิร์กยอดนิยมที่หลากหลาย:
การสนับสนุนที่หลากหลายนี้ช่วยให้คุณสามารถรวมโมเดลจากแหล่งต่าง ๆ เข้ากับเวิร์กโฟลว์ NLP Spark ได้อย่างราบรื่นเพิ่มความยืดหยุ่นและความเข้ากันได้กับระบบนิเวศการเรียนรู้ของเครื่องที่มีอยู่
ดูหน้า Spark NLP อย่างเป็นทางการของเรา: https://sparknlp.org/ สำหรับเอกสารและตัวอย่างของผู้ใช้
นี่เป็นตัวอย่างที่รวดเร็วของวิธีการใช้ท่อส่ง NLP ที่ผ่านการฝึกอบรมล่วงหน้าใน Python และ 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 ในเคอร์เนล Python Console หรือ 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 ทั้งหมด!
นี่คือ Cheatsheet สำหรับแพ็คเกจ Spark NLP Maven ที่เกี่ยวข้องกับ Apache Spark / Pyspark Major เวอร์ชัน:
| Apache Spark | Spark NLP บน CPU | Spark NLP บน GPU | Spark NLP บน Aarch64 (Linux) | Spark NLP บน 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 |
| เริ่มฟังก์ชั่น | 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.3.x, 3.4.x และ 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 | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | เลขที่ | เลขที่ |
| 5.4.x | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | เลขที่ | เลขที่ |
| 5.3.x | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | เลขที่ | เลขที่ |
| 5.2.x | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | เลขที่ | เลขที่ |
| 5.1.x | บางส่วน | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | เลขที่ | เลขที่ |
| 5.0.x | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | เลขที่ | เลขที่ |
ค้นหาข้อมูลเพิ่มเติมเกี่ยวกับเวอร์ชัน Spark NLP จากบันทึกการเปิดตัวของเรา
| Spark NLP | Python 3.6 | Python 3.7 | Python 3.8 | Python 3.9 | Python 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 ได้รับการทดสอบและเข้ากันได้กับรันไทม์ต่อไปนี้:
| ซีพียู | GPU |
|---|---|
| 14.1 / 14.1 มล. | 14.1 มล. & GPU |
| 14.2 / 14.2 มล. | 14.2 มล. & GPU |
| 14.3 / 14.3 มล. | 14.3 มล. และ GPU |
| 15.0 / 15.0 มล. | 15.0 มล. และ GPU |
| 15.1 / 15.0 มล. | 15.1 มล. & GPU |
| 15.2 / 15.0 มล. | 15.2 มล. & GPU |
| 15.3 / 15.0 มล. | 15.3 มล. & GPU |
| 15.4 / 15.0 มล. | 15.4 มล. และ GPU |
เราเข้ากันได้กับรันไทม์ที่เก่ากว่า สำหรับการตรวจสอบรายการข้อมูลเต็มรูปแบบการสนับสนุน Databricks ในเอกสารอย่างเป็นทางการของเรา
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 รองรับ Scala 2.12.15 หากคุณใช้ Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x และ 3.4.x แพ็คเกจของเราถูกนำไปใช้กับ Maven Central ในการเพิ่มแพ็คเกจใด ๆ ของเราเป็นการพึ่งพาในแอปพลิเคชันของคุณคุณสามารถทำตามคำแนะนำเหล่านี้จากเอกสารอย่างเป็นทางการของเรา
หากคุณสนใจมีโครงการ SBT อย่างง่ายสำหรับ Spark NLP เพื่อแนะนำคุณเกี่ยวกับวิธีการใช้ในโครงการของคุณ Spark NLP SBT S5.5.2R
Spark NLP รองรับ Python 3.7.x ขึ้นไปขึ้นอยู่กับรุ่น Pyspark ที่สำคัญของคุณ ตรวจสอบการติดตั้งที่มีอยู่ทั้งหมดสำหรับ Python ในเอกสารอย่างเป็นทางการของเรา
เพื่อรวบรวมขวดจากแหล่งที่มาทำตามคำแนะนำเหล่านี้จากเอกสารอย่างเป็นทางการของเรา
สำหรับคำแนะนำโดยละเอียดเกี่ยวกับวิธีการใช้ Spark NLP บนแพลตฟอร์มที่รองรับโปรดดูเอกสารอย่างเป็นทางการของเรา:
| แพลตฟอร์ม | ภาษาที่รองรับ |
|---|---|
| Apache Zeppelin | Scala, Python |
| สมุดบันทึก Jupyter | งูหลาม |
| สมุดบันทึก Google Colab | งูหลาม |
| เคอร์เนล Kaggle | งูหลาม |
| คลัสเตอร์ Databricks | Scala, Python |
| คลัสเตอร์ EMR | Scala, Python |
| GCP Dataproc Cluster | Scala, Python |
Library NLP Spark และรุ่น/ท่อที่ได้รับการฝึกอบรมล่วงหน้าทั้งหมดสามารถใช้ออฟไลน์ทั้งหมดโดยไม่สามารถเข้าถึงอินเทอร์เน็ตได้ โปรดตรวจสอบคำแนะนำเหล่านี้จากเอกสารอย่างเป็นทางการของเราเพื่อใช้ Spark NLP ออฟไลน์
คุณสามารถเปลี่ยนการกำหนดค่า NLP Spark ผ่านการกำหนดค่าคุณสมบัติ Spark โปรดตรวจสอบคำแนะนำเหล่านี้จากเอกสารอย่างเป็นทางการของเรา
ใน Spark NLP เราสามารถกำหนดตำแหน่ง S3 เป็น:
NerDLApproachโปรดตรวจสอบคำแนะนำเหล่านี้จากเอกสารอย่างเป็นทางการของเรา
ต้องการ ตัวอย่าง เพิ่มเติมหรือไม่? ตรวจสอบที่เก็บตัวอย่าง Spark NLP ของเราโดยเฉพาะเพื่อแสดงกรณีการใช้งานของ Spark NLP ทั้งหมด!
นอกจากนี้อย่าลืมตรวจสอบ Spark NLP ในการดำเนินการที่สร้างโดย Streamlit
ตรวจสอบหน้าบทความและวิดีโอของเราที่นี่
เราได้เผยแพร่บทความที่คุณสามารถอ้างอิงได้สำหรับห้องสมุด 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 และส่งคำตอบแบบดึงของคุณ! หรือสร้างปัญหาโดยตรงใน repo นี้
http://johnsnowlabs.com