De verwerking van natuurlijke taal (NLP) heeft veel toepassingen, zoals sentimentanalyse, onderwerpdetectie, taaldetectie, sleuteltermextractie en documentcategorisatie.
U kunt NLP gebruiken voor het volgende:
- Classificeer bijvoorbeeld documenten als gevoelig of spam.
- Voer volgende verwerkingen of zoekopdrachten uit met NLP-uitvoer.
- Tekst samenvatten door entiteiten in het document te identificeren.
- Tag documenten met trefwoorden, waarbij gebruik wordt gemaakt van geïdentificeerde entiteiten.
- Inhoud zoeken en ophalen via taggen.
- De belangrijkste onderwerpen van een document samenvatten met behulp van geïdentificeerde entiteiten.
- Categoriseer documenten voor navigatie met behulp van gedetecteerde onderwerpen.
- Gerelateerde documenten opsommen op basis van een geselecteerd onderwerp.
- Beoordeel het gevoel van tekst om de positieve of negatieve toon ervan te begrijpen.
Met verbeteringen in technologie kan NLP niet alleen worden gebruikt voor het categoriseren en analyseren van tekstgegevens, maar ook voor het verbeteren van interpreteerbare AI-functies in verschillende domeinen. De integratie van Large Language Models (LLM) verbetert de mogelijkheden van NLP aanzienlijk. LLM's zoals GPT en BERT kunnen menselijke, contextbewuste tekst genereren, waardoor ze zeer effectief zijn voor complexe taalverwerkingstaken. Ze vormen een aanvulling op bestaande NLP-technieken door bredere cognitieve taken af te handelen, waardoor gesprekssystemen en klantbetrokkenheid worden verbeterd, met name met modellen zoals Dolly 2.0van Databricks.
Relatie en verschillen tussen taalmodellen en NLP
NLP is een uitgebreid veld dat verschillende technieken omvat voor het verwerken van menselijke taal. Taalmodellen zijn daarentegen een specifieke subset binnen NLP, gericht op deep learning om taaltaken op hoog niveau uit te voeren. Hoewel taalmodellen NLP verbeteren door geavanceerde mogelijkheden voor het genereren en begrijpen van tekst te bieden, zijn ze niet synoniem voor NLP. In plaats daarvan fungeren ze als krachtige hulpprogramma's binnen het bredere NLP-domein, waardoor geavanceerdere taalverwerking mogelijk is.
Notitie
Dit artikel richt zich op NLP. De relatie tussen NLP en taalmodellen laat zien dat taalmodellen NLP-processen verbeteren door middel van superieure taalkennis en generatiemogelijkheden.
Apache, Apache® Spark en het vlamlogo zijn gedeponeerde handelsmerken of handelsmerken van de Apache Software Foundation in de Verenigde Staten en/of andere landen. Er wordt geen goedkeuring door De Apache Software Foundation geïmpliceerd door het gebruik van deze markeringen.
Potentiële gebruikscases
Bedrijfsscenario's die kunnen profiteren van aangepaste NLP zijn onder andere:
- Documentinformatie voor handgeschreven of door machines gemaakte documenten in financiën, gezondheidszorg, detailhandel, overheid en andere sectoren.
- Brancheonafhankelijke NLP-taken voor tekstverwerking, zoals NER (Naamentiteitsherkenning), classificatie, samenvatting en relatieextractie. Met deze taken wordt het proces voor het ophalen, identificeren en analyseren van documentinformatie, zoals tekst en ongestructureerde gegevens, geautomatiseerd. Voorbeelden van deze taken zijn risicostratificatiemodellen, ontologieclassificatie en samenvattingen van de detailhandel.
- Het ophalen van informatie en het maken van kennisgrafiek voor semantische zoekopdrachten. Deze functionaliteit maakt het mogelijk om medische kennisgrafieken te maken die ondersteuning bieden voor geneesmiddelendetectie en klinische proeven.
- Tekstomzetting voor conversationele AI-systemen in klantgerichte toepassingen in detailhandel, financiën, reizen en andere branches.
- Sentiment en verbeterde emotionele intelligentie in analyses, met name voor het bewaken van merkperceptie en analyse van feedback van klanten.
- Geautomatiseerde rapportgeneratie. Synthetiseer en genereer uitgebreide tekstrapporten van gestructureerde gegevensinvoer, hulp bij sectoren zoals financiën en naleving, waar grondige documentatie nodig is.
- Door spraak geactiveerde interfaces om gebruikersinteracties in IoT- en slimme-apparaattoepassingen te verbeteren door NLP te integreren voor spraakherkenning en natuurlijke gespreksmogelijkheden.
- Adaptatieve taalmodellen om taaluitvoer dynamisch aan te passen aan verschillende niveaus van begrip van doelgroepen, wat cruciaal is voor verbeteringen in onderwijsinhoud en toegankelijkheid.
- Tekstanalyse van cyberbeveiliging om communicatiepatronen en taalgebruik in realtime te analyseren om potentiële beveiligingsrisico's in digitale communicatie te identificeren, waardoor de detectie van phishingpogingen of onjuiste informatie wordt verbeterd.
Apache Spark als een aangepast NLP-framework
Apache Spark is een krachtig framework voor parallelle verwerking dat de prestaties van analysetoepassingen voor big data verbetert via in-memory verwerking. Azure Synapse Analytics, Azure HDInsighten Azure Databricks nog steeds robuuste toegang bieden tot de verwerkingsmogelijkheden van Spark, zodat grootschalige gegevensbewerkingen naadloos kunnen worden uitgevoerd.
Voor aangepaste NLP-workloads blijft Spark NLP een efficiënt framework dat grote hoeveelheden tekst kan verwerken. Deze opensource-bibliotheek biedt uitgebreide functionaliteit via Python-, Java- en Scala-bibliotheken, die de verfijning bieden die wordt gevonden in prominente NLP-bibliotheken, zoals spaCy en NLTK. Spark NLP bevat geavanceerde functies, zoals spellingcontrole, sentimentanalyse en documentclassificatie, waardoor de geavanceerde nauwkeurigheid en schaalbaarheid consistent worden gegarandeerd.
Recente openbare benchmarks markeren de prestaties van Spark NLP, met aanzienlijke snelheidsverbeteringen ten opzichte van andere bibliotheken, terwijl vergelijkbare nauwkeurigheid behouden blijft voor het trainen van aangepaste modellen. Met name de integratie van de Llama-2-modellen en OpenAI Whisper verbetert gespreksinterfaces en meertalige spraakherkenning, waarbij belangrijke stappen in geoptimaliseerde verwerkingsmogelijkheden worden gemarkeerd.
Spark NLP maakt op unieke wijze gebruik van een gedistribueerd Spark-cluster, dat functioneert als een systeemeigen uitbreiding van Spark ML die rechtstreeks op gegevensframes werkt. Deze integratie ondersteunt verbeterde prestatieverbeteringen op clusters, waardoor het maken van geïntegreerde NLP- en machine learning-pijplijnen voor taken zoals documentclassificatie en risicovoorspelling wordt vergemakkelijkt. De introductie van MPNet-insluitingen en uitgebreide ONNX-ondersteuning bieden verdere verrijking van deze mogelijkheden, waardoor nauwkeurige en contextbewuste verwerking mogelijk is.
Naast prestatievoordelen biedt Spark NLP geavanceerde nauwkeurigheid voor een groeiende reeks NLP-taken. De bibliotheek wordt geleverd met vooraf samengestelde Deep Learning-modellen voor benoemde entiteitsherkenning, documentclassificatie, gevoelsdetectie en meer. Het uitgebreide ontwerp bevat vooraf getrainde taalmodellen die woord-, segment-, zins- en document-insluitingen ondersteunen.
Met geoptimaliseerde builds voor CPU's, GPU's en de nieuwste Intel Xeon-chips is de infrastructuur van Spark NLP ontworpen voor schaalbaarheid, waardoor trainings- en deductieprocessen volledig gebruikmaken van Spark-clusters. Dit zorgt voor een efficiënte verwerking van NLP-taken in diverse omgevingen en toepassingen, waarbij de positie van NLP-innovatie behouden blijft.
Uitdagingen
Verwerkingsbronnen: Het verwerken van een verzameling vrije tekstdocumenten vereist een aanzienlijke hoeveelheid rekenbronnen en de verwerking is ook tijdrovend. Dit soort verwerking omvat vaak GPU-rekenimplementatie. Recente ontwikkelingen, zoals optimalisaties in Spark NLP-architecturen zoals Llama-2 die kwantisatie ondersteunen, helpen deze intensieve taken te stroomlijnen, waardoor resourcetoewijzing efficiënter wordt.
problemen met standaardisatie: Zonder een gestandaardiseerde documentindeling kan het lastig zijn om consistent nauwkeurige resultaten te bereiken wanneer u vrije tekstverwerking gebruikt om specifieke feiten uit een document te extraheren. Het extraheren van het factuurnummer en de datum uit verschillende facturen brengt bijvoorbeeld uitdagingen met zich mee. De integratie van aanpasbare NLP-modellen zoals M2M100 verbeterde verwerkingsnauwkeurigheid in meerdere talen en indelingen, waardoor de consistentie in resultaten wordt verbeterd.
gegevensvariant en complexiteit: Het aanpakken van de verscheidenheid aan documentstructuren en taalkundige nuances blijft complex. Innovaties zoals MPNet-insluitingen bieden een verbeterd contextueel begrip, bieden een intuïtievere verwerking van diverse tekstindelingen en het verbeteren van de algehele betrouwbaarheid van gegevensverwerking.
Criteria voor sleutelselectie
In Azure bieden Spark-services zoals Azure Databricks, Microsoft Fabric en Azure HDInsight NLP-functionaliteit wanneer ze worden gebruikt met Spark NLP. Azure AI-services zijn een andere optie voor NLP-functionaliteit. Als u wilt bepalen welke service u wilt gebruiken, moet u rekening houden met de volgende vragen:
Wilt u vooraf samengestelde of vooraf getrainde modellen gebruiken? Zo ja, overweeg dan de API's te gebruiken die Azure AI-services bieden of download uw model naar keuze via Spark NLP, dat nu geavanceerde modellen bevat, zoals Llama-2 en MPNet voor verbeterde mogelijkheden.
Moet u aangepaste modellen trainen op basis van een groot aantal tekstgegevens? Zo ja, overweeg dan azure Databricks, Microsoft Fabric of Azure HDInsight te gebruiken met Spark NLP. Deze platforms bieden de rekenkracht en flexibiliteit die nodig zijn voor uitgebreide modeltraining.
Hebt u NLP-mogelijkheden op laag niveau nodig, zoals tokenisatie, stemming, lemmatisatie en termfrequentie/inverse documentfrequentie (TF/IDF)? Zo ja, overweeg dan azure Databricks, Microsoft Fabric of Azure HDInsight te gebruiken met Spark NLP. U kunt ook een opensource-softwarebibliotheek gebruiken in uw verwerkingshulpprogramma van uw keuze.
Hebt u eenvoudige NLP-mogelijkheden op hoog niveau nodig, zoals entiteits- en intentieidentificatie, onderwerpdetectie, spellingcontrole of sentimentanalyse? Zo ja, overweeg dan om de API's te gebruiken die Azure AI-services bieden. Of download uw keuzemodel via Spark NLP om gebruik te maken van vooraf gedefinieerde functies voor deze taken.
Mogelijkheidsmatrix
De volgende tabellen geven een overzicht van de belangrijkste verschillen in de mogelijkheden van NLP-services.
Algemene mogelijkheden
Mogelijkheid | Spark-service (Azure Databricks, Microsoft Fabric, Azure HDInsight) met Spark NLP | Azure AI-services |
---|---|---|
Biedt vooraf getrainde modellen als een service | Ja | Ja |
REST-API | Ja | Ja |
Programmeerbaarheid | Python, Scala | Zie Aanvullende resources voor ondersteunde talen |
Ondersteunt de verwerking van big data-sets en grote documenten | Ja | Nr. |
NLP-mogelijkheden op laag niveau
Mogelijkheid van aantekenaars
Mogelijkheid | Spark-service (Azure Databricks, Microsoft Fabric, Azure HDInsight) met Spark NLP | Azure AI-services |
---|---|---|
Zindetector | Ja | Nr. |
Diepe zindetector | Ja | Ja |
Tokenizer | Ja | Ja |
N-gram generator | Ja | Nr. |
Woordsegmentatie | Ja | Ja |
Stemmer | Ja | Nr. |
Lemmatizer | Ja | Nr. |
Woordsoorten taggen | Ja | Nr. |
Afhankelijkheidsparser | Ja | Nr. |
Vertaling | Ja | Nr. |
Stopword cleaner | Ja | Nr. |
Spellingcorrectie | Ja | Nr. |
Normalizer | Ja | Ja |
Tekstovereenkomst | Ja | Nr. |
TF/IDF | Ja | Nr. |
Matcher voor reguliere expressies | Ja | Ingesloten in Conversational Language Understanding (CLU) |
Datumovereenkomst | Ja | Mogelijk in CLU via DateTime recognizers |
Chunker | Ja | Nr. |
Notitie
Microsoft Language Understanding (LUIS) wordt op 1 oktober 2025 buiten gebruik gesteld. Bestaande LUIS-toepassingen worden aangemoedigd om te migreren naar Conversational Language Understanding (CLU), een mogelijkheid van Azure AI Services for Language, waarmee taalkennismogelijkheden worden verbeterd en nieuwe functies worden geboden.
NLP-mogelijkheden op hoog niveau
Mogelijkheid | Spark-service (Azure Databricks, Microsoft Fabric, Azure HDInsight) met Spark NLP | Azure AI-services |
---|---|---|
Spellingcontrole | Ja | Nr. |
Samenvatting | Ja | Ja |
Vragen beantwoorden | Ja | Ja |
Gevoelsdetectie | Ja | Ja |
Emotiedetectie | Ja | Ondersteunt meninganalyse |
Tokenclassificatie | Ja | Ja, via aangepaste modellen |
Tekstclassificatie | Ja | Ja, via aangepaste modellen |
Tekstweergave | Ja | Nr. |
NER | Ja | Ja: tekstanalyse biedt een set NER en aangepaste modellen bevinden zich in entiteitsherkenning |
Herkenning van entiteiten | Ja | Ja, via aangepaste modellen |
Taaldetectie | Ja | Ja |
Ondersteunt talen naast Engels | Ja, ondersteunt meer dan 200 talen | Ja, ondersteunt meer dan 97 talen |
Spark NLP instellen in Azure
Als u Spark NLP wilt installeren, gebruikt u de volgende code, maar vervangt u door <version>
het meest recente versienummer. Zie de Documentatie voor Spark NLP voor meer informatie.
# Install Spark NLP from PyPI.
pip install spark-nlp==<version>
# Install Spark NLP from Anacodna or Conda.
conda install -c johnsnowlabs spark-nlp
# Load Spark NLP with Spark Shell.
spark-shell --packages com.johnsnowlabs.nlp:spark-nlp_<version>
# Load Spark NLP with PySpark.
pyspark --packages com.johnsnowlabs.nlp:spark-nlp_<version>
# Load Spark NLP with Spark Submit.
spark-submit --packages com.johnsnowlabs.nlp:spark-nlp_<version>
# Load Spark NLP as an external JAR after compiling and building Spark NLP by using sbt assembly.
spark-shell --jars spark-nlp-assembly-3 <version>.jar
NLP-pijplijnen ontwikkelen
Voor de uitvoeringsvolgorde van een NLP-pijplijn volgt Spark NLP hetzelfde ontwikkelingsconcept als traditionele Spark ML machine learning-modellen, waarbij gespecialiseerde NLP-technieken worden toegepast.
De belangrijkste onderdelen van een Spark NLP-pijplijn zijn:
DocumentAssembler: een transformator waarmee gegevens worden voorbereid door deze te converteren naar een indeling die Spark NLP kan verwerken. Deze fase is het toegangspunt voor elke Spark NLP-pijplijn. DocumentAssembler leest een
String
kolom of eenArray[String]
, met opties om de tekst vooraf te verwerken metsetCleanupMode
, wat standaard is uitgeschakeld.Zindetector: een aantekenaar die zingrenzen identificeert met behulp van vooraf gedefinieerde benaderingen. Elke gedetecteerde zin kan worden geretourneerd in een
Array
of in afzonderlijke rijen wanneerexplodeSentences
is ingesteld op waar.Tokenizer: een annotator die onbewerkte tekst in discrete tokens (woorden, getallen en symbolen) verdeelt die deze als een
TokenizedSentence
uitvoeren. De tokenizer is niet aangepast en maakt gebruik van invoerconfiguratie in deRuleFactory
om tokenisatieregels te maken. Aangepaste regels kunnen worden toegevoegd wanneer de standaardinstellingen onvoldoende zijn.Normalizer-: een annotator met de taak tokens te verfijnen. Normalizer past reguliere expressies en woordenlijsttransformaties toe om tekst op te schonen en overbodige tekens te verwijderen.
WordEmbeddings: Opzoekaantekenaars die tokens toewijzen aan vectoren, waardoor semantische verwerking wordt vergemakkelijkt. U kunt een aangepaste insluitwoordenlijst opgeven met behulp van
setStoragePath
, waarbij elke regel een token en de vector bevat, gescheiden door spaties. Niet-opgeloste tokens worden standaard ingesteld op nul vectoren.
Spark NLP maakt gebruik van Spark MLlib-pijplijnen, met systeemeigen ondersteuning van MLflow-, een opensource-platform dat de levenscyclus van machine learning beheert. De belangrijkste onderdelen van MLflow zijn:
MLflow Tracking: registreert experimentele uitvoeringen en biedt robuuste querymogelijkheden voor het analyseren van resultaten.
MLflow Projects: maakt het mogelijk om gegevenswetenschapscode op verschillende platforms uit te voeren, de draagbaarheid en reproduceerbaarheid te verbeteren.
MLflow-modellen: ondersteunt veelzijdige modelimplementatie in verschillende omgevingen via een consistent framework.
modelregister: biedt uitgebreid modelbeheer, het opslaan van versies centraal voor gestroomlijnde toegang en implementatie, waardoor productiegereedheid wordt vergemakkelijkt.
MLflow is geïntegreerd met platforms zoals Azure Databricks, maar kan ook worden geïnstalleerd in andere Spark-omgevingen om uw experimenten te beheren en bij te houden. Dankzij deze integratie kan het MLflow-modelregister worden gebruikt voor het beschikbaar maken van modellen voor productiedoeleinden, waardoor het implementatieproces wordt stroomlijnd en modelbeheer wordt onderhouden.
Door MLflow naast Spark NLP te gebruiken, kunt u zorgen voor efficiënt beheer en implementatie van NLP-pijplijnen, waarbij u voldoet aan moderne vereisten voor schaalbaarheid en integratie, terwijl u geavanceerde technieken zoals woord-insluitingen en aanpassingen aan grote taalmodellen ondersteunt.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Belangrijkste auteurs:
- Freddy Ayala | Cloud Solution Architect
- De Steller van Microsoft | Senior Cloud Solution Architect
Volgende stappen
Documentatie voor Spark NLP:
Azure-onderdelen:
Informatiebronnen:
Verwante resources
- Grootschalige verwerking van aangepaste natuurlijke taal in Azure
- Een Technologie voor Microsoft Azure AI-services kiezen
- De machine learning-producten en -technologieën van Microsoft vergelijken
- MLflow en Azure Machine Learning
- AI-verrijking met verwerking van afbeeldingen en natuurlijke taal in Azure Cognitive Search