Bessere Interaktion – die Cognitive-Services-Reihe

Talk to the Bot – das Language API
Kommentare

Wie bereits in vorangegangenen Artikeln werfen wir wieder einen Blick auf die spannendsten Cognitive Services – und zeigen, was die intelligente Software von morgen können wird. Nach dem bereits vorgestellten Language Understanding Intelligent Service (LUIS) widmen wir uns in dieser Ausgabe den weiteren Services des Language API.

Was haben wir uns in der Schule geplagt mit korrekter Rechtschreibung und der Zerlegung von Sätzen in Subjekt, Prädikat und Objekt. Hätten wir damals schon die Cognitive Services gehabt, wäre so manche Schulkarriere anders verlaufen.

Bing Spell Check

„Rechtschreibüberprüfung? Wozu brauche ich in meiner Software eine Rechtschreibüberprüfung?“, werden Sie vielleicht denken (vorausgesetzt, Sie entwickeln nicht gerade einen Word-Konkurrenten). Vielleicht haben Sie recht, wenn Sie an die klassische Variante mit rot unterstrichenen Wörtern denken. Aber wenn Sie eine Suchfunktionalität in Ihrer Software haben, dann ist vielleicht der Bing Spell Check genau das Richtige. Haben Sie sich auch schon öfter gewundert, wie oft man sich in einer Google-Suchabfrage vertippen muss, um tatsächlich keine Ergebnisse mehr zu bekommen? Da können Wörter zusammengeschrieben, Apostrophe übergangen und Buchstaben ausgelassen werden – trotzdem funktioniert die Suche. Und weist auch noch frech darauf hin, dass sie mal eben alles korrigiert hat.

Der Bing Spell Check erledigt genau diese Aufgabe und gibt Tipps, wie ein fehlerhafter Text ausgebessert werden kann. Der Service operiert in zwei Modi: „Proof“ untersucht längere Texte und korrigiert auch die Groß-/Kleinschreibung von Wörtern, „Spell“ ist für kürzere Suchanfragen und auf Performance optimiert. Im resultierenden JSON erhalten Sie zu den als fehlerhaft erkannten Stellen im Text einen oder mehrere Korrekturvorschläge.

So wird aus „Lets seeif the service wors as expectd.“ die korrekte Version „Let’s see if the service works as expected.“. Und aus „cogntve services“ wird … Test bestanden.

Web Language Model API

Wer seine Suche noch weiter tunen möchte, greift als Nächstes zum Web Language Model API (kurz: WebLM). Hier stehen Wörter und deren Zusammenhang im Fokus: Wie wahrscheinlich ist eine bestimmte Folge von Wörtern? Welches Wort könnte danach folgen? Auch wenn der Service für sich alleine genommen vielleicht keine allzu große Relevanz besitzt, so kann man erahnen, dass dieses Wissen andere Cognitive Services positiv beeinflusst. Das Beispiel aus dem Bing Spell Check hat schließlich als Korrektur für „wors“ das richtige „works“ vorgeschlagen – und nicht „words“.

Text Analytics API

Das Text Analytics API beschäftigt sich mit etwas längeren Texten  und analysiert diese hinsichtlich Sprache, Thema und Stimmung. Denken Sie beispielsweise an automatische Auswertungen von Tweets über Ihr Produkt: War das Feedback positiv, neutral oder negativ? In Abbildung 1 sehen Sie ein Beispiel und gleichzeitig einen der größten Nachteile für fast alle Services: Nur Englisch ist wirklich vollständig unterstützt, Deutsch nur teilweise oder überhaupt nicht.

schacherl_languageapi_1

Abb. 1: Analytics API

Unter dem Namen „Topic Detection“ verbirgt sich ein etwas aufwendigerer Service basierend auf Azure Machine Learning. Das API nimmt Texte entgegen (mindestens 100) und ermittelt daraus die zentralen Schlüsselwörter. Das Ergebnis lässt einige Minuten auf sich warten und muss über eine eigene Statusmethode abgefragt werden, liefert dann aber in unserem Test mit hundert Twitter-Nachrichten recht zutreffende Ergebnisse.

Linguistic Analysis

Die Linguistic Analysis APIs dienen zur Analyse und Verarbeitung natürlicher Sprache und bilden damit die Basis vieler anderer Services wie der Erkennung von Schlüsselwörtern und Stimmungen.

Im ersten Schritt („Sentence Separation and Tokenization“) wird der Eingabetext in Sätze und Wörter zerlegt. Ein Beispiel verdeutlicht, dass diese Aufgabe durchaus komplexer ist, als es im ersten Moment scheint: Im Satz „Mr. Smith shouted “Attention!”, but I couldn’t hear him.“ beendet weder der erste Punkt noch das Ausrufezeichen den Satz und „couldn’t“ sind eigentlich zwei Wörter, obwohl kein Leerzeichen dazwischen steht.

Als Nächstes (im „Part-of-Speech Tagging“) werden die so erkannten Wörter grammatikalisch klassifiziert. Für jedes Wort wird ermittelt, ob es sich um ein Nomen, Verb, Adjektiv etc. handelt. Je nachdem werden auch noch andere Eigenschaften wie Einzahl und Mehrzahl, Zeit, Steigerungsformen und dergleichen erkannt. Eine Liste aller möglichen Klassifizierungen ist hier zu finden.

Zuletzt werden die einzelnen Wörter zu Phrasen zusammengefasst („Constituency Parsing“). Eine Phrase ist dabei eine zusammengehörige Gruppe von Wörtern, die sich innerhalb des Satzes ohne große Auswirkungen auf die Aussage verschieben oder durch eine Phrase ähnlichen Inhalts ersetzen lässt. Abbildung 2 zeigt den so entstehenden Baum für einen Satz. S steht für „Sentence“, VP für „Verb Phrase“ und NP für „Noun Phrase“. Eine vollständige Liste ist online verfügbar.

Auch die Linguistic Analysis APIs unterstützen zurzeit nur Englisch, es sind aber weitere Sprachen in Planung. Bis dahin lassen sich die Deutschhausaufgaben wohl doch noch nicht automatisiert erledigen.

Abb. 2: Constituency Parsing

Abb. 2: Constituency Parsing

 

Windows Developer

Windows DeveloperDieser Artikel ist im Windows Developer erschienen. Windows Developer informiert umfassend und herstellerneutral über neue Trends und Möglichkeiten der Software- und Systementwicklung rund um Microsoft-Technologien.

Natürlich können Sie den Windows Developer über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist der Windows Developer ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -