Apache OpenNLP¶
Apache OpenNLP ist eine Open-Source-Bibliothek, die über ihre APIs und Befehlszeilen-Tools Lösungen für einige der Aufgaben der natürlichen Sprachverarbeitung bereitstellt. Apache OpenNLP verwendet einen maschinellen Lernansatz für die Aufgaben der Verarbeitung natürlicher Sprache. Es stellt auch einige der vorgefertigten Modelle für einige der Aufgaben zur Verfügung.
Apache OpenNLP unterstützt die gängigsten NLP-Aufgaben wie Tokenisierung (tokenization), Satzsegmentierung (sentence segmentation), Part of Speech-Tagging, Extraktion benannter Entitäten (named entity extraction), Chunking, Parsing und Koreferenzauflösung (coreference resolution). Diese Aufgaben sind in der Regel erforderlich, um fortgeschrittenere Textverarbeitungsdienste aufzubauen. OpenNLP beinhaltete auch maximale Entropie und Perceptron-basiertes maschinelles Lernen.
Kurzbeschreibung der Aufgaben:
Tokenisierung: ist der Mechanismus der Zerlegung oder Fragmentierung von Sätzen und Wörtern in ihr mögliches kleinstes Morphem, das als Token bezeichnet wird. Morphem ist das kleinstmögliche Wort, nach dem es nicht weiter gebrochen werden kann. Die Tokenisierung kann auf Satz- und Wortebene erfolgen.
Satzsegmentierung: ist der Prozess der Aufteilung eines laufenden Textes in Sätze. Ein Aspekt, der diese Aufgabe weniger einfach macht, als sie sich anhört, ist das Vorhandensein von Interpunktionszeichen, die entweder zur Angabe eines Punktes oder zur Bildung von Abkürzungen und ähnlichem verwendet werden können.
Part of Speech-Tagging ist ein Prozess der Umwandlung eines Satzes in Formen - Liste von Wörtern, Liste von Tupeln (wobei jedes Tupel eine Form (Wort, Tag) hat). Das Tag ist ein part-of-speech-Tag und zeigt an, ob das Wort ein Substantiv, Adjektiv, Verb usw. ist.
Extraktion benannter Entitäten bezeichnet die automatische Identifikation und Klassifikation von Eigennamen. Ein Eigenname ist eine Folge von Wörtern, die eine real existierende Entität beschreibt, wie z. B. eine Person, Stadt oder Unternehmen.
Chunking ist die Aufgabe eines Chunkers, der den Satz in Gruppen (von Wörtern) zerlegt, die aufeinanderfolgende Wörter des Satzes enthalten, die zu einer Substantivgruppe, Verbgruppe usw. gehören.
Parsing ist der Prozess der Bestimmung der syntaktischen Struktur eines Textes durch die Analyse seiner konstituierenden Wörter auf der Grundlage einer zugrundeliegenden Grammatik (der Sprache).
Die NLP-Aufgaben werden von Apache OpenNLP durch vorgefertigten Modelle für ausgewählte Sprachen bereitgestellt.
Vortrainiertes OpenNLP Modell hinzufügen¶
Über die Business Bot Plattform können vorgefertigte Modelle herruntergeladen werden, damit diese von den Geschäftslogiken genutzt werden können. Um ein OpenNLP Modell zur Plattform hinzuzufügen, benötigen Sie eine Internetverbindung. Gehen Sie wie folgt vor:
- Klicken Sie in der Navigationsleiste auf
Natürliche Sprachverarbeitung
→NLP Modelle
→Trainierte Modelle hinzufügen
- Setzen Sie für das gewünschte NLP Modell im Kasten oben links das Häkchen und klicken anschließend auf
Herunterladen
- Das NLP Modell wird nun automatisch im Hintergrund heruntergeladen und registriert. Sie können den Download-Status anzeigen, indem Sie auf das Flaggen-Symbol für Hintergrundaufgaben klicken, das sich in der oberen Navigationsleiste befindet
Benutzerdefiniertes trainiertes Modell hinzufügen¶
Die vortrainierten Modelle stehen möglicherweise für eine gewünschte Sprache nicht zur Verfügung, können wichtige Entitäten nicht erkennen oder die Leistung ist außerhalb des Nachrichtenbereichs nicht gut genug. Dies sind die typischen Gründe für ein individuelles Training des eigenen Modells auf einem neuen Korpus oder auf einem Korpus, der um private Trainingsdaten aus den zu analysierenden Daten erweitert wird.
Um ein eigenes Modell hinzuzufügen gehen Sie wie folgt vor:
- Klicken Sie in der Navigationsleiste auf
Natürliche Sprachverarbeitung
→NLP Modelle
→Eigenes Modell hinzufügen
- Wählen Sie nun die Komponente, Modell-Typ und Sprache des Modells aus und geben eine kurze Beschreibung an.
- Laden Sie nun im rechten Panel die Modell-Datei per Drag & Drop hoch und überprüfen anschließend die Ausgabe im Panel (Die Datei darf nicht größer als 100 MB sein und muss den Dateityp
*.bin
haben). Klicken Sie anschließend aufAbschicken
um das Modell zu registrieren.
Hinweis
Die Dateigröße für das NLP-Modell kann über die System-Einstellungen der Plattform angepasst werden.
Informationen zur Erstellung benutzerdefinierter NLP Modelle erhalten Sie in der Apache OpenNLP Developer Documentation.
Vorgefertiges OpenNLP Wörterbücher hinzufügen¶
Über die Business Bot Plattform können vorgefertigte Wörterbücher herruntergeladen werden, damit diese von den Geschäftslogiken genutzt werden können. Um ein OpenNLP Wörterbuch zur Plattform hinzuzufügen, benötigen Sie eine Internetverbindung. Gehen Sie wie folgt vor:
- Klicken Sie in der Navigationsleiste auf
Natürliche Sprachverarbeitung
→NLP Wörterbücher
→Wörterbücher hinzufügen
- Setzen Sie für das gewünschte NLP Wörterbuch im Kasten oben links das Häkchen und klicken anschließend auf
Herunterladen
- Das NLP Wörterbuch wird nun automatisch im Hintergrund heruntergeladen und registriert. Sie können den Download-Status anzeigen, indem Sie auf das Flaggen-Symbol für Hintergrundaufgaben klicken, das sich in der oberen Navigationsleiste befindet
Benutzerdefiniertes vorgefertiges Wörterbuch hinzufügen¶
Die vorgefertigen Wörterbücher stehen möglicherweise für eine gewünschte Sprache nicht zur Verfügung, können wichtige Entitäten nicht erkennen oder stehen für eine gewünschte Domäne nicht gut genug. Dies sind die typischen Gründe für die Erstellung von individuellen Wörterbüchern.
Um ein eigenes Wörterbuch hinzuzufügen gehen Sie wie folgt vor:
- Klicken Sie in der Navigationsleiste auf
Natürliche Sprachverarbeitung
→NLP Modelle
→Eigenes Wörterbuch hinzufügen
- Wählen Sie nun einen Namen, Typ und Sprache des Wörterbuchs aus und geben eine kurze Beschreibung an.
- Laden Sie nun im rechten Panel die Wörterbuch-Datei per Drag & Drop hoch und überprüfen anschließend die Ausgabe im Panel (Die Datei darf nicht größer als 100 MB sein und muss den Dateityp
*.dict
haben). Klicken Sie anschließend aufAbschicken
um das Wörterbuch zu registrieren.
Hinweis
Die Dateigröße für das NLP-Wörterbuch kann über die System-Einstellungen der Plattform angepasst werden.
Informationen zur Erstellung benutzerdefinierter NLP Wörterbucher erhalten Sie in der Apache OpenNLP Developer Documentation.
Modell testen¶
Der beste Weg, die Zuverlässigkeit zu messen, ist die Bewertung des von Ihnen trainierten Modells. Das Ergebnis der Auswertung werden einige Punkte sein, die die Präzision des Modells und die Erinnerungsmetriken sowie das kombinierte F-Maß angeben. Nach dem Training und der Auswertung des Modells können Sie die Parameter oder den Trainingstext selbst anpassen, um auf eine Verbesserung der Evaluationsmetriken hinzuarbeiten.
Der NLP - API Tester hilft Ihnen Anfragen an das Modell zu senden und das Ergebnis zu prüfen. Der NLP-Werkzeug ist im Kapital NLP - API Tester beschrieben.
NLP-Modelle für Geschäftslogiken verwenden¶
Alle Geschäftslogiken können die NLP-Implementation der Business Bot Plattform verwenden. Die Geschäftslogik sendet dazu eine HTTP-Anfrage an die Plattform. Der Webdienst konsumiert POST-Anfragen mit folgenden Werten:
Parameter | Wert |
---|---|
HTTP Typ | POST |
URL: | https://demo.bbp.local:<port>/bbp/rest/api/1.0/<TenantId>:<ApiId>:<ApiKey>/nlp/opennlp/query/ |
Parameter | Beschreibung | Beispielwert |
---|---|---|
<port> |
Plattform-Port | 450 |
<TenantId> |
Madanten-Kennung | demo |
<ApiId> |
API Kennung | u-98edf8d |
<ApiKey> |
API Schlüssel | 5407807 |
Body Parameter | Parameter-Name | Beschreibung | Beispiel-Wert |
---|---|---|---|
Key Parameter 1 | messageText |
Nachtricht | <text> , z.B. Hallo Chatbot |
Key Parameter 2 | language |
Sprache der Nachricht (wird der Parameter nicht angegeben, wird mithilfe des Sprach-Detektor-Modell versucht die Sprache zu erkennen. Wenn das Sprach-Detektor-Modell nicht installiert wurde, wird Englisch als Standardsprache verwendet.) | <languageCode> z.B. en oder de |
Die Antwort erfolgt in JSON-Notation. Eine detaillierte Beschreibung der JSON-Antwort finden Sie im Kapital NLP - API Tester.