Programmieren auf Zuruf

Das Karlsruher Institut für Technologie entwickelt eine Übersetzungssoftware, die normale Sprache in Computercode umwandelt.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 4 Min.
Von
  • Christian Rauch

Der Staubsaugerroboter soll keine Legoteile im Kinderzimmer einsaugen; der Smart Speaker soll meine Lieblingslieder automatisch lauter drehen; das Handy soll in den Vibrationsmodus gehen, wenn ich die Wohnung betrete. Die smarten Assistenten des täglichen Lebens könnten all diese Sonderwünsche, die ich ihnen gern diktieren würde, im Prinzip leicht erfüllen – wenn sie vorher jemand darauf programmiert hätte. Doch häufig existiert die App oder Einstellung nicht, die man für eine individualisierte Funktionsweise bräuchte.

TR 4/2017

Mathias Landhäußer vom Karlsruher Institut für Technologie (KIT) hatte solche Anwendungen im Hinterkopf, als er in seiner Dissertation einen Übersetzer zum Programmieren in gewöhnlicher Sprache entwickelte. Sein Natural Language Command Interpreter (NLCI) versteht alltägliche Sätze und verwandelt sie in Computercode. Eine komplexe Aufgabe. Denn für simple Anweisungen wie "Öffne alle fünf Fenster!" benötigt eine Software den Code: "Für die Variable i = 1 öffne das Fenster Nr. i. Erhöhe i um 1. Wenn i gleich 5 ist, stoppe, sonst beginne von vorn."

Selbst die vermeintlichen Wunderwaffen aus den Arsenalen der Künstlichen-Intelligenz-Forschung, Machine Learning und neuronale Netze, halfen Landhäußer nicht weiter. "Solche Systeme muss man für jeden Anwendungsfall, zum Beispiel Gesichtserkennung, separat trainieren." Wenn es um beliebig formulierte Programmieranweisungen geht, fehlt ihnen das Hintergrundwissen. So können etwa Spracherkennungssysteme in Smartphones wie Siri zwar den Eingabesatz "Ich treffe mich morgen um 9 Uhr mit Max" verstehen, da der Befehl im klar umgrenzten Kontext von Kalenderterminen gesprochen wurde und die Software weiß, dass ein Termin über eine Uhrzeit verfügen muss. Bereits Sprachbefehle wie "Mache ein Bildschirmfoto und schicke es an meine ganze Familie" kann Siri aber nicht verstehen, da ihr Formulierungen wie das Personalpronomen "es" zu viel Interpretationsspielraum lassen.

Um Programme bei der richtigen Deutung einer Sprachanweisung zu unterstützen, entwickelte Landhäußer also zunächst eine Datenbank für komplexes Hintergrundwissen. Diese Informationen kombinierte er im nächsten Schritt mit einer Software zur Grammatikanalyse. So entstand sein Übersetzer NLCI. Für den ersten Test speiste Landhäußer Musterbeispiele für Akteure und Handlungen, die in einem Videoclip vorkommen können, in seine Datenbank. Anschließend bat er Testnutzer, Drehbücher für einen Clip zu schreiben.

Der Übersetzer erkannte die Drehbuchsätze und übermittelte sie als Code an die Clipsoftware. Diese animierte daraufhin stets die richtige Filmszene, egal ob die Nutzer "der Pinguin jagt den Cowboy" oder "der Cowboy flieht vor dem Pinguin" geschrieben hatten. Auch in einem zweiten Anwendungsszenario hat sich das System bewährt: In die Steuerzentrale eines Wohnhauses integriert, kann NLCI beliebig formulierte Anweisungen in Programmcode umwandeln. Auf den Satz "Wenn die Sonne scheint, öffne die Rollläden" reagiert die Haustechnik ebenso richtig wie auf den Befehl "Scheint die Sonne, mache die Rollläden auf".

Der Haken: Für die verschiedenen Einsatzfelder musste jeweils eine eigene Datenbank erstellt werden – ein aufwendiges Verfahren. Dieser Vorgang lässt sich jedoch automatisieren, sagt Landhäußer. "Weil man weiß, was in der Datenbank stehen muss, kann man einen Datenbank-Generator bauen, der manuelle Arbeit vermeidet." Noch ist der NLCI nicht marktreif. Mit drei Kollegen vom KIT feilt Landhäußer derzeit an den sprachlichen Fertigkeiten des Übersetzers. Er soll etwa lernen, Satzzeichen wie Punkte oder Kommas, die für korrekte Satzanalysen notwendig sind, aus dem Redefluss herauszuhören. Gleichzeitig soll er einüben, Wiederholungen und Füllwörter zu ignorieren.

Die Karlsruher Wissenschaftler wollen die Kommunikationsfähigkeit ihres Systems außerdem so erweitern, dass es bei Unklarheiten mit dem sprechenden Programmierer in Dialog treten kann.

Die Entwickler räumen zwar ein, dass der Ansatz Grenzen hat, etwa wenn es um besonders störanfällige oder sicherheitsrelevante Computersysteme geht. "Natürlichsprachliches Programmieren wird man für Betriebssysteme oder Onlinebanking weder einsetzen können noch wollen", sagt Landhäußer. Bei weniger brisanten Problemen dürfte das jedoch anders sein. Ginge es nach ihm, können Nutzer schon in wenigen Jahren ihrem Heimroboter auf Zuruf neue Funktionen beibringen und Apps durch Sprachbefehle erweitern.

(bsc)