Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "DynOntoNLG (Dynamic Ontology & Natural Language Generator) Abschlußvortrag 12.03.2007 Universität Heidelberg Computerlinguistisches Seminar Studienprojekt."—  Präsentation transkript:

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

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

3 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

4 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

5 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

6 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

7 DynAMITE Versuchsaufbau

8 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

9 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

10 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

11 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 <-

12 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,…

13 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)

14 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

15 Beispiel: XML-AusgabedateiXML-Ausgabedatei

16 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;

17 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

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

19 Final Final Templates: XML-Ausschnitt

20 Benötigte Klassen CreateDynNLGOutput04 CreateNonValidatingDOMParser01 DynNLGRandomLists01 DynNLGTemplates01 XMLParameters01 RandomDynNLGString01

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

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


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

Ähnliche Präsentationen


Google-Anzeigen