Die Verarbeitung natürlicher Sprachen (Natural Language Processing, NLP) umfasst viele Anwendungen, z. B. Stimmungsanalyse, Themenerkennung, Spracherkennung, Schlüsselausdrucksextraktion und Dokumentkategorisierung.
Insbesondere können Sie NLP für folgendes verwenden:
- Klassifizieren sie beispielsweise Dokumente als vertraulich oder spam.
- Führen Sie nachfolgende Verarbeitung oder Suchvorgänge mit NLP-Ausgaben durch.
- Fassen Sie Text zusammen, indem Sie Entitäten im Dokument identifizieren.
- Markieren Sie Dokumente mit Schlüsselwörtern, indem Sie identifizierte Entitäten verwenden.
- Führen Sie inhaltsbasierte Suche und Abruf durch Tagging durch.
- Fassen Sie die wichtigsten Themen eines Dokuments mithilfe identifizierter Entitäten zusammen.
- Kategorisieren Sie Dokumente für die Navigation mithilfe erkannter Themen.
- Zählen Sie verwandte Dokumente basierend auf einem ausgewählten Thema auf.
- Bewerten Sie die Textstimmung, um ihren positiven oder negativen Ton zu verstehen.
Mit Fortschritten in der Technologie kann NLP nicht nur verwendet werden, um Textdaten zu kategorisieren und zu analysieren, sondern auch um interpretierbare KI-Funktionen in verschiedenen Bereichen zu verbessern. Die Integration großer Sprachmodelle (LLM) verbessert die Funktionen von NLP erheblich. LLMs wie GPT und BERT können textähnliche, kontextbezogene Text generieren, wodurch sie für komplexe Sprachverarbeitungsaufgaben sehr effektiv sind. Sie ergänzen bestehende NLP-Techniken durch die Behandlung umfassenderer kognitiver Aufgaben, die Unterhaltungssysteme und Kundenbindung verbessern, insbesondere mit Modellen wie Databricks Dolly 2.0.
Beziehung und Unterschiede zwischen Sprachmodellen und NLP
NLP ist ein umfassendes Feld, das verschiedene Techniken für die Verarbeitung der menschlichen Sprache umfasst. Im Gegensatz dazu sind Sprachmodelle eine bestimmte Teilmenge innerhalb von NLP, die sich auf das Deep Learning konzentriert, um Sprachaufgaben auf hoher Ebene auszuführen. Während Sprachmodelle NLP durch die Bereitstellung erweiterter Textgenerierungs- und Verständnisfunktionen verbessern, sind sie nicht gleichbedeutend mit NLP. Stattdessen dienen sie als leistungsstarke Tools in der umfassenderen NLP-Domäne und ermöglichen eine komplexere Sprachverarbeitung.
Anmerkung
Dieser Artikel konzentriert sich auf NLP. Die Beziehung zwischen NLP und Sprachmodellen zeigt, dass Sprachmodelle NLP-Prozesse durch überlegene Sprachverständnis- und Generierungsfunktionen verbessern.
Apache®, Apache Spark und das Flammenlogo sind entweder eingetragene Marken oder Marken der Apache Software Foundation in den USA und/oder anderen Ländern. Die Verwendung dieser Markierungen impliziert kein Endorsement durch die Apache Software Foundation.
Mögliche Anwendungsfälle
Geschäftsszenarien, die von benutzerdefinierten NLP profitieren können, umfassen:
- Dokumentinformationen für handschriftliche oder maschinell erstellte Dokumente in den Bereichen Finanzen, Gesundheit, Einzelhandel, öffentlicher Sektor und anderen Bereichen.
- Branchenagnostische NLP-Aufgaben für die Textverarbeitung, z. B. Name Entity Recognition (NER), Klassifizierung, Zusammenfassung und Beziehungsextraktion. Diese Aufgaben automatisieren den Prozess zum Abrufen, Identifizieren und Analysieren von Dokumentinformationen wie Text und unstrukturierten Daten. Beispiele für diese Aufgaben sind Risikoschichtmodelle, Ontologieklassifizierung und Einzelhandelszusammenfassungen.
- Informationsabruf und Wissensdiagrammerstellung für die semantische Suche. Diese Funktionalität ermöglicht es, medizinische Wissensdiagramme zu erstellen, die die Arzneimittelermittlung und klinische Studien unterstützen.
- Textübersetzung für Unterhaltungs-KI-Systeme in kundenbezogenen Anwendungen in Einzelhandels-, Finanz-, Reise- und anderen Branchen.
- Stimmung und verbesserte emotionale Intelligenz in der Analyse, insbesondere zur Überwachung der Markenwahrnehmung und Kundenfeedbackanalysen.
- Automatische Berichterstellung. Synthetisieren und generieren Sie umfassende Textberichte aus strukturierten Dateneingaben und unterstützen Branchen wie Finanzen und Compliance, wo eine gründliche Dokumentation erforderlich ist.
- Sprachaktive Schnittstellen zur Verbesserung der Benutzerinteraktionen in IoT- und Smart Device-Anwendungen durch Integration von NLP für Spracherkennung und natürliche Unterhaltungsfunktionen.
- Adaptative Sprachmodelle, um die Sprachausgabe dynamisch an verschiedene Benutzergruppenverständnisebenen anzupassen, die für Bildungsinhalte und Verbesserungen der Barrierefreiheit von entscheidender Bedeutung sind.
- Cybersicherheitstextanalyse zur Analyse von Kommunikationsmustern und Sprachnutzung in Echtzeit, um potenzielle Sicherheitsbedrohungen in der digitalen Kommunikation zu identifizieren und die Erkennung von Phishingversuchen oder Falschinformationen zu verbessern.
Apache Spark als angepasstes NLP-Framework
Apache Spark ist ein leistungsstarkes Parallelverarbeitungsframework, das die Leistung von Big Data-Analyseanwendungen durch die In-Memory-Verarbeitung verbessert. Azure Synapse Analytics, Azure HDInsight-und Azure Databricks weiterhin robusten Zugriff auf die Verarbeitungsfunktionen von Spark bieten, um eine nahtlose Ausführung von umfangreichen Datenvorgängen sicherzustellen.
Für angepasste NLP-Workloads bleibt Spark NLP ein effizientes Framework, das große Textmengen verarbeiten kann. Diese Open-Source-Bibliothek bietet umfangreiche Funktionen über Python-, Java- und Scala-Bibliotheken, die die In prominenten NLP-Bibliotheken wie spaCy und NLTK liefern. Spark NLP umfasst erweiterte Features wie Rechtschreibprüfung, Stimmungsanalyse und Dokumentklassifizierung, die konsistente Gewährleistung der neuesten Genauigkeit und Skalierbarkeit.
Die jüngsten öffentlichen Benchmarks heben die Leistung von Spark NLP hervor und zeigen erhebliche Geschwindigkeitsverbesserungen gegenüber anderen Bibliotheken an und behalten gleichzeitig vergleichbare Genauigkeit für die Schulung von benutzerdefinierten Modellen bei. Insbesondere die Integration der Llama-2-Modelle und OpenAI Whisper verbessert Unterhaltungsschnittstellen und mehrsprachige Spracherkennung und kennzeichnet erhebliche Fortschritte bei optimierten Verarbeitungsfunktionen.
Eindeutig nutzt Spark NLP effektiv einen verteilten Spark-Cluster, der als systemeigene Erweiterung von Spark ML funktioniert, die direkt auf Datenframes arbeitet. Diese Integration unterstützt verbesserte Leistungssteigerungen auf Clustern, wodurch die Erstellung einheitlicher NLP- und Machine Learning-Pipelines für Aufgaben wie Dokumentklassifizierung und Risikovorhersage erleichtert wird. Durch die Einführung von MPNet-Einbettungen und umfangreicher ONNX-Unterstützung werden diese Funktionen weiter erweitert, was eine präzise und kontextabhängige Verarbeitung ermöglicht.
Über Leistungsvorteile hinaus bietet Spark NLP modernste Genauigkeit in einem erweiterten Array von NLP-Aufgaben. Die Bibliothek verfügt über vorgefertigte Deep Learning-Modelle für benannte Entitätserkennung, Dokumentklassifizierung, Stimmungserkennung und vieles mehr. Das featurereiche Design umfasst vortrainierte Sprachmodelle, die Wort-, Block-, Satz- und Dokumenteinbettungen unterstützen.
Mit optimierten Builds für CPUs, GPUs und die neuesten Intel Px-Chips ist die Infrastruktur von Spark NLP für Skalierbarkeit ausgelegt und ermöglicht Schulungen und Rückschlüsse auf die vollständige Nutzung von Spark-Clustern. Dadurch wird eine effiziente Handhabung von NLP-Aufgaben in verschiedenen Umgebungen und Anwendungen gewährleistet, wobei ihre Position an der Spitze der NLP-Innovation steht.
Herausforderungen
Verarbeitungsressourcen: Die Verarbeitung einer Sammlung von Freiformtextdokumenten erfordert eine erhebliche Menge rechenintensiver Ressourcen, und die Verarbeitung ist ebenfalls zeitintensiv. Diese Art von Verarbeitung umfasst häufig die GPU-Computebereitstellung. Die jüngsten Fortschritte, z. B. Optimierungen in Spark NLP-Architekturen wie Llama-2, die Quantisierung unterstützen, helfen, diese intensiven Aufgaben zu optimieren und die Ressourcenzuordnung effizienter zu gestalten.
Standardisierungsprobleme: Ohne ein standardisiertes Dokumentformat kann es schwierig sein, konsistente Ergebnisse zu erzielen, wenn Sie die Freiformtextverarbeitung verwenden, um bestimmte Fakten aus einem Dokument zu extrahieren. Beispielsweise stellt das Extrahieren der Rechnungsnummer und des Datums aus verschiedenen Rechnungen Herausforderungen dar. Die Integration anpassbarer NLP-Modelle wie M2M100 verbesserte Verarbeitungsgenauigkeit in mehreren Sprachen und Formaten, was eine höhere Konsistenz in Ergebnissen ermöglicht.
Datenvielfalt und Komplexität: Die Adressierung der Vielfalt der Dokumentstrukturen und sprachlichen Nuancen bleibt komplex. Innovationen wie MPNet-Einbettungen bieten ein verbessertes kontextbezogenes Verständnis, bieten eine intuitivere Handhabung verschiedener Textformate und verbessern die Zuverlässigkeit der Gesamten Datenverarbeitung.
Wichtige Auswahlkriterien
In Azure bieten Spark-Dienste wie Azure Databricks, Microsoft Fabric und Azure HDInsight NLP-Funktionen, wenn sie mit Spark NLP verwendet werden. Azure AI-Dienste sind eine weitere Option für NLP-Funktionen. Um zu entscheiden, welche Dienste verwendet werden sollen, sollten Sie diese Fragen berücksichtigen:
Möchten Sie vorgefertigte oder vortrainierte Modelle verwenden? Wenn ja, sollten Sie die APIs verwenden, die Azure AI-Dienste anbieten, oder ihr Modell ihrer Wahl über Spark NLP herunterladen, das jetzt erweiterte Modelle wie Llama-2 und MPNet für erweiterte Funktionen enthält.
Müssen Sie benutzerdefinierte Modelle anhand eines großen Korpus mit Textdaten trainieren? Wenn ja, sollten Sie Azure Databricks, Microsoft Fabric oder Azure HDInsight mit Spark NLP verwenden. Diese Plattformen bieten die Rechenleistung und Flexibilität, die für umfangreiche Modellschulungen erforderlich sind.
Benötigen Sie spezielle NLP-Funktionen, z.B. Tokenisierung, Wortstammerkennung, Lemmatisierung und Vorkommenshäufigkeit/Inverse Dokumenthäufigkeit (Term Frequency/Inverse Document Frequency, TF/IDF)? Wenn ja, sollten Sie Azure Databricks, Microsoft Fabric oder Azure HDInsight mit Spark NLP verwenden. Alternativ können Sie eine Open-Source-Softwarebibliothek in Ihrem Auswahltool verwenden.
Benötigen Sie einfache, allgemeine NLP-Funktionen wie Entitäts- und Absichtsidentifizierung, Themenerkennung, Rechtschreibprüfung oder Standpunktanalyse? Wenn dies der Fall ist, sollten Sie die APIs verwenden, die Azure KI Services bereitstellt. Oder laden Sie Ihr Wahlmodell über Spark NLP herunter, um vordefinierte Funktionen für diese Aufgaben zu nutzen.
Funktionsmatrix
In den folgenden Tabellen sind die Hauptunterschiede in den Funktionen der NLP-Dienste zusammengefasst.
Allgemeine Funktionen
Funktion | Spark-Dienst (Azure Databricks, Microsoft Fabric, Azure HDInsight) mit Spark NLP | Azure KI Services |
---|---|---|
Bereitstellung von vortrainierten Modellen als Dienst | Ja | Ja |
REST-API | Ja | Ja |
Programmierbarkeit | Python, Scala | Weitere Informationen zu unterstützten Sprachen finden Sie unter Weitere Ressourcen |
Unterstützt die Verarbeitung von Big Datasets und großen Dokumenten | Ja | Nein |
NlP-Funktionen auf niedriger Ebene
Funktion von Annotatoren
Funktion | Spark-Dienst (Azure Databricks, Microsoft Fabric, Azure HDInsight) mit Spark NLP | Azure KI Services |
---|---|---|
Satzerkennung | Ja | Nein |
Tiefe Satzerkennung | Ja | Ja |
Tokenizer | Ja | Ja |
N-Gramm-Generator | Ja | Nein |
Wortsegmentierung | Ja | Ja |
Wortstammerkennung | Ja | Nein |
Lemmatisierung | Ja | Nein |
Satzteilmarkierung | Ja | Nein |
Abhängigkeitsparser | Ja | Nein |
Sprachübersetzung | Ja | Nein |
Stoppwortbereinigung | Ja | Nein |
Rechtschreibkorrektur | Ja | Nein |
Normalizer | Ja | Ja |
Textabgleich | Ja | Nein |
TF/IDF | Ja | Nein |
Abgleich regulärer Ausdrücke | Ja | Eingebettet in Conversational Language Understanding (CLU) |
Datumsabgleich | Ja | In CLU über DateTime-Erkennungen möglich |
Chunker | Ja | Nein |
Anmerkung
Microsoft Language Understanding (LUIS) wird am 1. Oktober 2025 eingestellt. Vorhandene LUIS-Anwendungen werden ermutigt, zu Conversational Language Understanding (CLU) zu migrieren, eine Funktion von Azure AI Services for Language, die die Sprachverständnisfunktionen verbessert und neue Features bietet.
NlP-Funktionen auf hoher Ebene
Funktion | Spark-Dienst (Azure Databricks, Microsoft Fabric, Azure HDInsight) mit Spark NLP | Azure KI Services |
---|---|---|
Rechtschreibprüfung | Ja | Nein |
Zusammenfassung | Ja | Ja |
Fragen und Antworten | Ja | Ja |
Stimmungserkennung | Ja | Ja |
Emotionserkennung | Ja | Unterstützt Opinion Mining |
Tokenklassifizierung | Ja | Ja, über benutzerdefinierte Modelle |
Textklassifizierung | Ja | Ja, über benutzerdefinierte Modelle |
Textdarstellung | Ja | Nein |
NER | Ja | Ja – Textanalyse bietet einen Satz von NER und benutzerdefinierte Modelle sind in der Entitätserkennung |
Entitätserkennung | Ja | Ja, über benutzerdefinierte Modelle |
Spracherkennung | Ja | Ja |
Unterstützt neben Englisch noch andere Sprachen | Ja, unterstützt mehr als 200 Sprachen | Ja, unterstützt mehr als 97 Sprachen |
Einrichten von Spark NLP in Azure
Um Spark NLP zu installieren, verwenden Sie den folgenden Code, ersetzen sie jedoch <version>
durch die neueste Versionsnummer. Weitere Informationen finden Sie in der Spark NLP-Dokumentation.
# 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
Entwickeln von NLP-Pipelines
Für die Ausführungsreihenfolge einer NLP-Pipeline folgt Spark NLP dem gleichen Entwicklungskonzept wie herkömmliche Spark ML Machine Learning-Modelle, wobei spezielle NLP-Techniken angewendet werden.
Die Kernkomponenten einer Spark NLP-Pipeline sind:
DocumentAssembler: Ein Transformator, der Daten vorbereitet, indem es in ein Format konvertiert wird, das Spark NLP verarbeiten kann. Diese Phase ist der Einstiegspunkt für jede Spark NLP-Pipeline. DocumentAssembler liest entweder eine
String
Spalte oder eineArray[String]
mit Optionen zum Vorverarbeitung des Texts mithilfe vonsetCleanupMode
, die standardmäßig deaktiviert ist.SentenceDetector: Ein Annotator, der Satzgrenzen mithilfe vordefinierter Ansätze identifiziert. Sie kann jeden erkannten Satz in einem
Array
oder in separaten Zeilen zurückgeben, wennexplodeSentences
auf "true" festgelegt ist.Tokenizer-: Ein Annotator, der unformatierten Text in diskrete Token unterteilt , Wörter, Zahlen und Symbole, die diese als
TokenizedSentence
ausgeben. Der Tokenizer ist nicht ausgestattet und verwendet die Eingabekonfiguration innerhalb derRuleFactory
zum Erstellen von Tokenisierungsregeln. Benutzerdefinierte Regeln können hinzugefügt werden, wenn Die Standardwerte nicht ausreichen.Normalizer-: Ein Mit Einschränkungstoken beauftragter Annotator. Normalizer wendet reguläre Ausdrücke und Wörterbuchtransformationen auf reinen Text an und entfernt überflüssige Zeichen.
WordEmbeddings: Nachschlagezeichen, die Token Vektoren zuordnen und die semantische Verarbeitung erleichtern. Sie können ein benutzerdefiniertes Einbettungswörterbuch mithilfe von
setStoragePath
angeben, wobei jede Zeile ein Token und dessen Vektor enthält, getrennt durch Leerzeichen. Nicht aufgelöste Token werden standardmäßig auf Nullvektoren festgelegt.
Spark NLP nutzt Spark MLlib-Pipelines mit nativer Unterstützung von MLflow-, einer Open-Source-Plattform, die den Machine Learning-Lebenszyklus verwaltet. Zu den wichtigsten Komponenten von MLflow gehören:
MLflow Tracking: Zeichnet experimentelle Ausführungen auf und bietet robuste Abfragefunktionen zum Analysieren von Ergebnissen.
MLflow Projects: Ermöglicht die Ausführung von Data Science-Code auf verschiedenen Plattformen, die Portabilität und Reproduzierbarkeit zu verbessern.
MLflow Models: Unterstützt die vielseitige Modellbereitstellung in verschiedenen Umgebungen über ein konsistentes Framework.
Modellregistrierung: Bietet umfassende Modellverwaltung, speicherung von Versionen zentral für optimierte Zugriffe und Bereitstellung, was die Produktionsbereitschaft erleichtert.
MLflow ist in Plattformen wie Azure Databricks integriert, kann aber auch in anderen Spark-basierten Umgebungen installiert werden, um Ihre Experimente zu verwalten und nachzuverfolgen. Diese Integration ermöglicht die Verwendung der MLflow-Modellregistrierung für die Bereitstellung von Modellen für Produktionszwecke, wodurch der Bereitstellungsprozess optimiert und die Modellgovernance verwaltet wird.
Mithilfe von MLflow neben Spark NLP können Sie eine effiziente Verwaltung und Bereitstellung von NLP-Pipelines sicherstellen und moderne Anforderungen an Skalierbarkeit und Integration erfüllen und gleichzeitig erweiterte Techniken wie Worteinbettungen und Anpassungen großer Sprachmodelle unterstützen.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautoren:
- Freddy Ayala | Cloud-Lösungsarchitekt
- Moritz Steller | Senior Cloud Solution Architect
Nächste Schritte
Spark NLP-Dokumentation:
Azure-Komponenten:
Lernressourcen:
Zugehörige Ressourcen
- Umfangreiche Verarbeitung von benutzerdefinierten natürlichen Sprachen in Azure
- Auswählen einer Microsoft Azure KI Services-Technologie
- Vergleich der Machine Learning-Produkte und Technologien von Microsoft
- MLflow und Azure Machine Learning
- KI-Anreicherung mit Bild- und natürlicher Sprachverarbeitung in Azure Cognitive Search
- Analysieren Sie Newsfeeds mit Quasi-Echtzeit-Analysen unter Verwendung von Bild- und natürlicher Sprachverarbeitung