Freigeben über


Technologie zur Verarbeitung von natürlicher Sprache

Die Verarbeitung natürlicher Sprachen umfasst viele Anwendungen, z. B. Stimmungsanalyse, Themenerkennung, Spracherkennung, Extraktion von Schlüsselbegriffen und Dokumentkategorisierung.

Insbesondere können Sie die Verarbeitung natürlicher Sprachen verwenden, um:

  • Klassifizieren von Dokumenten. Sie können sie z. B. als vertraulich oder spam kennzeichnen.
  • Führen Sie nachfolgende Verarbeitungen oder Suchen durch, indem Sie die Ausgaben der linguistischen Datenverarbeitung verwenden.
  • Fassen Sie Text zusammen, indem Sie Entitäten im Dokument identifizieren.
  • Markieren Sie Dokumente mit Schlüsselwörtern mithilfe von identifizierten Entitäten.
  • Führen Sie inhaltsbasierte Suche und Abruf mithilfe von Tags 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.

Da die Technologie voranschreitet, können Sie die Verarbeitung natürlicher Sprachen verwenden, um Textdaten zu kategorisieren und zu analysieren. Sie können sie auch verwenden, um interpretierbare KI-Funktionen in verschiedenen Bereichen zu verbessern. Durch die Integration von Sprachmodellen werden die Funktionen der Verarbeitung natürlicher Sprachen erheblich verbessert. Sprachmodelle wie GPT und BERT können menschenähnlichen, kontextbezogenen Text generieren. Diese Funktion macht sie für komplexe Sprachverarbeitungsaufgaben sehr effektiv. Sie ergänzen bestehende Techniken zur Verarbeitung natürlicher Sprachen 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 natürlicher Sprachverarbeitung

Die Verarbeitung natürlicher Sprachen ist ein umfassendes Feld, das verschiedene Techniken zur Verarbeitung der menschlichen Sprache umfasst. Im Gegensatz dazu sind Sprachmodelle eine bestimmte Teilmenge der Verarbeitung natürlicher Sprachen. Sie konzentrieren sich auf deep learning, um allgemeine Sprachaufgaben auszuführen. Sprachmodelle verbessern die Verarbeitung natürlicher Sprachen, indem erweiterte Funktionen für die Textgenerierung und das Verständnis bereitgestellt werden, aber sie sind nicht gleichbedeutend mit der Verarbeitung natürlicher Sprachen. Stattdessen dienen sie als leistungsstarke Tools in der umfassenderen Domäne für die Verarbeitung natürlicher Sprachen, indem sie komplexere Sprachverarbeitung ermöglichen.

Hinweis

Dieser Artikel konzentriert sich auf die Verarbeitung natürlicher Sprachen. Die Beziehung zwischen verarbeitung natürlicher Sprache und Sprachmodellen zeigt, dass Sprachmodelle Die Verarbeitungsprozesse natürlicher Sprachen durch überlegene Sprachverständnis- und Generierungsfunktionen verbessern.

Potenzielle Anwendungsfälle

Geschäftsszenarien, die von der benutzerdefinierten Verarbeitung natürlicher Sprachen profitieren können, umfassen:

  • Dokumentintelligenz für handschriftliche oder maschinengestützte Dokumente in Finanz-, Gesundheits-, Einzelhandels-, Regierungs- und anderen Sektoren.

  • Branchenunabhängige Verarbeitungsaufgaben für natürliche Sprachen für die Textverarbeitung, z. B. benannte Entitätserkennung (NER), Klassifizierung, Zusammenfassung und Beziehungsextraktion.

    Mit diesen Aufgaben können Sie Dokumentinformationen wie Text und unstrukturierte Daten automatisch abrufen, identifizieren und analysieren. 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. Diese Aufgaben helfen Sektoren wie Finanzen und Compliance, bei denen eine gründliche Dokumentation erforderlich ist.

  • Sprachaktive Schnittstellen, die die Verarbeitung natürlicher Sprachen für spracherkennung und natürliche Unterhaltungsfunktionen integrieren. Diese Integration verbessert die Benutzerinteraktionen in Internet of Things-Anwendungen und Smart Device-Anwendungen.

  • Adaptive Sprachmodelle, die die Sprachausgabe dynamisch an verschiedene Benutzergruppenverständnisebenen anpassen können. Diese Funktion ist für Bildungsinhalte und Verbesserungen der Barrierefreiheit von entscheidender Bedeutung.

  • Cybersicherheitstextanalyse zur Analyse von Kommunikationsmustern und Sprachnutzung in Echtzeit. Diese Analyse hilft Ihnen, potenzielle Sicherheitsbedrohungen in der digitalen Kommunikation zu erkennen und die Erkennung von Phishingversuchen oder Fehlinformationen zu verbessern.

Apache Spark als angepasstes Framework für die Verarbeitung natürlicher Sprachen

Apache Spark ist ein leistungsfähiges Parallelverarbeitungsframework, das die Leistung von Big Data-Analyseanwendungen mithilfe der Speicherverarbeitung verbessert. Azure Synapse Analytics, Azure HDInsightund Azure Databricks einen robusten Zugriff auf die Verarbeitungsfunktionen von Spark bieten. Dieser Zugriff hilft Ihnen, umfangreiche Datenvorgänge nahtlos auszuführen.

Spark NLP ist ein effizientes Framework, das große Textmengen für angepasste Verarbeitungsworkloads für natürliche Sprachen verarbeiten kann. Diese Open-Source-Bibliothek bietet umfangreiche Funktionen mithilfe von Python-, Java- und Scala-Bibliotheken. Diese Bibliotheken bieten die Raffinesse, die Sie in prominenten Bibliotheken für die Verarbeitung natürlicher Sprachen wie spaCy und Natural Language Toolkit finden können. Spark NLP umfasst erweiterte Features wie Rechtschreibprüfung, Stimmungsanalyse und Dokumentklassifizierung. Diese Features helfen Ihnen dabei, eine optimale Genauigkeit und Skalierbarkeit zu gewährleisten.

Diagramm mit Bereichen der Verarbeitung natürlicher Sprachen, z. B. Entitätserkennung. In verschiedenen Feldern werden Annotatoren, Modelle und unterstützte Sprachen in natürlicher Sprache aufgeführt.

Apache®, Apache Spark und das Flammenlogo sind entweder eingetragene Marken oder Marken der Apache Software Foundation in den USA und/oder anderen Ländern. Es wird nicht impliziert, dass eine Unterstützung der Apache Software Foundation vorliegt, wenn diese Marken verwendet werden.

Aktuelle öffentliche Benchmarks heben die Leistung von Spark NLP hervor. Diese Benchmarks zeigen erhebliche Geschwindigkeitsverbesserungen gegenüber anderen Bibliotheken. Spark NLP behält auch eine vergleichbare Genauigkeit für die Schulung von benutzerdefinierten Modellen bei. Insbesondere verbessert die Integration der Llama 2-Modelle und OpenAI Whisper Unterhaltungsschnittstellen und mehrsprachige Spracherkennung. Diese Funktionen weisen erhebliche Fortschritte bei optimierten Verarbeitungsfunktionen auf.

Spark NLP nutzt effektiv einen verteilten Spark-Cluster, der als systemeigene Erweiterung von Spark ML funktioniert und direkt auf Datenframes arbeitet. Diese Integration unterstützt verbesserte Leistungssteigerungen auf Clustern, wodurch die Erstellung einheitlicher Verarbeitungs- und Machine Learning-Pipelines für Aufgaben wie Dokumentklassifizierung und Risikovorhersage erleichtert wird. MPNet-Einbettungen und umfangreiche ONNX-Unterstützung erweitern diese Funktionen weiter und ermöglichen eine präzise und kontextabhängige Verarbeitung.

Spark NLP liefert hochgenaue Ergebnisse in einem erweiterten Array natürlicher Sprachverarbeitungsaufgaben. Die Bibliothek verfügt über vorgefertigte Deep Learning-Modelle für benannte Entitätserkennung, Dokumentklassifizierung und Stimmungserkennung. Das funktionsreiche Design umfasst vortrainierte Sprachmodelle, die Wort-, Block-, Satz- und Dokumenteinbettungen unterstützen.

Die Infrastruktur von Spark NLP skaliert, indem optimierte Builds für CPUs, GPUs und die neuesten Intel Xeon-Chips verwendet werden, die es ermöglichen, Trainings- und Inferenzprozesse voll auszuschöpfen, um die Spark-Cluster vollständig auszunutzen. Diese Funktion trägt dazu bei, die effiziente Handhabung von Verarbeitungsaufgaben in natürlicher Sprache in verschiedenen Umgebungen und Anwendungen sicherzustellen.

Herausforderungen

  • Ressourcenverarbeitung: Die Verarbeitung einer Sammlung von Freiformtextdokumenten erfordert eine erhebliche Menge rechenintensiver Ressourcen. Die Verarbeitung ist auch zeitintensiv. Diese Art von Verarbeitung umfasst häufig die Bereitstellung von GPU-Rechenleistungen. Aktuelle Fortschritte, die die Quantisierung unterstützen, z. B. Optimierungen in Spark NLP-Architekturen wie Llama 2, helfen, diese intensiven Aufgaben zu optimieren, indem Ressourcen effizienter zugeordnet werden.

  • Standardisierung: Ohne 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 Modelle für die Verarbeitung natürlicher Sprachen wie M2M100 verbessert die Verarbeitungsgenauigkeit in mehreren Sprachen und Formaten. Diese verbesserte Genauigkeit führt zu konsistenteren Ergebnissen.

  • Datenvielfalt und Komplexität: Die Behandlung der Vielfalt der Dokumentstrukturen und sprachlichen Nuancen bleibt komplex. Innovationen wie MPNet-Einbettungen bieten ein verbessertes kontextbezogenes Verständnis, was zu einer intuitiveren Handhabung verschiedener Textformate und zuverlässigerer Datenverarbeitung führt.

Wichtige Auswahlkriterien

In Azure bieten Spark-Dienste wie Azure Databricks, Microsoft Fabric und HDInsight Funktionen für die Verarbeitung natürlicher Sprachen, wenn Sie sie mit Spark NLP verwenden. Azure AI-Dienste sind eine weitere Option für die Verarbeitung natürlicher Sprachen. Berücksichtigen Sie die folgenden Aspekte, damit Sie entscheiden können, welcher Dienst verwendet werden soll:

  • Wenn Sie vorgefertigte oder vortrainierte Modelle verwenden möchten, sollten Sie die APIs verwenden, die KI-Dienste bereitstellen. Oder Sie können Ihr Modell ihrer Wahl über Spark NLP herunterladen, das erweiterte Modelle wie Llama 2 und MPNet für erweiterte Funktionen enthält.

  • Wenn Sie benutzerdefinierte Modelle für eine große Sammlung von Textdaten trainieren müssen, sollten Sie Azure Databricks, Fabric oder HDInsight mit Spark NLP verwenden. Diese Plattformen bieten die Rechenleistung und Flexibilität, die Sie für umfangreiche Modellschulungen benötigen.

  • Wenn Sie Funktionen für die Verarbeitung natürlicher Sprachen auf niedriger Ebene benötigen, z. B. Tokenisierung, Stemming, Lemmatisierung und Ausdruckshäufigkeit/Umgekehrte Dokumenthäufigkeit (TF/IDF), sollten Sie Azure Databricks, Fabric oder HDInsight mit Spark NLP verwenden. Alternativ können Sie eine Open-Source-Softwarebibliothek in Ihrem Auswahltool verwenden.

  • Wenn Sie einfache, allgemeine Funktionen für die Verarbeitung natürlicher Sprachen wie Entitäts- und Absichtserkennung, Themenerkennung, Rechtschreibprüfung oder Stimmungsanalyse benötigen, sollten Sie die APIs verwenden, die KI-Dienste bereitstellen. Oder laden Sie Ihr Modell ihrer Wahl über Spark NLP herunter, um vordefinierte Funktionen für diese Aufgaben zu verwenden.

Funktionsmatrix

In den folgenden Tabellen sind die wichtigsten Unterschiede bei den Funktionen von Sprachverarbeitungsdiensten zusammengefasst.

Allgemeine Funktionen

Fähigkeit Spark-Dienst (Azure Databricks, Fabric, HDInsight) mit Spark NLP KI-Dienste
Bereitstellung von vortrainierten Modellen als Dienst Ja Ja
REST-API Ja Ja
Programmierbarkeit Python, Scala Siehe die unterstützten Programmiersprachen
Unterstützt die Verarbeitung großer Datasets und großer Dokumente Ja Nein

Annotatorfunktionen

Fähigkeit Spark-Dienst (Azure Databricks, Fabric, HDInsight) mit Spark NLP KI-Dienste
Satzerkennung Ja Nein
Tiefe Satzerkennung Ja Ja
Tokenisierer Ja Ja
N-Gramm-Generator Ja Nein
Wortsegmentierung Ja Ja
Wortstammerkennung Ja Nein
Lemmatisierung Ja Nein
Satzteilmarkierung Ja Nein
Abhängigkeitsparser Ja Nein
Übersetzung Ja Nein
Stoppwortbereinigung Ja Nein
Rechtschreibkorrektur Ja Nein
Normalisator Ja Ja
Textabgleich Ja Nein
TF/IDF Ja Nein
Abgleich regulärer Ausdrücke Ja Eingebettet in das Feature "Conversational Language Understanding" (CLU)
Datumsabgleich Ja Möglich in CLU durch DateTime-Erkenner
Chunker Ja Nein

Hinweis

Language Understanding (LUIS) wird am 1. Oktober 2025 eingestellt. Sie sollten vorhandene LUIS-Anwendungen in das Feature "Conversational Language Understanding" (CLU) von Azure AI Language migrieren, das die Sprachverständnisfunktionen verbessert und neue Features bereitstellt.

Hochentwickelte Verarbeitungsfunktionen für natürliche Sprache

Fähigkeit Spark-Dienst (Azure Databricks, Fabric, HDInsight) mit Spark NLP KI-Dienste
Rechtschreibprüfung Ja Nein
Zusammenfassung Ja Ja
Fragenbeantwortung 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
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 Spark NLP-Dokumentation.

# 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

Entwickeln von Pipelines für die Verarbeitung natürlicher Sprachen

Spark NLP folgt dem gleichen Entwicklungskonzept wie herkömmliche Spark ML Machine Learning-Modelle, wenn sie eine Verarbeitungspipeline für natürliche Sprachen ausführt. Es wendet auch spezielle Techniken für die Verarbeitung natürlicher Sprachen an.

Diagramm, das die Phasen einer Pipeline für die Verarbeitung natürlicher Sprachen zeigt, z. B. Dokumentassembly, Satzerkennung, Tokenisierung, Normalisierung und Worteinbettung.

Eine Spark NLP-Pipeline umfasst die folgenden Kernkomponenten:

  • DocumentAssembler ist ein Transformator, der Daten vorbereitet, indem sie 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 eine Array[String] und kann den Text mithilfe von setCleanupModevorverarbeiten, die standardmäßig deaktiviert ist.

  • SentenceDetector ist ein Annotator, der Satzbegrenzungen mithilfe vordefinierter Ansätze identifiziert. Sie kann jeden erkannten Satz in einem Array oder in separaten Zeilen zurückgeben, wenn explodeSentences auf "true" festgelegt ist.

  • Tokenizer ist ein Annotator, der unformatierten Text in diskrete Token aufteilt, z. B. Wörter, Zahlen und Symbole, und gibt sie als TokenizedSentenceaus. Tokenizer ist nicht angepasst und verwendet innerhalb von RuleFactory die Eingabekonfiguration, um Tokenisierungsregeln zu erstellen. Sie können benutzerdefinierte Regeln hinzufügen, wenn die Standardregeln nicht ausreichen.

  • Normalizer- ist ein Annotator, der mit der Verfeinerung von Tokens beauftragt ist. Normalizer wendet reguläre Ausdrücke und Wörterbuchtransformationen auf reinen Text an und entfernt überflüssige Zeichen.

  • WordEmbeddings sind Lookup-Annotatoren, die Token zu Vektoren zuordnen und die semantische Verarbeitung erleichtern.a Sie können ein benutzerdefiniertes Einbettungswörterbuch mithilfe von setStoragePathangeben, 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 verwendet Spark MLlib-Pipelines, die systemeigene Unterstützung von MLflowhaben, einer Open-Source-Plattform, die den Lebenszyklus des maschinellen Lernens verwaltet. MLflow verfügt über die folgenden Schlüsselkomponenten:

  • MLflow Tracking zeichnet experimentelle Durchläufe auf und bietet robuste Abfragefunktionen, um Ergebnisse zu analysieren.

  • mit MLflow Projects können Sie Data Science-Code auf verschiedenen Plattformen ausführen. Diese Funktion verbessert die Portabilität und Reproduzierbarkeit.

  • MLflow-Modelle unterstützen die vielseitige Bereitstellung von Modellen in verschiedenen Umgebungen durch ein konsistentes Framework.

  • Modellregistrierung bietet umfassende Modellverwaltung durch zentrales Speichern von Versionen für optimierte Zugriff und Bereitstellung. Dieser Schritt erleichtert die Produktionsbereitschaft.

MLflow ist in Plattformen wie Azure Databricks integriert, Sie können ihn aber auch in anderen Spark-basierten Umgebungen installieren, um Ihre Experimente zu verwalten und nachzuverfolgen. Mit dieser Integration können Sie die MLflow-Modellregistrierung verwenden, um Modelle für Produktionszwecke zur Verfügung zu stellen. Sie können den Bereitstellungsprozess optimieren und die Modell-Governance aufrechterhalten.

Mithilfe von MLflow neben Spark NLP können Sie eine effizientere Verwaltung und Bereitstellung von Pipelines für die Verarbeitung natürlicher Sprachen sicherstellen. Sie können auch moderne Anforderungen an Skalierbarkeit und Integration erfüllen und erweiterte Techniken wie Worteinbettungen und Sprachmodellanpassungen unterstützen.

Beitragende

Microsoft verwaltet diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.

Hauptautoren:

Um nichtöffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.

Nächste Schritte