Bewerken

Delen via


Technologie voor verwerking van natuurlijke taal

Azure AI services
Azure Databricks
Azure HDInsight
Azure Synapse Analytics

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.

Diagram met gebieden van N L P-functionaliteit, zoals entiteitsherkenning. Verschillende vakkenlijst N L P-annotators, modellen en ondersteunde talen.

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.

Diagram met N L P-pijplijnfasen, zoals documentassembly, zindetectie, tokenisatie, normalisatie en insluiten van woorden.

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 een Array[String], met opties om de tekst vooraf te verwerken met setCleanupMode, wat standaard is uitgeschakeld.

  • Zindetector: een aantekenaar die zingrenzen identificeert met behulp van vooraf gedefinieerde benaderingen. Elke gedetecteerde zin kan worden geretourneerd in een Arrayof in afzonderlijke rijen wanneer explodeSentences is ingesteld op waar.

  • Tokenizer: een annotator die onbewerkte tekst in discrete tokens (woorden, getallen en symbolen) verdeelt die deze als een TokenizedSentenceuitvoeren. De tokenizer is niet aangepast en maakt gebruik van invoerconfiguratie in de RuleFactory 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:

Volgende stappen