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.
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.
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 eenArray[String]
en kan de tekst vooraf verwerken met behulp vansetCleanupMode
, 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 wanneerexplodeSentences
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 deRuleFactory
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:
- Freddy Ayala | Cloud Solution Architect
- Moritz Steller | Senior Cloud Solution Architect
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
Documentatie voor Spark NLP:
Azure-onderdelen:
Informatiebronnen: