Tools für Computerlinguisten. Dialogsysteme. Theresa Schmidt

Ähnliche Dokumente
Einführung in die Pragmatik und Diskurs: Dialog

Einführung in die Computerlinguistik

Gliederung. Informationsextraktion Materialien zur Vorlesung. Entwicklung eines regex für Firmennamen. Entwicklung eines regex für Firmennamen

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Einführung in die Computerlinguistik. Dialogsysteme. Wozu Dialogsysteme? Der sprechende Fahrstuhl (1) Der sprechende Fahrstuhl (5)

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe

Friedrich-Alexander-Universität Professur für Computerlinguistik. Nguyen Ai Huong

Äquivokationen. In der Spracherkennung. Michael Baumann Seminar (mit Bachelorarbeit)

Vorkurs Informatik WiSe 16/17

CIS. Dialogmanagement. IfI. Hauptseminar Dialogsysteme. 15. Dezember 2005 Cornelius Dirmeier Michael

Wer Wird Millionär? Ganz wichtig: Denkt daran in regelmäßigen Abständen zu speichern! Los geht s:

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Sprachtechnologie. Tobias Scheffer Paul Prasse Michael Großhans

Wortdekodierung. Vorlesungsunterlagen Speech Communication 2, SS Franz Pernkopf/Erhard Rank

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp

Javakurs für Anfänger

Einführung in die Computerlinguistik Vorbesprechung

Vorkurs Informatik WiSe 17/18

Einführung in die Programmierung

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Arithmetik in der tcsh

Java I Vorlesung Imperatives Programmieren

Wie entwerfe ich ein Programm?

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Die Nuance-Grammatik und der Grammar Builder

Hello World! Eine Einführung in das Programmieren Variablen

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Programming 101. Carl Herrmann IPMB & DKFZ

Kommunikation mit gesprochener Sprache...

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Grundlagen von C# - 1

Empfehlenswerte Referenzen

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Algorithmen und Datenstrukturen (für ET/IT)

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Einführung in die Computerlinguistik D IALOGSYSTEME WS 2009/2010. Bojan Georgievski Prashanna Thangeswaran David Höfig

Informatik. Strukturen und Aufzählungstypen. Vorlesung

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Tobias Scheffer, Tom Vanck, Paul Prasse

Javakurs für Anfänger

Kapitel 1: Informationsverarbeitung durch Programme

Inhalt 6 Vorwort 10 1 Warum Perl? 12 2 Grundlagen Variablen Spezial-Variablen Kontext Wahrheitswert 18 3 Skalare 20 3.

Parameter in Korrespondenzen.

Programmierkurs (Java) 30. Oktober 2017 Institut für Informatik ÜBUNGBLATT 02. Dieses Übungsblatt wird in der Woche des 06. November besprochen.

Informationsextraktion Materialien zur Vorlesung

Magisterarbeit. Multimodale Interaktionsgestaltung bei dem mobilen Serviceroboter Care-O-bot 3 des Fraunhofer IPA

Übungen zur Vorlesung Wissenschaftliches Rechnen I

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

System.out.println("TEXT");

Programmieren Vorkurs

Einstieg in die Informatik mit Java

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 2. Blatt Für die Woche vom 3.5. bis zum 7.5.

Funktionen nur wenn dann

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

Natürlichsprachliche Systeme I Materialien zur Vorlesung

Beuth Hochschule Einführende Gentle-Programme WS12/13, S. 1

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Medienart: Print Medientyp: Publikumszeitschriften Auflage: 312'871 Erscheinungsweise: 26x jährlich

Input, Output, Dateien

Grundlagen und Definitionen

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Interdisziplinäre fachdidaktische Übung: Sprache und Modelle. SS 2015: Grossmann, Jenko

Musterlösung zur 2. Aufgabe der 4. Übung

Algorithmen und ihre Programmierung

Einführung in C. EDV1-04C-Einführung 1

Übungen zum Bioinformatik-Tutorium. Blatt 3

Anleitung: Verbindung mit der Datenbank

Programmieren in Java

Programmierpraktikum

Strings. 3 Stringvergleiche Realisieren Sie bitte folgendes Programm: AnPr

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Einführung Java Programmieren in Java Arrays Schleifen Fehler. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann

Reguläre Ausdrücke. Karin Haenelt

MVC Ein wichtiges Konzept der Software-Architektur

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Prüfungsangebot. Fachbereich Sprach- und Literaturwissenschaften Bachelor Linguistik/Language Sciences. Wintersemester 2018/2019

5. Übung - Kanalkodierung/Programmierung

Gliederung. Algorithmen und Datenstrukturen I. Listen in Haskell: Listen in Haskell: Listen in Haskell. Datentyp Liste Strings Listenkomprehension

Funktionen nur wenn dann

Kapitel 1: Informationsverarbeitung durch Programme

Bedingte Anweisungen

Roboterprogrammierung

Einführung in die Computerlinguistik

Wie Sie bei Buchung eines Bahntickets einfach und schnell mehr als 50% sparen können auch ohne BahnCard

Wirtschaftsinformatik I (Bachelor) SS 07 Prof. Gomber. Python

Software Entwicklung 1

Grundlagen der Programmierung

10 Minuten Doku. Aktivität anlegen: Test in Moodle

Angewandte Mathematik und Programmierung

Erste Java-Programme (Scopes und Rekursion)

Ein- und Ausgabe (I/O)

CSV mit reinem SQL & der Magie von JSON_TABLE einlesen

Mobil in Dahlem. Unterwegs mit Bus & Bahn. Euskirchen. Blankenheim. Dahlem. Schmidtheim DB. Berk. Frauenkron. Baasem. Kronenburg Trier DB H

MQTT Dokumentation VERBINDEN VON ENDGERÄTEN ÜBER DAS MQTT-PROTOKOLL VERSION 1.1.0

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Transkript:

Tools für Computerlinguisten Dialogsysteme Theresa Schmidt

Ein paar Beispiele 19.01.2018 Dialogsysteme 2

Anwendung Ausführend z.b. Buchungssysteme, Steuerung von Geräten, fahrender Aufzug Beratung / Auskunft z. B. Fahrpläne Interaktives Lernen z.b. Sprachen, Fluglotsentraining, Museen Unterhaltung z.b. alte Menschen, Spielzeug, (klinische) Psychologie 19.01.2018 Dialogsysteme 3

Warum? Attraktiv: Sprache ist natürlich(st)es Kommunikationsmittel des Menschen. Bequem & intuitiv: Man muss nichts tun oder denken. Persönlich: Es können Gegenfragen gestellt werden. Hilfreich: bei situativer oder dauerhafter Behinderung. 19.01.2018 Dialogsysteme 4

Aufbau Benutzer Input: Sprachsignal Output: Sprachsignal Spracherkennung Interpretation Generierung Dialogmanagement 19.01.2018 Dialogsysteme 5

Automatic Speech Recognition (ASR) Oszillogramm (oben), Spektrogramm (unten) Merkmalsmuster 19.01.2018 Dialogsysteme 6

Spracherkennung Gesucht: die wahrscheinlichste Wortfolge W für die Beobachtungen O -> Aussprache Orthographie Mit Bayes: -> abhängig von akustischem und Sprachmodell 19.01.2018 Dialogsysteme 7

Diskursinterpretation 19.01.2018 Dialogsysteme 8

Dialogmanagement Das System muss sich merken, was bereits gesagt wurde. Der Nutzer soll möglichst frei sprechen können. 19.01.2018 Dialogsysteme 9

Dialogmanagement Das System muss sich merken, was bereits gesagt wurde. Der Nutzer soll möglichst frei sprechen können. 1.) B: Ich möchte am Dienstag ab 14 Uhr mit dem ICE von München Hauptbahnhof nach Frankfurt am Main Hauptbahnhof fahren. 2.) B: Ich möchte am Dienstag nach Frankfurt fahren. S: Und von wo aus fahren Sie? B: Von München Hauptbahnhof. S: Wann genau möchten Sie nach Frankfurt (Main) Hbf fahren? B: Ich brauche einen ICE, der nach 14 Uhr abfährt. S: Es gibt eine Verbindung mit dem ICE um 14:05 Uhr und eine um 14:35 Uhr. B: Die um 14:35, bitte. S: Sie möchten die Verbindung ICE 126 von München Hbf nach Frankfurt (Main) Hbf am Dienstag, 23. Januar, um 14:35 Uhr nehmen, richtig? Soll ich ein Ticket buchen? 19.01.2018 Dialogsysteme 10

Grounding Prinzip der Gegenseitigkeit: common ground / shared listening (das, was von beiden Parteien gleich verstanden wird ) Grounding (Rückemeldungen & Nachfragen) -> explizit oder implizit Backchanneling (kurze Äußerung, um Verständnis der vorhergehenden Äußerung anzuzeigen ) 19.01.2018 Dialogsysteme 11

Frames und Grounding B: Ich möchte am Dienstag mit dem Zug nach Frankfurt fahren. Datum, Aufgabe, Ziel S: Und von wo aus fahren Sie? Backchanneling B: Von München Hauptbahnhof. Start S: Wann genau möchten Sie nach Frankfurt (Main) Hbf fahren? indirektes Grounding B: Ich brauche einen ICE, der nach 14 Uhr abfährt. S: Es gibt eine Verbindung mit dem ICE um indirektes Grounding 14:05 Uhr und eine um 14:35 Uhr. Welche bevorzugen Sie? B: Die um 14:35, bitte. S: Sie möchten die Verbindung ICE 126 von München Hbf nach Frankfurt (Main) Hbf am Dienstag, 23. Januar, um 14:35 Uhr nehmen, richtig? Soll ich ein Ticket buchen? direktes Grounding B: Ja bitte. Frame: Zug Start: München Hauptbahnhof Ziel: Frankfurt (Main) Hbf (nach Frankfurt -> wichtigstes Frankfurt: Frankfurt am Main -> Bahnhof nicht näher spezifiziert: Hauptbahnhof Datum: 23.01.2018 (am Dienstag -> der nächste Dienstag im Kalender -> aktuelles Datum: 19.01.2018) Uhrzeit: 14:35 T>14 Uhr (nach 14 Uhr) -> Datenbankabfrage -> Rückfrage Verkehrsmittel: ICE Buchung: true -> Buchung starten, sobald alle Slots gefüllt sind -> Agenda: Buchung ausführen, Rückmeldung geben 19.01.2018 Dialogsysteme 12

Sprecherwechsel (Turn-taking) -> Überschneidungen B: Wie viele Kilometer sind es (Unterberechung) S: Die nächste rechts! B: Wie viele Kilometer sind es noch? S: Die Entfernung zum Ziel beträgt 15 km. B: Wie ist das Wetter in Minden? S: In München scheint heute (Barge-in) B: In Minden! Wie ist das Wetter in Minden? S: Heute ist es in Minden sonnig. 19.01.2018 Dialogsysteme 13

Sprecherwechsel (Turn-taking) -> Pausen (end of turn detection) B: Füge zur Einkaufsliste Brot, Milch (Pause) (Cut-in) S: Ich habe die Einkaufsliste ergänzt. B: und Eier hinzu. B: Spiele das Lied Phantom of the Opera. (Latency) B: Hallo? Spiele Phantom of the Opera. S: Soll ich Phantom of the Opera Titellied abspielen? B: Ja. 19.01.2018 Dialogsysteme 14

Sprecherwechsel (Turn-taking) -> Schnelligkeit Sprecherwechsel im Mensch-Mensch-Dialog: ab 200ms Warum? Menschen hören und sprechen inkrementell. Inkrementelle Sprachverarbeitung: -> Natürlichkeit des Dialogs wahren und möglichst keine Pausen entstehen lassen -> guter Umgang mit Teilsätzen erforderlich 19.01.2018 Dialogsysteme 15

Verarbeitungszeit verdecken B: Ich möchte am Dienstag nach Frankfurt fahren. S: Und von wo aus fahren Sie? B: Von München Hauptbahnhof. S: Wann genau möchten Sie nach Frankfurt (Main) Hbf fahren? B: Ich brauche einen ICE, der nach 14 Uhr abfährt. S: Es gibt eine Verbindung mit dem ICE um 14:05 Uhr und eine um 14:35 Uhr. B: Die um 14:35, bitte. S: Sie möchten die Verbindung ICE 126 von München Hbf nach Frankfurt (Main) Hbf am Dienstag, 23. Januar, um 14:35 Uhr nehmen, richtig? Soll ich ein Ticket buchen? 19.01.2018 Dialogsysteme 16

DialogOS starten Im Speicherordner Auf Windowsrechnern zunächst: chcp65001, um auf UTF-8 umzuschalten Dann mit: java -jar dialogos-all.jar 19.01.2018 Dialogsysteme 17

Spracheingabe Direkte Grammatik 19.01.2018 Dialogsysteme 18

Muster Alternativen () Gruppierung [] Option _ Platzhalter :: und [] Listen Regexp. Beliebiges Zeichen + Wiederholung (mindestens einmal) * Beliebige Wiederholung /regexp/ = (Variable) 19.01.2018 Dialogsysteme 19

Aufgabe 1 Baut einen einfachen Automaten, der ungefähr so aussieht. Was kann PocketSphinx? 19.01.2018 Dialogsysteme 20

Grammatik Eigene Grammatik Graph > Grammatiken > Neu Nichtterminalsymbol 19.01.2018 Dialogsysteme 21

Spracheingabe Eigene Grammatik Verwendet man vordefinierte Grammatiken, müssen auch einzelne Wörter im Muster in gesetzt werden. 19.01.2018 Dialogsysteme 22

Tags Tags ({$ = $xy}) berechnen einen Wert, der anstelle der erkannten Wortfolge zurückgegeben wird -> eingeschlossen durch geschweifte Klammern -> aktueller Wert: $ 19.01.2018 Dialogsysteme 23

Tags Im Erkennungsmuster des Spracherkennerknotens kann der Wert des Tags direkt verwendet oder in eine Variable (die man vorher anlegen muss) gespeichert werden. 19.01.2018 Dialogsysteme 24

Tags weitere Beispiele Relevanten Teil einer komplexen Äußerung herausfiltern Wörter zählen 19.01.2018 Dialogsysteme 25

Spracheingabe - Grammatiken Prüft, ob eine Eingabe zulässig ist Liefert einen Wert (erkannte Wortfolge oder Wert eines Tags) 19.01.2018 Dialogsysteme 26

Graph > Variablen 19.01.2018 Dialogsysteme 27

Variablen testen 19.01.2018 Dialogsysteme 28

Externe Geräte Glühbirne bauen (in der Kommandozeile): java jar demo-dialogos-client-all.jar Client anlegen: Dialog > Geräte > Neu als Connector CLT Connector (Fixed Server), als Server Name localhost und als Port 8888 In einem Ausgabeknoten on oder off als Wert angeben 19.01.2018 Dialogsysteme 29

Aufgabe 2 Tobt euch aus! 1. Verwendet Variablen (z. B. Punktestand eines Quizes) 2. Verwendet Rückfragen 3. Benutzt MaryXML, um die Sprachausgabe zu verbessern. 4. Baut etwas mit einem Lichtschalter. 5. Setzt Frames ein. 6. Verwendet Backchanneling und Grounding. 19.01.2018 Dialogsysteme 30

Ausdrücke - Operatoren - für Zahlen und! für Bools + für Zahlen und Strings -, *, /, % für Zahlen <, >, <=, >= macht bool aus int oder real ==,!= prüft Gleichheit beliebiger Typen &&, logisches und und oder (für bools) a? x : y Bedingung => a muss bool sein 19.01.2018 Dialogsysteme 31

Zum Nachlesen CLT Sprachtechnologie GmbH : DialogOS 1.1 Handbuch (http://www.coli.uni-saarland.de/courses/pd/dialogos/handbuch.pdf) Smith, Ronnie W. ; Hipp, D. Richard (1994): Spoken Natural Language Dialog Systems. A Practical Approach Nass, Clifford; Gong, Li: Ten Principles for Designing Human-Computer Dialog Systems in Dahl, Deborah (Hrsg.) (2004): Practical Spoken Dialog Systems http://www.debacher.de/wiki/dialogos Jurafsky, Daniel; Martin, James H.(2006): Speech and Language Processing: An introduction to natural language processing, computational linguistics, and speech recognition. https://dialogossose17.github.io/tutorials.html Demberg, Vera (2016/17): Vorlesung. Einführung in die Computerlinguistik. Foliensätze 7 und 8 Levinson, Steven C. ; Torreira, Francisco (2015): Timing in turn-taking and its implications for processing models of language https://www.ncbi.nlm.nih.gov/pmc/articles/pmc4464110/ Costello, Lou; Abbot, Bud: Who s on First https://www.youtube.com/watch?v=ktcrraxv-fg&t=328s Ausschnitt aus Star Trek, Hello Computer https://www.youtube.com/watch?v=hshy6xzwvge 19.01.2018 Dialogsysteme 32