Delen via


Technologie voor verwerking van natuurlijke taal

Verwerking van natuurlijke taal heeft veel toepassingen, zoals sentimentanalyse, onderwerpdetectie, taaldetectie, sleuteltermextractie en documentcategorisatie.

U kunt met name natuurlijke taalverwerking gebruiken voor het volgende:

  • Documenten classificeren. U kunt ze bijvoorbeeld labelen als gevoelig of spam.
  • Voer verdere verwerking of zoekopdrachten uit met behulp van de resultaten van natuurlijke taalverwerking.
  • Tekst samenvatten door entiteiten in het document te identificeren.
  • Tag documenten met trefwoorden met behulp van geïdentificeerde entiteiten.
  • Inhoud zoeken en ophalen met behulp van tags.
  • 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.

Naarmate de technologie vordert, kunt u verwerking van natuurlijke taal gebruiken om tekstgegevens te categoriseren en te analyseren. U kunt het ook gebruiken om interpreteerbare AI-functies in verschillende domeinen te verbeteren. De integratie van taalmodellen verbetert de mogelijkheden van verwerking van natuurlijke taal aanzienlijk. Taalmodellen zoals GPT en BERT kunnen humane, contextbewuste tekst genereren. Deze mogelijkheid maakt ze zeer effectief voor complexe taalverwerkingstaken. Ze vormen een aanvulling op bestaande technieken voor natuurlijke taalverwerking door bredere cognitieve taken af te handelen, waardoor gesprekssystemen en klantbetrokkenheid worden verbeterd, met name met modellen zoals Dolly 2.0 van Databricks.

Relatie en verschillen tussen taalmodellen en verwerking van natuurlijke taal

Natuurlijke taalverwerking is een uitgebreid veld dat verschillende technieken omvat voor het verwerken van menselijke taal. Taalmodellen zijn daarentegen een specifieke subset van natuurlijke taalverwerking. Ze richten zich op deep learning om taaltaken op hoog niveau uit te voeren. Taalmodellen verbeteren de verwerking van natuurlijke taal door geavanceerde mogelijkheden voor het genereren en begrijpen van tekst te bieden, maar ze zijn niet synoniem voor verwerking van natuurlijke taal. In plaats daarvan fungeren ze als krachtige hulpprogramma's binnen het bredere domein voor natuurlijke taalverwerking door geavanceerdere taalverwerking mogelijk te maken.

Notitie

Dit artikel is gericht op verwerking van natuurlijke taal. De relatie tussen verwerking van natuurlijke taal en taalmodellen laat zien dat taalmodellen natuurlijke taalverwerkingsprocessen verbeteren door middel van superieure taalkennis en generatiemogelijkheden.

Mogelijke gebruiksvoorbeelden

Bedrijfsscenario's die kunnen profiteren van aangepaste verwerking van natuurlijke taal zijn onder andere:

  • Documentinformatie voor handgeschreven of door machines gemaakte documenten in financiën, gezondheidszorg, detailhandel, overheid en andere sectoren.

  • Industrieonafhankelijke verwerkingstaken voor natuurlijke taal voor tekstverwerking, zoals NER (Named-Entity Recognition), classificatie, samenvatting en relationele extractie.

    Met deze taken kunt u documentgegevens zoals tekst en ongestructureerde gegevens automatisch ophalen, identificeren en analyseren. 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 op basis van gestructureerde gegevensinvoer. Deze taken helpen sectoren zoals financiën en naleving, waar grondige documentatie nodig is.

  • Spraakgestuurde interfaces die natuurlijke taalverwerking integreren voor spraakherkenning en natuurlijke gespreksmogelijkheden. Deze integratie verbetert gebruikersinteracties in Internet of Things-toepassingen en toepassingen voor slimme apparaten.

  • Adaptieve taalmodellen waarmee taaluitvoer dynamisch kan worden aangepast aan verschillende niveaus van begrip van het publiek. Deze mogelijkheid is van cruciaal belang voor verbeteringen in onderwijsinhoud en toegankelijkheid.

  • Tekstanalyse van cyberbeveiliging om communicatiepatronen en taalgebruik in realtime te analyseren. Met deze analyse kunt u potentiële beveiligingsrisico's in digitale communicatie identificeren en de detectie van phishingpogingen of onjuiste informatie verbeteren.

Apache Spark als een aangepast framework voor verwerking van natuurlijke taal

Apache Spark is een krachtig framework voor parallelle verwerking dat de prestaties van analysetoepassingen voor big data verbetert met behulp van in-memory verwerking. Azure Synapse Analytics, Azure HDInsight en Azure Databricks bieden robuuste toegang tot de verwerkingsmogelijkheden van Spark. Met deze toegang kunt u grootschalige gegevensbewerkingen naadloos uitvoeren.

Spark NLP is een efficiënt framework dat grote hoeveelheden tekst kan verwerken voor aangepaste werkbelastingen voor verwerking van natuurlijke taal. Deze opensource-bibliotheek biedt uitgebreide functionaliteit met behulp van Python-, Java- en Scala-bibliotheken. Deze bibliotheken bieden de verfijning die u kunt vinden in prominente bibliotheken voor natuurlijke taalverwerking, zoals spaCy en Natural Language Toolkit. Spark NLP bevat geavanceerde functies zoals spellingcontrole, sentimentanalyse en documentclassificatie. Met deze functies kunt u consistent zorgen voor optimale nauwkeurigheid en schaalbaarheid.

Diagram met gebieden van de functionaliteit voor verwerking van natuurlijke taal, zoals entiteitsherkenning. Verschillende vakken bevatten annotators, modellen en ondersteunde talen voor natuurlijke taalverwerking.

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.

Recente openbare benchmarks markeren de prestaties van Spark NLP. Deze benchmarks tonen aanzienlijke snelheidsverbeteringen ten opzichte van andere bibliotheken. Spark NLP behoudt ook vergelijkbare nauwkeurigheid voor het trainen van aangepaste modellen. Met name de integratie van de Llama 2-modellen en OpenAI Whisper verbetert gespreksinterfaces en meertalige spraakherkenning. Deze mogelijkheden markeren belangrijke stappen in geoptimaliseerde verwerkingsmogelijkheden.

Spark NLP maakt effectief gebruik van een gedistribueerd Spark-cluster dat fungeert als een systeemeigen uitbreiding van Spark ML en rechtstreeks op gegevensframes werkt. Deze integratie biedt ondersteuning voor verbeterde prestatieverbeteringen op clusters, waarmee u geïntegreerde natuurlijke taalverwerking en machine learning-pijplijnen kunt maken voor taken zoals documentclassificatie en risicovoorspelling. MPNet-insluitingen en uitgebreide ONNX-ondersteuning bieden verdere verrijking van deze mogelijkheden en zorgen voor nauwkeurige en contextbewuste verwerking.

Spark NLP levert zeer nauwkeurige resultaten voor een groeiende reeks verwerkingstaken voor natuurlijke taal. De bibliotheek wordt geleverd met vooraf samengestelde Deep Learning-modellen voor benoemde entiteitsherkenning, documentclassificatie en sentimentdetectie. Het uitgebreide ontwerp bevat vooraf getrainde taalmodellen die ondersteuning bieden voor woord-, segment-, zins- en document-insluitingen.

De infrastructuur van Spark NLP wordt geschaald met behulp van geoptimaliseerde builds voor CPU's, GPU's en de nieuwste Intel Xeon-chips, waardoor trainings- en deductieprocessen volledig gebruikmaken van Spark-clusters. Deze mogelijkheid zorgt voor een efficiënte verwerking van taken voor natuurlijke taalverwerking in diverse omgevingen en toepassingen.

Uitdagingen

  • Resourceverwerking: voor het verwerken van een verzameling vrije tekstdocumenten is een aanzienlijke hoeveelheid rekenresources vereist. De verwerking is ook tijdrovend. Dit soort verwerking omvat vaak GPU-rekenimplementatie. Recente ontwikkelingen die kwantisatie ondersteunen, zoals optimalisaties in Spark NLP-architecturen zoals Llama 2, helpen deze intensieve taken te stroomlijnen door resources efficiënter toe te wijzen.

  • 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 modellen voor natuurlijke taalverwerking, zoals M2M100, verbetert de nauwkeurigheid van de verwerking in meerdere talen en indelingen. Deze verbeterde nauwkeurigheid leidt tot consistentere resultaten.

  • Gegevensvariant en complexiteit: het aanpakken van de verscheidenheid aan documentstructuren en taalkundige nuances blijft complex. Innovaties zoals MPNet-insluitingen bieden een verbeterd contextueel begrip, wat leidt tot intuïtievere verwerking van diverse tekstindelingen en betrouwbaardere gegevensverwerking.

Criteria voor sleutelselectie

In Azure bieden Spark-services zoals Azure Databricks, Microsoft Fabric en HDInsight natuurlijke taalverwerkingsfunctionaliteit wanneer u deze gebruikt met Spark NLP. Azure AI-services is een andere optie voor de verwerking van natuurlijke taal. Houd rekening met de volgende aspecten om u te helpen bepalen welke service u wilt gebruiken:

  • Als u vooraf gedefinieerde of vooraf getrainde modellen wilt gebruiken, kunt u overwegen de API's te gebruiken die AI-services bieden. Of u kunt uw model naar keuze downloaden via Spark NLP, inclusief geavanceerde modellen zoals Llama 2 en MPNet voor verbeterde mogelijkheden.

  • Als u aangepaste modellen wilt trainen voor een grote verzameling tekstgegevens, kunt u overwegen Om Azure Databricks, Fabric of HDInsight te gebruiken met Spark NLP. Deze platforms bieden de rekenkracht en flexibiliteit die u nodig hebt voor uitgebreide modeltraining.

  • Als u mogelijkheden voor natuurlijke taalverwerking op laag niveau nodig hebt, zoals tokenisatie, stemming, lemmatisatie en termfrequentie/inverse documentfrequentie (TF/IDF), kunt u overwegen Om Azure Databricks, Fabric of HDInsight te gebruiken met Spark NLP. U kunt ook een opensource-softwarebibliotheek gebruiken in uw verwerkingshulpprogramma van uw keuze.

  • Als u eenvoudige, hoogwaardige mogelijkheden voor natuurlijke taalverwerking nodig hebt, zoals entiteits- en intentieidentificatie, onderwerpdetectie, spellingcontrole of sentimentanalyse, kunt u overwegen de API's te gebruiken die AI-services bieden. Of download uw gewenste model via Spark NLP om vooraf gedefinieerde functies voor deze taken te gebruiken.

Mogelijkheidsmatrix

De volgende tabellen geven een overzicht van de belangrijkste verschillen in de mogelijkheden van services voor natuurlijke taalverwerking.

Algemene mogelijkheden

Vermogen Dienst Spark (Azure Databricks, Fabric, HDInsight) met Spark NLP AI-diensten
Biedt vooraf getrainde modellen als een service Ja Ja
REST-API Ja Ja
Programmeerbaarheid Python, Scala Ondersteunde programmeertalen bekijken
Ondersteunt de verwerking van grote gegevenssets en grote documenten Ja Nee.

Mogelijkheden van annotator

Vermogen Spark service (Azure Databricks, Fabric, HDInsight) met Spark NLP AI-diensten
Zindetector Ja Nee.
Diepgaand zinnen-detectiesysteem Ja Ja
Tokenizer Ja Ja
N-gram opwekker Ja Nee.
Woordsegmentatie Ja Ja
Stemmen Ja Nee.
Lemmatizer Ja Nee.
Woordsoorten markeren Ja Nee.
Afhankelijkheidsparser Ja Nee.
Vertaling Ja Nee.
Stopword cleaner Ja Nee.
Spellingcorrectie Ja Nee.
Normalisator Ja Ja
Tekstvergelijker Ja Nee.
TF/IDF Ja Nee.
Matcher voor reguliere expressies Ja Ingesloten in de functie Conversational Language Understanding (CLU)
Datum Matcher Ja Mogelijk in CLU via DateTime recognizers
Chunker Ja Nee.

Notitie

Language Understanding (LUIS) wordt op 1 oktober 2025 buiten gebruik gesteld. U moet bestaande LUIS-toepassingen migreren naar de CLU-functie (Conversational Language Understanding) van Azure AI Language, waarmee de mogelijkheden voor taalkennis worden verbeterd en nieuwe functies worden geboden.

Mogelijkheden voor verwerking van natuurlijke taal op hoog niveau

Vermogen Spark-service (Azure Databricks, Fabric, HDInsight) met Spark NLP AI-diensten
Spellingscontrole Ja Nee.
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 Nee.
NER Ja Ja, tekstanalyse biedt een set NER
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-natural language processing==<version>

# Install Spark NLP from Anaconda or Conda.
conda install -c johnsnowlabs spark-natural language processing

# Load Spark NLP with Spark Shell.
spark-shell --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>

# Load Spark NLP with PySpark.
pyspark --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>

# Load Spark NLP with Spark Submit.
spark-submit --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>

# Load Spark NLP as an external JAR after compiling and building Spark NLP by using SBT assembly.
spark-shell --jars spark-natural language processing-assembly-3 <version>.jar

Pijplijnen voor natuurlijke taalverwerking ontwikkelen

Spark NLP volgt hetzelfde ontwikkelingsconcept als traditionele Spark ML machine learning-modellen wanneer er een pijplijn voor verwerking in natuurlijke taal wordt uitgevoerd. Het past ook gespecialiseerde technieken voor natuurlijke taalverwerking toe.

Diagram met de fasen van een pijplijn voor verwerking van natuurlijke taal, zoals documentassembly, zindetectie, tokenisatie, normalisatie en insluiten van woorden.

Een Spark NLP-pijplijn bevat de volgende kernonderdelen:

  • DocumentAssembler is 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] en kan de tekst vooraf verwerken met behulp van setCleanupMode, wat standaard is uitgeschakeld.

  • SentenceDetector is een annotator die zingrenzen identificeert met behulp van vooraf gedefinieerde benaderingen. Elke gedetecteerde zin kan in één Array of in afzonderlijke rijen worden geretourneerd wanneer explodeSentences op waar is ingesteld.

  • Tokenizer is een annotator die onbewerkte tekst in discrete tokens verdeelt, zoals woorden, getallen en symbolen, en deze uitvoert als een TokenizedSentence. Tokenizer is niet afgesteld en maakt gebruik van de invoerconfiguratie binnen de RuleFactory om tokeniseringsregels te creëren. U kunt aangepaste regels toevoegen als de standaardregels onvoldoende zijn.

  • Normalizer is een annotator die is belast met het verfijnen van tokens. Normalizer past reguliere expressies en woordenlijsttransformaties toe om tekst op te schonen en overbodige tekens te verwijderen.

  • WordEmbeddings zijn opzoekaantekenaars die tokens toewijzen aan vectoren en semantische verwerking vergemakkelijken. U kunt een aangepaste insluitingswoordenlijst 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 waarmee de levenscyclus van machine learning wordt beheerd. MLflow heeft de volgende belangrijke onderdelen:

  • MLflow Tracking registreert experimentele uitvoeringen en biedt robuuste querymogelijkheden voor het analyseren van resultaten.

  • Met MLflow Projects kunt u gegevenswetenschapscode uitvoeren op verschillende platforms. Deze mogelijkheid verbetert de draagbaarheid en reproduceerbaarheid.

  • MLflow-modellen ondersteunen veelzijdige modelimplementatie in verschillende omgevingen via een consistent framework.

  • Modelregister biedt uitgebreid modelbeheer door versies centraal op te slaan voor gestroomlijnde toegang en implementatie. Met deze stap kunt u productiegereedheid vergemakkelijken.

MLflow is geïntegreerd met platforms zoals Azure Databricks, maar u kunt deze ook installeren in andere Spark-omgevingen om uw experimenten te beheren en bij te houden. Met deze integratie kunt u het MLflow-modelregister gebruiken om modellen beschikbaar te maken voor productiedoeleinden. U kunt het implementatieproces stroomlijnen en modelbeheer onderhouden.

Door MLflow naast Spark NLP te gebruiken, kunt u efficiënter beheer en implementatie van pijplijnen voor natuurlijke taalverwerking garanderen. U kunt ook voldoen aan moderne vereisten voor schaalbaarheid en integratie, terwijl u geavanceerde technieken zoals woord-insluitingen en taalmodelaanpassingen ondersteunt.

Bijdragers

Microsoft onderhoudt dit artikel. De volgende inzenders hebben dit artikel geschreven.

Hoofdauteurs:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen