DynOntoNLG (Dynamic Ontology & Natural Language Generator) Abschlußvortrag 12.03.2007 Universität Heidelberg Computerlinguistisches Seminar Studienprojekt.

Slides:



Advertisements
Ähnliche Präsentationen
Support.ebsco.com Lernprogramm zum Erstellen einer lokalen Sammlung.
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Prüfungspläne Bachelor-Thesis
Einführung in die Programmierung Zusammenfassung
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Wenn man hot potatoes startet erhält man folgenden Bildschirm.
Parser generieren Yet Another Compiler – Compiler YACC.
Präsentation Designteam. Die Online Anzeige Aufgaben: Ausgabe einer variablen Liste der Online-User Darstellung der Anzahl der Online-User Angabe seit.
Sendeautomatisierung auf Windowsebene
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
Sortierverfahren Richard Göbel.
Java: Grundlagen der Objektorientierung
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Speicherung von XML- Dokumenten als Large Objects.
XDoclet ETIS SS05.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
Seminar: Architekturbeschreibungssprachen
DynOntoNLG (Dynamic Ontology & Natural Language Generator)
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Informationen finden und beurteilen
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
1 Knowledge Discovery mit Wordnet und Alembic Workbench (Julia Faion) (Markus Reiter)
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 14: Schrittweise.
Formale Sprachen und Automaten
Wir bauen uns eine Webapplikation!
Warum brauche ich ein CMS – Content Management System?
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
CGI (Common Gateway Interface)
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
HORIZONT 1 XINFO ® Das IT - Informationssystem Eclipse Plugin HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Wir sind das Volk Die Arbeit mit Spielfilmen rückt die Inhalte in den Vordergrund, motiviert die Lerner zur Anwendung der ihnen zur Verfügung stehenden.
Unterprogramme in JAVA
Using latent semantic analysis to find different names for the same entity in free text Präsentation und Diskussion des Papers Im Rahmen des PS Web-Information.
Verwendung des Folien- und Titelmasters in PowerPoint
Verwendung des Folien- und Titelmasters in PowerPoint Eine Präsentation von A. Jacobi.
Programmiervorkurs WS 2014/15 Instanzmethoden
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Die Vereinsverwaltung unter Windows 2000 Anhand der folgenden Präsentation werden Sie mit der Verwaltung des Vereins unter Windows 2000 vertraut gemacht.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
TypoScript.
Text Encoding Initiative Universität zu Köln Daten- und Metadatenstandards Seminarleitung: Patrick Sahle Seminarleitung: Patrick Sahle Referentin: Anna.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Objektorientierte (OO) Programmierung
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Einführung in Powerpoint XP Universität Leipzig Herder-Institut Video und Multimedia im Unterricht: DaF Dozent: Hr. Prof. Dr. E. Tschirner.
Comprehensive Information Base (CIB) – ein Prototyp zur semantischen Datenintegration Stefan Arts
© Raphael Volz 2001 Slide 1 Zope Grundlagen Seminar – Praktikum Knowledge Portals Raphael Volz.
Semi-automatische Komposition von Dienstbenutzerschnittstellen auf mehreren Abstraktionsebenen Christian Jäckel Universität des Saarlandes Bachelor.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
Konstruktoren.
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Definition Felder Konstruktor Methoden Beispiel
 Präsentation transkript:

DynOntoNLG (Dynamic Ontology & Natural Language Generator) Abschlußvortrag Universität Heidelberg Computerlinguistisches Seminar Studienprojekt Referent: Dorothee Reinhard Dozent: Dr. Markus Demleitner

Inhalte der Präsentation Abstract Ziele des Projekts Projekteinordnung Umgesetzte Verbesserungen Programmaufbau Simulation Zusammenfassung und Ausblicke

Abstract Ausgabe von Filminformationen Dialogmodul Erhält vorverarbeitete Benutzereingaben in XML-Format Wählt Zufallsdialog aus Gibt Ausgabe an Dialogmanager zurück Dialoge anhand der Konzepte einer Filminformationsontologie

Ziele des Projekts 1 Abwechslungsreiche Dialoge Wiederverwendbare Struktur Anpassung an Dialogmanager von DynAMITE Kontextunabhängigkeit Erweiterbare und Veränderbare Form Möglichst natürlichsprachige Dialoge

Ziele des Projekts 2 Höhere Programmqualität gewährleisten -> Vorurteile des Benutzers beilegen -> Interessensfaktor steigern Anpassung an Benutzerprofil Einarbeitung ins DynAMITE Projekt Entwicklung einer Filminformations- Ontologie Erweiterter und vereinfachter Datenzugriff

Projekteinordnung Teil des DynAMITE Projekts NLG-Modul zum Dialogmanager Verbesserung der Dialoge Ersatz des vorhandenen Systems Verbesserung der Mensch-Computer- Interaktion (MCI) -> Benutzerfreundlichkeit Filminfo-Ontologie zusätzlich zu bereits vorhandener Datenbank

DynAMITE Versuchsaufbau

Umgesetzte Verbesserungen Einfügen von Referenzen -> ja Profi-Dialoge angepaßt Sessions simulieren -> ja Mehrere Ausgaben gleichzeitig Wiederholungen vermeiden -> etwas Durch Referenzen Sätze vereinfacht und verkürzt Schönere graphische Darstellung -> nein -> nicht nötig, da es ja sowieso im Hintergrund arbeitet und für den Benutzer unsichtbar ist

Referenzen 1 Zu Beginn des Programms werden Referenzobjekte simuliert Neues Referenzobjekt eingefügt -> Referenzobjekt ersetzt und neues Referenzpronomen erstellt Filmtitel -> er -> Referenzpronomen Referenz zu Schauspieler und Regisseur wird aus Ausgabe-XML-file ausgelesen Numerus, Genus

Referenzen 2 Referenzen am Satzanfang und im Satz Template -> Referenzpronomen wird an Text angepaßt -> Kasus, Numerus, Genus Referenzplatzhalter z.B.: %refMovie1SgGenF -> Seine; Ihre Referenzpronomen automatisch anhand von Synonym-Listen Referenzobjekte anhand der Ontologiekonzepte : Movie1, Genre, Actor, Director, Description, Length, Still

DynAMITE System Skizze FDB (Filmdatenbank) DM (Dialogmanager) Ontologie Grundontologie Parser NLG ( Natural Language Generator) LBS (Location Based System) Class Movie1, Still, … Templates XML-Output Input Regeln: Input -> XML-Output Anfrage / Content -> FDB-KonzepteLBS-Konzepte <-

NLGTool 1 Ausgabe von Dialogsätzen Programmiersprache: JAVA Hintergrund: Dynamische Ontologie Basiert auf Grundontologie -> SmartSUMO Domänenbezogene Konzepte werden angefügt Konzepte + Strategien der Filminfo-Software Klassen: Movie1, Still, Actor, Director, Genre Properties: has-title, has-actor, has-genre,…

NLGTool 2 Benutzereingabe -> Parser -> DM NLGTool: XML-Datei von DM + Templates mit Platzhaltern => Dialogsatz als Output Dialogmanager -> XML-Datei (anhand von I/O-Regeln, Filmdatenbank, dynamische Ontologie)

XML-Ausgabedatei Dialogakte: message-inform, message- accept, message-reject, etc. Status: [status: warning], [status: busy], [status: idle], [status: error], [status: ok], [status: failed], [status: offer] Parameter: Profi, Novice - Neutral, Formal, Informal Ontologie: Class, Property, Content

Beispiel: XML-AusgabedateiXML-Ausgabedatei

Beispiele: Randomlisten Nomen + Singular: %randNSg01 = Impression / Aufnahme / Ansicht / Abbildung / Momentaufnahme / Grafik; %randNSg03 = Galerie / Fotogalerie / Standbildergalerie / Snapshotgalerie / Schnappschußgalerie; %randNSg04 = Namen des Films / Titel des Films / Filmnamen / Filmtitel / Film / Titel / Namen / Titel des Mediums / Medientitel / Namen des Mediums / Mediennamen / Namen des Streifens / Titel des Streifens / Namen des Filmstreifens / Titel des Filmstreifens / Namen des Kinofilms / Namen des Spielfilms / Titel des Kinofilms / Titel des Spielfilms / Namen des Filmwerks / Titel des Filmwerks / Namen des Werks / Titel des Werks; %randNSg06 = Bild / Foto / Ausschnitt / Filmausschnitt / Standbild / Schnappschuß / Snapshot; %randNSg07 = Bildes / Fotos / Ausschnitts / Filmausschnitts / Standbildes / Schnappschusses / Snapshots; %randNSg09 = Film / Titel / Filmtitel / Streifen / Filmstreifen / Kinofilm / Spielfilm / Medientitel; %randNSg11 = Name des Films / Titel des Films / Filmname / Filmtitel / Film / Titel / Name / Titel des Mediums / Medientitel / Name des Mediums / Medienname / Name des Streifens / Titel des Streifens / Name des Filmstreifens / Titel des Filmstreifens / Name des Kinofilms / Name des Spielfilms / Titel des Kinofilms / Titel des Spielfilms / Name des Filmwerks / Titel des Filmwerks / Name des Werks / Titel des Werks;

Templates: Finaler Ansatz Templates angereichert mit den Konzepten aus der Ontologie Klassen -> Oberklasse, zweite Klasse (None) Movie1, Still, Actor, Director, Genre Properties -> value, class, number, gender Value: has-title, has-genre, has-length, … Class: Movie1, Still, Genre, Actor,... Number: Sg, PL Gender: M, F, neutral

Beispiele: Finaler Ansatz has-title: Anfänger %randMPL02 %randNPL05 wurden als %randNSg25 zurückgeliefert:.

Final Final Templates: XML-Ausschnitt

Benötigte Klassen CreateDynNLGOutput04 CreateNonValidatingDOMParser01 DynNLGRandomLists01 DynNLGTemplates01 XMLParameters01 RandomDynNLGString01

Klassenabhängigkeit CreateDynNLGOutput04 - String getRandomTemplate(String[] args) - String getSpecificTemplate(String[] args, int tempNr) XMLParameters01 - createParameterList(String s, List list) - List createSearchStatement() DynNLGTemplates01 - String insertRandomStrings(String[] args, String template) - selectRandomString(String[] args, String listname) CreateNonValidatingDOMParser01 - Document getDocument() RandomDynNLGString01 - String getRandomString(List list) DynNLGRandomLists01 - List createRandomList(String s, List list) Random

CreateDynNLGOutput04 Hauptklasse des DynamiteNLGTools - ruft alle anderen Klassen auf Bekommt auf Kommandozeile zuerst das xml-file mit den gewünschten Parametern und den auszugebenden Inhalten aus der Ontologie übergeben (z.B.: "TestFileForNLGTemplates.xml"); An zweiter Stelle steht das xml-file mit allen zur Verfügung stehenden Parametern und Templates der Domäne (z.B.: "FilmDatabaseTemplates.xml") Die gewünschten Parameter werden dann im Template- xml-file gesucht und per Zufall ein passendes Template ausgesucht Danach werden noch die Platzhalter durch Wörter aus den Synonymlisten ersetzt und der gesuchte Inhalt aus der Ontologie als Ergebnis in das Template eingesetzt Die so entstandene Sprachausgabe wird auf dem Bildschirm ausgegeben und als String an den Dialogmanager zurückgeliefert

CreateNonValidatingDOMParser01 Erstellt einen nicht validierenden DOM-Parser mit dem ein xml-file eingelesen werden kann hat zwei Konstruktoren: "CreateNonValidatingDOMParser01(String[] args)" -> liest das Dokument an Position 1 ein "CreateNonValidatingDOMParser01(String[] args, int filepos)" -> kann eine bestimmte Position übergeben bekommen ("filepos"), von der das Dokument eingelesen werden soll

DynNLGRandomLists Erstellt Synonymlisten mit Wörtern verschiedener Wortarten Synonyme befinden sich in Strings und werden mit Hilfe der Methode "createRandomList(String s, List list)" in Listen umgeformt Jede Liste bekommt ihren eigenen Namencode, um von einer anderen Methode aufgerufen werden zu können Dieser Namencode wird mit "%rand" zu einem Platzhalter in den Templates zusammengesetzt, z.B.: "%randNSg05" Listen können beliebig durch anfügen von Wörtern erweitert werden Auch neue Listen können erstellt werden

DynNLGTemplates01 Das zufällig ermittelte Template mit Platzhaltern wird durch die Funktion "insertRandomStrings" in seine Einzelteile zerlegt Danach werden die Namen der Random-Platzhalter in der Methode "selectRandomString(String[] args, String listname)" ermittelt und die KlasseRandomDynNLGString01" aufgerufen, die dann per Zufall einen String aus der entsprechenden Synonym-Liste auswählt und zurückliefert Die so ermittelten Random-Strings werden anstelle des Platzhalters in das Template eingesetzt und als Output zurückgegeben

XMLParameters01 Benötigt mindestens ein xml-file als Kommandozeilenparameter Erstellt einen nicht-validierenden DOM- Parser, der dann das xml-file an Position 1 der Kommandozeilen-paramtereliste einliest Die gewünschten Parameter werden in Variablen geschrieben und als Ergebnisstring zurückgeliefert Der auszugebende Inhalt aus der Ontologie wird ebenfalls in eine Variable geschrieben

RandomDynNLGString01 Erstellt pseudo Zufallszahlen, die benutzt werden, um einen Zufallsstring aus einer Liste von Templatestrings aus einem xml-file zu ermitteln Implementiert die Methode "String getRandomString(List list)", der eine Liste von Strings übergeben werden muß Mit Hilfe dieser Klasse kann der Inhalt der Dialogtemplates zufällig variiert werden, um Dialogsätze zu erstellen, die möglichst nahe an natürliche Sprache herankommen sollen

Simulation Beispiel : Gesucht: Filmtitel, Schauspieler, Genre, Länge, Regisseur, Bilder Vergleich der Ausgaben für Anfänger und Profi 1) Anfängerdialog -> NoviceNeutral 2) Profidialog mit Referenzen -> ProfiNeutral Ergebnis

Vorteile / Nachteile Vorteile: NLG ist domänenunabhängig Abwechslung durch Templateliste Variation durch Synonyme Referenzen verbessern die Natürlichkeit Nachteil: Synonyme passen manchmal nicht so gut zusammen, wenn zu viele Plathalter in einem Satz -> bestimmte Kombinationen klingen unnatürlich

Evaluationsgedanken Manche Begriffe aus den Listen passen mit anderen Begriffen weniger gut – mit anderen besser - zusammen Manche Begriffe passen besser für Profis, manche eher für Anfänger (vgl. Info - Information) -> Listen ändern Regelwerk bei message templates fehlt -> wann Film im Singular und wann im Plural bei Genre, Beschreibung, … zu setzen ist -> wird bei Referenzen gelöst Unterschied zwischen Anfänger und Profi Templates besser betonen und herausstellen -> klare Unterschiede und Grenzen -> besser durch Referenzen gelöst Eventuell mit anderem Kontext testen -> selbe Regeln, nur andere Konzepte -> xml-Ausgabe-Datei, Template- XML-file anpassen z.B.: Navigationsontologie

Zusammenfassung Funktioniert schon ganz schön Wie erwartet: Natürliche Sprache zu simulieren ist sehr schwer Ziele wurden erreicht Wiederverwendbar, kontextunabhängig Erweiterbar, veränderbar Abwechslungsreichere Dialoge Benutzerprofilbasiert Erweiterter Datenzugriff

Ausblicke Eventueller Einbau von anderen Referenzen Test mit anderer Sprache Abwechslung zwischen Pronomenreferenz und Koreferenz durch Synonym Wiederholungen von Wortteilen innerhalb von Sätzen vermeiden Abwechslung bei Spiellänge des Films -> in Minuten und Stunden aufteilen, Minutenangabe, Stundenangabe

Vielen Dank für Eure Aufmerksamkeit !!! Noch Fragen ?