Bachelorarbeit (Informatik) Machine Learning bei Textanalyse: Weiss mein Computer wie alt ich bin?

Größe: px
Ab Seite anzeigen:

Download "Bachelorarbeit (Informatik) Machine Learning bei Textanalyse: Weiss mein Computer wie alt ich bin?"

Transkript

1 . Bachelorarbeit (Informatik) Machine Learning bei Textanalyse: Weiss mein Computer wie alt ich bin? Autorin Fiona Waser Hauptbetreuung Mark Cieliebak Nebenbetreuung Stephan Neuhaus Datum

2

3 Erklärung betreffend das selbständige Verfassen einer Bachelorarbeit an der School of Engineering Mit der Abgabe dieser Bachelorarbeit versichert der/die Studierende, dass er/sie die Arbeit selbständig und ohne fremde Hilfe verfasst hat. (Bei Gruppenarbeiten gelten die Leistungen der übrigen Gruppenmitglieder nicht als fremde Hilfe.) Der/die unterzeichnende Studierende erklärt, dass alle zitierten Quellen (auch Internetseiten) im Text oder Anhang korrekt nachgewiesen sind, d.h. dass die Bachelorarbeit keine Plagiate enthält, also keine Teile, die teilweise oder vollständig aus einem fremden Text oder einer fremden Arbeit unter Vorgabe der eigenen Urheberschaft bzw. ohne Quellenangabe übernommen worden sind. Bei Verfehlungen aller Art treten die Paragraphen 39 und 40 (Unredlichkeit und Verfahren bei Unredlichkeit) der ZHAW Prüfungsordnung sowie die Bestimmungen der Disziplinarmassnahmen der Hochschulordnung in Kraft. Ort, Datum: Unterschriften:... Das Original dieses Formulars ist bei der ZHAW-Version aller abgegebenen Bachelorarbeiten zu Beginn der Dokumentation nach dem Titelblatt mit Original-Unterschriften und -Datum (keine Kopie) einzufügen. Zürcher Fachhochschule

4

5 Zusammenfassung Informationen zum Autor oder Autorin aus reinem Text zu ermitteln ist heutzutage sehr gefragt in Applikationen der Forensik, Security und Marketing. Mithilfe von Informationen zu Geschlecht und Alter kann beispielsweise auf Webseiten dynamisch Inhalt passend zu den Informationen des Benutzers angezeigt werden. Dies ist nur eine der vielen möglichen Anwendungen, welche eine Erkennung solcher Eigenschaften möglich macht. Diese Arbeit beschäftigt sich damit, dieses Problem möglichst treffsicher, mithilfe von Machine-Learning-Ansätzen, zu lösen. Es wurde ein Convolutional Neural Network genutzt, um Alter und Geschlecht zum Autor eines Textes zu erkennen. Diese Texte wurden in Englisch, Spanisch und Niederländisch verfasst. Dazu wurde prototypisch ein System zusammengestellt, welches ein solches Netz aufbaut und damit ein möglichst gutes Modell antrainiert. Anschliessend wurde mithilfe des Modells die Erkennung der Eigenschaften vorgenommen. Die Erkennung wurde auf die Daten ausgeführt, bei welchen die Informationen schon bekannt sind. So konnte mit den korrekten Daten verglichen werden und die Effektivität des Modells geprüft werden. Am Ende wurde versucht, das System auf die bestmögliche Erkennung zu bringen. Leider konnten in diesem Rahmen noch keine Ergebnisse in Höhe des State of the Art erzielt werden. Recherchen haben ergeben, dass vergangene Forschungen dieser Problemstellung mithilfe von stilistischen und inhaltsbasierten Features gearbeitet haben. Diese Features könnten zum Beispiel in das System eingebracht werden. Weiter braucht das System generell noch mehr Experimentierarbeit, um die erwarteten Ergebnisse zu erfüllen. Dennoch hat das System grosses Potenzial, mindestens zu State of the Art Ergebnissen zu kommen, wenn nicht sogar darüber hinaus. 1

6 Abstract Nowadays, to predict information regarding the author by text only, is highly demanded in applications of forensics, security and marketing. Using information about gender and age, one can for example dynamically display content based on the information of a user. This is only one of many use cases, which can be managed by successfully predicting such properties. This thesis tries to solve this problem as accurately as possible using Machine Learning methods. A Convolutional Neural Network is used to predict age and gender for an author of a given text. The texts are available in the languages Englisch, Spanish and Dutch. A prototypical system was implemented, which tries to build a good model. Using the resulting model, the predictions are performed. The prediction is performed on data, where the information to predict is already given. That way, the predicted values can be compared to the real ones to determine the effectiveness of the model. In the end, the goal is to make the predictions as accurate as possible. Unfortunately, at this time, no state-of-the-art result could be achieved. Research has shown, that past methods used stylistic and content based features. Those features could be introduced to the system, for example. The system generally needs more experimental work to yield the expected results. Nevertheless, the system has great potential and can surely be brought to at least state-of-the-art results, if not even better than that. 2

7 Vorwort Ich war schon immer sehr interessiert an Sprachen. Dank meinen Eltern konnte ich schon früh Fremdsprachen lernen und habe es auch immer sehr genossen. Besonders die geschriebene Sprache hat es mir angetan und war für mich schon immer ein ganz wichtiger und besonderer Teil in meinem Leben. Ich liebte es immer, Aufsätze zu schreiben und schreibe ab und zu sogar freiwillig Texte. Eine Leidenschaft von mir ist die Informatik. Ein spezielles Teilgebiet der Informatik hatte es mir schon immer angetan. Es geht um das Teilgebiet, welches sich rund um Daten dreht. Ich habe mich schon immer interessiert, was man aus Daten machen kann und wie man aus rohen Daten Informationen gewinnen kann. Durch die ZHAW bin ich auf das Machine Learning gestossen. Das fand ich sofort sehr interessant und wollte unbedingt eine Bachelorarbeit mit diesem Thema machen. Als ich also von dieser Bachelorarbeit gehört habe, konnte ich keine andere Arbeit wählen, denn ich wusste, dass keine Arbeit so genau meinen Interessen entsprechen würde wie diese. Ich habe einiges an Wissen mit dieser Arbeit erlangt und finde die Thematik immer noch sehr interessant. Durch diese Arbeit habe ich in den Bereichen Linguistik, Informatik und Machine Learning Wissen dazu erlangt. Ich hoffe, der Leser kann auch etwas von dieser Arbeit lernen oder die Ergebnisse vielleicht sogar brauchen. Ich würde mich auf jeden Fall freuen. Ich bedanke mich bei meinen Betreuern Mark Cieliebak und Stephan Neuhaus, die mir mit viel Geduld bis zum Schluss der Arbeit helfend zur Seite standen. Weiter bedanke ich mich bei Fatih Uzdilli und Dominic Egger, welche mir im Hinblick auf den PAN Shared Task geholfen haben. Ich bedanke mich natürlich auch sehr bei Martin Jaggi vom Institut für Machine Learning der ETH Zürich. Dank ihm konnte ich auf den PAN Shared Task hinarbeiten und teure Amazon EC2 GPU-Instanzen für die rechenintensiven Vorgänge nutzen. Natürlich danke ich auch Jan Deriu für seinen Code und seine Erklärungen dazu. Auch danke ich Yannic Kilcher, welcher im Hinblick auf den PAN Shared Task mitgeholfen hat. Zu guter Letzt danke ich noch all meinen Freunden und Familienmitgliedern, welche ich trotz all meinen wiederholten Erzählungen über meine Bachelorarbeit glücklicherweise nicht total verrückt gemacht habe. Danke dafür. 3

8 Inhaltsverzeichnis 1. Einleitung Motivation Problemstellung Theoretische Grundlagen State of the Art Machine Learning Arten von Machine Learning Problemen und Methoden Deep Learning und Convolutional Neural Networks Word2vec Vorgehen PAN Shared Task Datensätze / Korpora Bestehende Systeme Entwickeltes System Verbesserung des Systems Verwendete Software und Komponenten Ergebnisse Ausblick Verzeichnisse 42 A. Anhang I A.1. Projektmanagement I A.2. Datenträger I 4

9 1. Einleitung 1.1. Motivation Für Applikationen der Forensik, der Security und des Marketings ist es von grossem Vorteil, aus reinem Text möglichst viel zum Autor des Textes zu wissen. Oft fehlen Informationen wie Alter und Geschlecht wenn sie nicht gezielt gesammelt werden. Deshalb beschäftigt sich diese Arbeit mit der Frage, wie man am treffsichersten Alter und Geschlecht zum Autor eines Textes automatisch erkennen kann. Es gibt bereits Forschung in diesem Bereich. Es gibt jedoch noch keine Möglichkeit, dies bei jeder Art von Text mit einer hundertprozentigen Sicherheit festzustellen. Die meisten Lösungen limitieren sich auf Newstexte, Blogs oder Tweets. Es gibt nicht viele Forschungen, die sich auf verschiedene Textarten beziehen oder auf verschiedene Textarten angewendet wurden. Auch sind diese Lösungen meist auf eine gewählte Sprache eingestellt. Passend zu diesem Thema gibt es jedes Jahr den PAN Shared Task [1]. Dies ist ein jährlicher wissenschaftlicher Wettbewerb, welcher sich mit verschiedenen Fragestellungen der Digitalen Textforensik auseinandersetzt. Eine davon ist das Author Profiling [2], welche der hier gestellten Problemstellung entspricht. Dies ist ein weiterer Indikator, dass Bedarf an einer Lösung zu diesem Problem besteht und in dieser Fragestellung noch keine Lösungen gefunden wurden, welche Untersuchungen in diesem Bereich überflüssig machen. Texte generell sind sehr komplex. Es gibt keine klaren Fakten, wie der Schreibstil einer Person gewissen Alters oder Geschlechts aussieht und welche Worte und Formulierungen ohne Zweifel auf ein bestimmtes Geschlecht oder Alter hinweisen. Auch könnten jüngere Personen an einer komplexeren Wortwahl oder Schreibstil gewohnt sein als einige ältere Personen. Im gleichen Sinn kann eine Frau männlicher schreiben als andere Frauen. Dies sind nur Beispiele, welche die Problemstellung komplexer machen. Ausserdem ist die Art von Text entscheidend. In gewisser Literatur wird anders geschrieben als in Tweets oder Blogs, wo die Autoren auch Slang oder Emoticons nutzen. Alle diese Argumente machen klar, dass die vorliegende Bachelorarbeit relevant ist. Es soll auf Machine Learning zurückgegriffen werden, um automatisch Alter und Geschlecht zu erkennen Problemstellung Es soll eine Software entwickelt werden, welche automatisch Alter und Geschlecht des Autors bzw. der Autorin zu einem Text erkennen kann. Erkennung anderer Eigenschaften wie beispielsweise die Demografie oder Ausbildung des Autors sind zwar von grossem Vorteil, aber werden in dieser Arbeit nicht berücksichtigt. Die Erkennung soll in Echtzeit oder nach einer Rechenphase geschehen. Die Erkennung soll automatisiert sein und mit möglichst vielen verschiedenen Arten von Texten funktionieren. Sie soll nach Möglichkeit nicht beschränkt sein auf eine Art von Text. Sie soll ausserdem für die Sprachen Englisch, Spanisch und Niederländisch funktionieren. Um die gewählten Eigenschaften zu erkennen, sollen Methoden des Machine Learning gewählt und ausprobiert werden. Diese Methoden sollen auf ihre Effektivität untersucht werden und Empfehlungen gegeben werden. Diese Erkenntnisse sollen dem Leser Hilfestellung bei der Implementierung einer solchen Software bieten. Die Methoden werden prototypisch mit Code umgesetzt, wobei die Prototypen softwaremässig nicht elaboriert sind. Mithilfe dieser Prototypen werden die Methoden auf ihre Effektivität getestet und Auswertungen gemacht. 5

10 2. Theoretische Grundlagen Das erste Unterkapitel beschäftigt sich mit dem momentanem State of the Art. Dabei wird der aktuelle Fortschritt der Forschung in diesem Bereich erklärt. Das zweite Kapitel gibt eine Einführung in das Machine Learning. Zuerst werden die verschiedenen Arten von Machine Learning Probleme erklärt und ihre Methoden. Dann wird genauer auf die in dieser Arbeit genutzten Kategorie des Machine Learning eingegangen, das Deep Learning. Anschliessend wird näher auf die in dieser Arbeit genutzten Methode, das Convolutional Neural Network, eingegangen und diese veranschaulicht State of the Art Es wurde Recherche betrieben, um herauszufinden, welche Methoden heutzutage für diese Problemstellung eingesetzt werden und wie erfolgreich diese sind. Pennebaker, Mehl und Niederhoffer [3] haben bereits 2003 einen Artikel im Annual Review Of Psychology veröffentlicht, in welchem sie ihre Ergebnisse zu ihrer Forschung bezüglich der psychologischen Seite des Sprachgebrauchs beschreiben. Sie fanden heraus, dass Menschen mit zunehmendem Alter mehr Wörter mit positiven Emotionen und weniger Wörter mit negativen Emotionen nutzen. Auch nutzen sie weniger 1. Person Singular Referenzen, reden mehr im Futur und nutzen weniger Verben in der Vergangenheitsform. Das Alter korreliert ausserdem mit einer Erhöhung der kognitiven Komplexität im Sprachgebrauch, beispielsweise längere Wörter und mehr Wörter, die Einsicht zeigen lassen. Weiter wurde herausgefunden, dass Männer viel mehr Schimpfwörter, längere Wörter und mehr Wörter nutzen, welche Ärger ausdrücken, als Frauen. Frauen nutzen dafür mehr Füllwörter, mehr Diskrepanz-Wörter (sollte, könnte, würde) und mehr Referenzen zu positiven Emotionen. Ausserdem nutzen Frauen mehr die 1. Person Singular. Argamon, Koppel, Fine und Shimoni [4] haben Geschlechterkennung betrieben indem sie Funktionsworte mit Part-of-Speech (POS) kombinierten. POS ist eine Kategorie von Wörtern, welche ähnliche grammatikalische Eigenschaften haben. Wörter, die zum selben POS zugeordnet werden, benehmen sich in ihrer Syntax und Morphologie (Teilgebiet der Grammatik, welche sich mit der inneren Struktur von Wörtern befasst und sich der Erforschung von bedeutungs- und funktionstragenden Elementen einer Sprache widmet) ähnlich sind. Übliche POS Klassen im Englischen sind: Noun, Verb, Adjective, Adverb, Pronoun, Preposition, Conjunction, Interjection und manchmal auch noch Numeral, Article und Determiner. Für eine Erklärung von POS kann [5] konsultiert werden. Sie analysierten Formal geschriebene Texte vom British National Corpus und erreichten ca. 80% an Accuracy in ihrer Klassifikation. Koppel, Argamon und Shimoni [6] haben weiter mithilfe einer Kombination von lexikalischen und syntaktischen Features versucht Geschlechterkennung zu betrieben. Sie erreichten eine Accuracy von ca. 80%. Schler, Koppel, Argamon und Pennebaker [7] haben den Effekt von Alter und Geschlecht auf den Schreibstil in Blogs untersucht. Sie holten über Blogtexte und extrahierten eine Reihe an stilistischen Features wie Wörter, die nicht in Wörterbüchern stehen, POS, Funktionswörter und Hyperlinks. Diese haben sie kombiniert mit Inhalts-Features wie zum Beispiel Wort-Unigramme mit dem höchsten Informationsgewinn. Sie erhielten eine Accuracy von ca. 80% für Geschlechts- und ca. 75% für Alterserkennung. Nguyen, Gravel, Trieschnigg und Meder [8] haben den Sprachgebrauch für Alter bei niederländischen Tweets untersucht. Dort sind die Texte sehr kurz, durchschnittlich weniger als 10 Begriffe. Sie haben das Alter als stetige Zahl gewählt und verwendeten Logistic Regression. Sie haben zudem den Effekt von Geschlecht auf die Alterserkennung untersucht und haben sie aufeinander abhängig angesehen. 6

11 KAPITEL 2. THEORETISCHE GRUNDLAGEN 2.2. Machine Learning Das Author Profiling des PAN Shared Task 2015 [9] hatte die Aufgabe, Alter, Geschlecht und Persönlichkeitsmerkmale automatisch zu erkennen. Dies für die Sprachen: Englisch, Spanisch, Italienisch und Niederländisch. Die Teilnehmer nutzen Kombinationen von Stil- und Inhalt-basierten Features. Es wurden N-Gramme genutzt genauer Zeichen N-Gramme, Wort N-Gramme, TF-IDF N-Gramme und POS N-Gramme. Es wurde auch Interpunktion, Emoticons, Wortlänge, Satzlänge, Anzahl an Zeichen, Wortfülle, Gross- und Kleinschreibung, Fragezeichen und Fragesätze als Features berücksichtigt. Da dieser Task Twitter Texte zu erkennen hatte wurden Links, Hashtags und Nennungen berücksichtigt. Bei den Inhalts-basierten Features wurde unter Anderem Latent Semantic Analysis (LDA) für Themen genutzt. Weren, Kauer, Mizusaki, Moreira, de Oliveira und Wives [10] haben verschiedene Features getestet um zu messen, welche am besten geeignet sind für Klassifizierung von Alter und Geschlecht. Es wurden verschiedene Features von Information Retrieval (IR) bis Sentimentanalyse getestet. Die Experimente wurden mithilfe eines Korpus mit über 236 Tausend Blogs getestet. Bei ihnen brachten die Information Retrieval Features wie Okapi BM25 die besten Ergebnisse. Nguyen, Smith und Rosé [11] Alterserkennung mithilfe von Linearer Regression durchgeführt. Sie haben ihr System auf drei verschiedenen Genres von Daten getestet, und zwar Blogs, Telefonkonversationen und Online-Forum-Posts. Sie haben sowohl stilistische, wie POS, als auch inhaltbasierte Features genutzt. Sie haben Korrelationen von bis zu 0.74 und einen Mean Absolute Error von zwischen 4.1 und 6.8 Jahren erhalten. Santosh, Joshi, Gupta und Varma [12] haben Alter- und Geschlechtserkennung mithilfe von Wikipedia Konzepten und Informationen zu Kategorien untersucht. Sie haben KNN sowie Support Vector Machine (SVM) als Klassifizierer genutzt. Zusammen mit Word N-Grammen und POS N-Grammen haben sie beim PAN Author Profiling Task von Accuracy für Geschlecht und Accuracy für Alter erreicht. Zusammenfassend werden Alters- und Geschlechtserkennung meist mithilfe von Supervised Learning angegangen. Dabei wird Geschlecht mithilfe von Klassifizierung erkannt und Alter entweder mit fest definierten Altersklassen als Klassifizierungsaufgabe oder mithilfe Regression als stetiger Wert. Es werden sowohl stilistische als auch inhaltsbasierte Feature verwendet. Besonders oft wird POS genutzt sowie Funktionswörter. Auch werden meist verschiedene Frequenzen (zum Beispiel Anzahl häufig genutzter Wörter) oder Längen von Wörtern und Sätzen berücksichtigt sowie die Interpunktion. Ein gutes Werkzeug scheint auch das N-Gramm zu sein. Bei Medien, wie Blogs und Tweets, bei welchen es Links oder Hashtags gibt, gehen diese auch in den Prozess der Erkennung ein. Auch wurden Methoden verwendet, welche Psycholinguistische Features wie Polarität oder Emotionen einsetzen. Zudem wurden Information Retrieval (IR) Werkzeuge eingesetzt wie die Kosinus-Ähnlichkeit, das Okapi BM25 Dokumentenmodell und auch Latent Semantic Analysis (LSA) Machine Learning Das Machine Learning ist momentan wieder gewaltig im Trend. Dies ist grösserer verfügbarer Datenmengen, billigerer und bessere Rechenleistung sowie kostengünstigerer Speicherkosten zu verdanken. Viele Probleme werden bereits mit Machine Learning gelöst oder gerade untersucht. Bekannte Beispiele sind die Online Empfehlungen bei Amazon und Netflix sowie das selbstfahrende Google-Car. Im Machine Learning geht es darum, ein System mit Daten zu füttern. Diese Daten werden zu einem Modell trainiert ohne menschliche Unterstützung zu benötigen. Aufgrund dieses Modells kann das System Entscheidungen treffen, welche Antwort auf die eingegebenen Daten zutrifft. Die Datenmengen, mit welchen trainiert werden, sind meist sehr gross. Es gilt: je mehr Daten desto besser Arten von Machine Learning Problemen und Methoden Dieses Kapitel stützt sich auf [13], um die Arten von Machine Leraning und die angewandten Methoden zu erklären. 7

12 2.2. Machine Learning KAPITEL 2. THEORETISCHE GRUNDLAGEN Machine Learning wird üblicherweise in vier Kategorien unterteilt. Es wird unterschieden zwischen Supervised Learning, Unsupervised Learning, Semi-supervised Learning und Reinforcement Learning. Supervised Learning Algorithmen werden mithilfe von gelabelten Daten, also wo Input und Output gegeben sind, trainiert. Der Algorithmus erhält einen Satz von Inputdaten zusammen mit den korrekten Outputdaten. Der Algorithmus lernt indem er bei seinen Outputs Fehler findet und so sein eigenes Modell anpasst, sodass es besser zu den gegebenen Trainingsdaten passt. Supervised learning wird oft bei Applikationen genutzt, wo historische Daten wahrscheinlich zukünftige Daten vorhersagen können. Beispiele dafür sind die Erkennung auf betrügerische Kreditkartentransaktionen oder welche Kunden bei ihrer Versicherung in Zukunft wahrscheinlich Ansprüche erheben werden. Abbildung 2.1 zeigt den Workflow im Supervised Learning. Abbildung 2.1.: Schema welches die Funktionsweise von Supervised Learning zeigt. Eine der Methoden von Supervised Learning ist die Klassifikation. Inputdaten werden hier in zwei oder mehr Klassen unterteilt. Dies sind die Labels. Dafür braucht es ein Modell, welches eins oder mehrere Labels zuweisen kann. Spam-Filterung ist ein Beispiel für Klassifikation. Dabei sind die Inputs s oder andere Nachrichten und der Output Spam oder Nicht Spam. Eine weitere Methode ist die Regression. Im Gegensatz zu der Klassifikation werden hier keine diskreten Klassen zurückgegeben, sondern stetige Werte. Supervised Learning nutzt Patterns um Labels von ungelabelten Daten vorherzusagen. Unsupervised Learning nutzt keine Daten, bei welchen die richtigen Outputs bereits vorgegeben sind. Der Algorithmus analysiert die Daten, die er bekommt und findet auf eigene Faust eine sinnvolle Struktur in ihnen. Unsupervised Learning funktioniert beispielsweise gut mit Transaktionsdaten. Es können Kunden mit ähnlichen Attributen identifiziert werden, welche dann in Marketingkampagnen ähnlich behandelt werden. Oder es können Attribute gefunden werden, welche Kundengruppen voneinander unterscheiden. Auch werden mithilfe von Unsupervised Learning Methoden Themen in Texten unterschieden, Artikel empfohlen und Datenausreisser identifiziert. Abbildung 2.2 zeigt den Workflow im Unsupervised Learning. 8

13 KAPITEL 2. THEORETISCHE GRUNDLAGEN 2.2. Machine Learning Abbildung 2.2.: Schema welche die Funktionsweise von Unsupervised Learning zeigt. Bekannte Techniken sind K-Means Clustering und Singular Value Decomposition. Semi-supervised Learning wird für die gleichen Anwendungszwecke genutzt wie das Supervised Learning. Es nutzt jedoch gelabelte sowie ungelabelte Daten für das Training. Typischerweise werden eine kleine Menge gelabelte Daten und eine grosse Menge ungelabelte Daten genutzt. Dies ist vor Allem so weil es viele ungelabelte Daten gibt und sie leicht zu haben sind und gelabelte Daten eher schwer zu kriegen und nur in Massen vorhanden sind. Semi-supervised Learning ist nützlich, wenn die Kosten zum Labeln von Daten zu hoch sind, um ein voll gelabeltes Training durchzuführen. Abbildung 2.3 zeigt den Workflow im Semi-Supervised Learning. Abbildung 2.3.: Schema welche die Funktionsweise von Semi-Supervised Learning zeigt. Semi-supervised Learning kann wie Supervised Learning die Methoden Klassifikation und Regression nutzen. Reinforcement Learning wird oft für Robotics, Gaming und Navigation genutzt. Durch Trail und Error erfährt der Algorithmus, welche Aktionen die grösste Belohnung geben. Dieser Typ des Learning hat drei primäre Komponenten: der Agent (der Lerner oder Entscheidungsträger), das Environment (alles mit was der Agent interagiert) und Aktionen (was der Agent machen kann). Das Ziel der Agenten ist es, Aktionen zu wählen, welches die erhaltene Belohnung über einen gegebenen Zeitraum maximiert. Der Agent erreicht sein Ziel schneller wenn er eine gute Strategie verwendet. Das Ziel des Reinforcement Learning ist, die beste Strategie zu erlernen. Abbildung 2.4 zeigt den Workflow im Reinforcement Learning. 9

14 2.2. Machine Learning KAPITEL 2. THEORETISCHE GRUNDLAGEN Abbildung 2.4.: Schema welche die Funktionsweise von Reinforcement Learning zeigt Deep Learning und Convolutional Neural Networks Das Deep Learning ist ein Zweig des Machine Learnings, welches Probleme mithilfe von mehreren Layern zusammen mit komplexen Datenstrukturen löst. Hier gibt es mehrere Möglichkeiten, wie die Daten eingegeben werden können, wie beispielsweise Vektoren oder bei Bildern Intensitätswerte pro Pixel. Manche Repräsentationen der Daten machen den Lernprozess einfacher als Andere. Deep Learning ersetzt selbstgebaute Features mit effizienten Algorithmen für Unsupervised oder Semi-Supervised Feature Learning und hierarchische Feature-Extraktion. Manche der Repräsentationen basieren auf Informationsverarbeitung und Kommunikations-Patterns in einem Nervensystem. Es gibt einige Deep Learning Architekturen wie Neural Networks, Convolutional Neural Networks (CNN), Belief Networks und Recurrent Neural Networks. Diese werden in den Feldern Computer Vision, Automatic Speech Recognition, Natural Language Processing, Audio Recognition und Bioinformatik eingesetzt. In diesen Feldern werden mithilfe des Deep Learnings bereits State of the Art Resultate erzielt. Die übliche Methode, um CNNs zu erklären ist mit einem Image-Classification-Beispiel. Da sich aber diese Arbeit mit Natural Language Processing (NLP) beschäftigt, erklärt dieses Kapitel gestützt auf [14] wie Convolutional Neural Networks für NLP funktioniert. Convolutional Neural Networks werden meist im Zusammenhang mit Image Classification genannt, da besonders diese Disziplin sehr gute Ergebnisse mit CNNs erzielt. Diese Methode kann aber durchaus auch für NLP genutzt werden. Eine Convolution kann man sich als eine Sliding-Window-Funktion angewandt auf eine Matrix vorstellen. Abbildung 2.5 zeigt ein einfaches Beispiel mit einem Schwarz-Weiss-Bild als Input. Das Sliding-Window wird Kernel, Filter oder Feature-Detector genannt. In der Abbildung wird der Filter elementweise mit der Originalmatrix des Bildes multipliziert und aufsummiert. Um die ganze Convolution zu erhalten, wird das für jedes Element der Bild-Matrix gemacht indem der Filter über die ganze Matrix geschoben wird. 10

15 KAPITEL 2. THEORETISCHE GRUNDLAGEN 2.2. Machine Learning Abbildung 2.5.: Eine Convolution mit 3x3 Filter. Die linke Matrix stellt ein Bild dar, wobei 0 für schwarze Pixel und 1 für weisse Pixel stehen. Der gelbe Berech mit den roten Zahlen zeigt den Inhalt des Filters. Die rechte Matrix zeigt das Convolved Feature, also die resultierende Matrix nach Anwendung des Filters. [15] Bei Bildern kann man mithilfe von Durchschnittsrechnung jedes Pixels mit seinen Nachbarpixeln ein Blur-Effekt erzielt werden. Dies zeigt Abbildung 2.6. Abbildung 2.6.: Rechts eine Matrix und links ein Bild, auf welchen ein Durchschnitts-Filter angewandt wurde. Das Bild ist somit verschwommen. [14] Wenn die Differenz zwischen einem Pixel uns seinen Nachbarn berechnet wird, so können Kanten hervorgehoben werden. Dies ist in Abbildung 2.7 ersichtlich. 11

16 2.2. Machine Learning KAPITEL 2. THEORETISCHE GRUNDLAGEN Abbildung 2.7.: Rechts eine Matrix und links ein Bild, auf welchen die Kanten hervorgehoben werden. [14] Convolutional Neural Networsk sind mehrere Layer von Convolutions mit einer nicht linearen Activation- Funktion angewandt auf die Inputs um die Outputs zu generieren. Das resultiert in lokalen Verbindungen, wobei jede Region des Inputs mit einem Neuron im Output verbunden ist. Es werden mehrere Layer genutzt, die alle verschiedene Filter anwenden, typischerweise hunderte oder tausende, um dann die Resultate zu kombinieren. Ein CNN lernst die Werte des Filters automatisch aufgrund der Aufgabe die es bekommt. Als Beispiel lernt bei der Image-Classification das CNN zuerst, Kanten zu erkennen als erster Layer. Anschliessend werden die Kanten genutzt, um einfache Formen zu erkennen als zweiter Layer. Als nächstes werden mithilfe dieser Formen Features wie beispielsweise Gesichtsformen in höheren Layern erkannt. Der letzte Layer ist dann ein Klassifizierer, welche diese resultierenden High-Level-Features nutzt und weiter verarbeitet. Abbildung 2.8 zeigt eine Erkennung bei einem Bild. Abbildung 2.8.: Beispiel einer Formerkennung zu einem Bild mithilfe einer CNN. Oben sind die verschiedenen Schritte beschrieben. Am Ende eine Prognose was in diesem Bereich angezeigt sein könnte. [14] Es gibt zwei Aspekte, auf welche geachtet werden muss. Als Beispiel soll erkennt werden, ob in einem Bild ein Elefant vorhanden ist. Es ist egal, wo der Elefant ist, da nur erkannt werden soll, ob ein Elefant da ist. Daher werden sogenannte Pooling-Layers genutzt, welche Invarianz zu Translaton, Rotation und Scaling liefern. Weiter bieten CNNs den Vorteil, dass jeder Filter lokale Teile von Low-Level-Features in die High-Level-Repräsentation bringt. Es macht auch für Menschen Sinn von Schritt zu Schritt zu gehen. 12

17 KAPITEL 2. THEORETISCHE GRUNDLAGEN 2.2. Machine Learning Das heisst bei Bildern von Pixel zu Kanten, von Kanten zu Formen und von Formen zu komplexeren Objekten. Statt Pixel von Images zu verwenden, werden beim Natural Language Processing Sätze oder Dokumente als Matrizen repräsentiert. Jede Zeile der Matrix ist dabei ein Token, typischerweise in Wort, aber es könnte wahlweise auch nur ein Zeichen sein. Jeder Vektor repräsentiert also ein Wort. Typischerweise werden Word-Embeddings, welche Low-Dimensionale Repräsentationen sind, wie Word2vec oder GloVe verwendet. Es können aber auch einfache Vektoren sein, welche die Wörter in einem Vokabular indexieren. Wir hätten dann zum Beispiel eine 10x100 Inputmatrix für einen Satz, welcher 10 Worte hat und mit 100-Dimensionalen Word-Embeddings repräsentiert wird. Typischerweise werden beim NLP Filter über ganze Zeilen, also Wörter, angewandt. Die Breite des Filters entspricht also auch der Breite der Inputmatrix. Die Höhe des Filters kann variieren, wird aber typischerweise auf 2-5 Wörtern gesetzt. Die Abbildung 2.9 zeigt die Architektur eines CNN für ein Klassifikationsproblem auf Satzebene. 13

18 2.2. Machine Learning KAPITEL 2. THEORETISCHE GRUNDLAGEN Abbildung 2.9.: Architektur eines CNN für Klassifikation auf Satzebene. Hier sieht man drei Filtergrössen: 2, 3 und 4 welche je zwei Filter besitzen. Jeder Filter führt Convolutions auf der Satz-Matrix aus und generiert eine Feature-Map. Anschliessend wird ein 1-Max- Pooling über jede Map ausgeführt, es wird also die grösste Nummer jeder Feature-Map genommen. Für alle 6 Maps wird ein Feature-Vektor generiert und zu einem Vektor konkatiniert. Der letzte Softmax-Layer bekommt den Feature-Vektor als Input und nutzt ihn um die Sätze zu klassifizieren. Hier wird binäre Klassifizierung durchgeführt, deshalb gibt es am Ende zwei Output-Möglichkeiten. [16] CNNs sind auf Hardware-Level implementiert und nutzen die GPU. Daher sind sie schnell. Im Vergleich zu N-Grammen sind CNNs auch in ihrer Repräsentation effizient. Bei grossem Vokabular ist es schnell teuer, mehr als ein 3-Gramm auszurechnen. Nicht einmal Google nutzt grösseres als 5-Gramme. Convolutional Features lernen gute Repräsentationen automatisch ohne das ganze Vokabular darzustellen. Hier macht es Sinn, Filter zu haben, welche grösser sind als 5. Bevor genauer erklärt wird, wie CNNs auf NLP-Aufgaben angewandt werden, wird auf etwas anderes eingegangen. Es gibt nämlich einige Entscheidungen, die getroffen werden müssen, wenn ein CNN implementiert werden soll. 14

19 KAPITEL 2. THEORETISCHE GRUNDLAGEN 2.2. Machine Learning Die erste liegt bei der Entscheidung, ob schmale (engl. narrow) oder breite (engl. wide) Convolutions eingesetzt werden. Hier geht es genauer um die Kanten der Matrizen. Was macht man, wenn ein Element in der Matrix keine Nachbarn hat, um die Convolution zu berechnen? Eine Möglichkeit wäre Zero- Padding. Alle Elemente, die nicht wirklich vorhanden sind, aber in die Berechnung eingehen müssen, werden als 0 angesehen. So kann der Output gleich gross oder grösser als der Input werden. Abbildung 2.10 zeigt, wie das aussieht. Die Formel der Output-Grösse lautet wie folgt: n out = (n in + 2 n padding n filter ) + 1 Somit wird die schmale Convolution so berechnet: (7 5) + 1 = 3 Die breite Convolution wird so berechnet: ( ) + 1 = 11 Abbildung 2.10.: Dargestellt ist ein Filter der Grösse 5 eingesetzt auf ein Input der Grösse 7. Der Input besitzt die Elemente S 1 bis S S, der Output die Elemente C 1 und C 5. Links wird schmale Convolution und rechts breite Convolution genutzt. [17] Eine weitere wichtige Grösse ist die Stride-Size. In allen oben genannten Beispiele war die Stride- Size 1 was beim Anwenden des Filters zu Überlappungen führt. Eine grösse Stride-Size führt zu weniger Anwendungen des Filter sowie einer kleineren Output-Grösse. Abbildung 2.11 demonstriert das Verhalten mit verschiedenen Stride-Sizes. Abbildung 2.11.: Stride-Sizes von 1 (links) und 2 (rechts), angewandt auf einen 1-Dimensionalen Input. [18] In der Literatur sieht man oft eine Stride-Size von 1, jedoch kann eine grössere Stride-Size dazu beitragen, ein Modell zu bilden, welches sich ähnlich benimmt wie ein Recursive Neural Network, es sieht dann also aus wie ein Baum. Ein wichtiger Aspekt von CNNs sind die Pooling-Layers welche typischerweise nach den Convolutional- Layern angewandt werden. Die Pooling-Layer machen Teilstichproben vom Input (engl. subsampling). Der übliche Weg ist eine Maximum-Operation auf das Resultat jedes Filters. Man muss nicht unbedingt über die ganze Matrix Pooling anwenden, man kann auch nur ein Window berücksichtigen. Abbildung 2.12 zeigt so ein Maximum-Pooling. 15

20 2.3. Word2vec KAPITEL 2. THEORETISCHE GRUNDLAGEN Abbildung 2.12.: Maximum-Pooling bei CNNs mithilfe eines 2x2 Filters und einer Stride-Size von 2. [18] Der Vorteil am Pooling ist, dass es eine fixe Grösse für die Output-Matrix vorgibt, welche typischerweise für Klassifikation erforderlich ist. Wenn zum Beispiel Maximum-Pooling auf Filter der Grösse angewendet werden, bekommt man ein Dimensionalen Output zurück, egal wie die Grösser der Filter sind oder die Grösse des Inputs. Das erlaubt die Nutzung von variabler Satzgrösse und Filtergrösse sodasss am Ende der Output, der in den Klassifizierer geschickt wird, immer die gleiche Anzahl an Dimensionen hat. Pooling reduziert ausserdem die Anzahl Output-Dimensionen ohne das wichtige Informationen verloren gehen. Man kann also sagen, dass jeder Filter ein spezifisches Feature erkennt. Wenn Beispielsweise eine Negierung in einem Satz vorkommt, wird die Anwendung des Filters einen grossen Wert in dieser Region zurückgeben und einen kleinen Wert in anderen Regionen. Wenn ein Maximum-Pooling durchgeführt wird, so wird die Information behalten, ob das Feature vorkommt aber die Information verlieren, wo genau es vorgekommen ist. Der Verlust ist Schade aber dies ist beim N-Gramm auch nicht anders. Bei der Bilderkennung bietet Pooling auch den Vorteil, dass trotz Translation und Rotation die zu erkennenden Features immer noch erkannt werden. Dann gibt es noch das Konzept von Channels. Channels können als verschiedene Sichten auf die Inputdaten angesehen werden. Bei der Bilderkennung sind das typischerweise RGB (Rot, Grün, Blau) Channels. Convolutions können über Channels mit gleichen oder verschiedenen Gewichten angewendet werden. In NLP können auch verschiedene Channels genutzt werden. Es können separate Channels für verschiedene Word-Embeddings genutzt werden. Auch denkbar sind verschiedene Channels pro Sprache des gleichen Satzes oder verschiedene Channels für den gleichen Satz in verschiedener Wortwahl. Convolutional Neural Networks werden bei NLP für Klassifikationsaufgaben wie Sentimentanalyse, Spam-Erkennung oder Themen-Kategorisierung genutzt. Durch Convolutions und Pooling wird Information über die lokale Reihenfolge der Wörter verloren sodass POS Tagging etwas schwerer in eine pure CNN-Architektur passt, diese Informationen können jedoch in den Input integriert werden Word2vec Dieses Kapitel erklärt gestützt auf [19], um was es sich bei Word2vec handelt und wie es eingesetzt wird. Word2vec ist ein Neuronales Netz mit zwei Schichten welches mit Text arbeitet. Der Input dieses Netzes ist ein Textkorpus und der Output eine Reihe von Eigenschafts-Vektoren. Das Ziel von Word2vec ist es, Vektoren von ähnlichen Wörtern in gemeinsame Vektorräume zu gruppieren. Es werden mathematisch Ähnlichkeiten erkannt. Es werden numerische Repräsentationen gebildet zu Wort-Features wie 16

21 KAPITEL 2. THEORETISCHE GRUNDLAGEN 2.3. Word2vec beispielsweise der Kontext individueller Worte. Word2vec bildet alle diese Vektoren selbstständig und ohne menschliches Eingreifen. Wenn genug Daten zur Verfügung gestellt werden, welche zur Verwendung und Kontext von Wörtern Hinweise geben, kann Word2vec gute Schätzungen machen zur Bedeutung eines Wortes aufgrund vergangener Vorkommen des Wortes. So kann man beispielsweise herausfinden, wie ein Wort zu einem anderen steht. So könnte das System herausfinden, dass das Wort Mann im gleichen Verhältnis zu Junge steht wie Frau zu Mädchen. Es können auch Dokumente gruppiert und nach Thema klassifiziert werden. Der Output des Netzes ist ein Vokabular mit einem Vektor pro Wort, welches einerseits in einem Deep Learning Netz eingesetzt werden kann. Andererseits können direkt Anfragen an das Netz gestellt werden, um Beziehungen zwischen Wörtern herauszufinden. Die resultierenden Vektoren, welche die Wörter repräsentieren, werden Neuronale Word-Embeddings genannt. Mithilfe des Kosinus können Features gemessen werden. So heisst keine Ähnlichkeit ein 90 -Winkel und vollkommene Ähnlichkeit ein 0 -Winkel. So hat Schweden mit Schweden vollkommene Ähnlichkeit und Schweden mit Norwegen eine Kosinusdistanz, welche höher ist als jedes andere Länder-Wort im Zusammenhang mit Schweden. Abbildung 2.13 zeigt eine Liste, welche die Kosinusdistanz von Wörtern mithilfe eines Länderbeispiels klar macht. Abbildung 2.13.: Liste von Wörtern und ihre Kosinusdistanz zu Sweden. [19] Für das Training des Word2vec Netzes wird CBOW oder Skip-gram genutzt. CBOW nutzt Kontext um ein Wort vorherzusagen. Skip-Gram hingegen nutzt ein Wort, um einen Kontext vorherzusagen. Abbildung 2.14 zeigt ein Schema zur Funktionsweise der beiden Methoden. 17

22 2.3. Word2vec KAPITEL 2. THEORETISCHE GRUNDLAGEN Abbildung 2.14.: Funktionsweise von CBOW und Skip-gram. [19] Ein gut trainierter Satz von Wortvektoren platziert ähnliche Wörter näher zueinander im Vektorraum. Die Worte Eiche, Ulme und Birke würden so näher zusammen stehe als andere Wörter und die Worte Krieg, Zwist und Konflikt in einem anderen Bereich des Vektorraums näher zusammen stehen. Ähnliche Dinge und Ideen stehen also näher nebeneinander. Dies bedeutet, ihre relativen Bedeutungen wurden zu messbaren Distanzen gemacht. Diese Vektoren ermöglichen nützliche Berechnungen zu den Wörtern. So würden die Worte Rom, Paris, Berlin und Peking nicht nur nahe zueinander im Vektorraum platziert, sondern sie haben auch ähnliche Distanzen im Vektorraum zu den Wörtern der Länder, in welchen sie die Hauptstädte sind. Dies zeigt Abbildung So würde gelten: Rom Italien = P eking China. Wenn man nur wissen würde, dass Rom die Hauptstadt von Italien ist und man herausfinden will, was die Hauptstadt von China ist, dann würde die Rechnung Rom Italien + China die Antwort liefern, und zwar Peking. 18

23 KAPITEL 2. THEORETISCHE GRUNDLAGEN 2.3. Word2vec Abbildung 2.15.: Visualisierung von Ländern und Hauptstädten als Vektoren in einem Vektorraum und wie sie zueinander stehen. [19] Eine weitere nützliche Berechnung ist, aus einer gegebenen Liste von Wörtern auszugeben, welches Wort am wenigsten zu den anderen passt. Zum Beispiel bei den Wörtern Frau, Mann und Liebe würde Liebe als unpassend zurückgegeben werden. Modelle können entweder selbst generiert oder bereits vortrainierte Modelle genutzt werden. Eine Liste verfügbarer Word2vec Modelle kann hier gefunden werden: Diese Liste zeigt auch Word-Embeddings, welche mithilfe von GloVe [20] generiert wurden. GloVe kann gleich genutzt werden wie Word2vec. Sie unterschieden sich in ihrer Generierung [21]. Word2vec ist ein prediktives Modell und GloVe ein zählungsbasiertes Modell [22]. Obwohl die Modelle anders generiert wurden, funktionieren sie in NLP-Aufgaben ähnlich gut. GloVe kann aber im Gegensatz zu Word2vec besser parallelisiert werden was es leichter macht, mit grossen Datenmengen zu trainieren. 19

24 3. Vorgehen In diesem Kapitel wird das Vorgehen beschrieben. Zuerst wird erklärt, wie diese Arbeit im Zusammenhang mit dem diesjährigen PAN Shared Task [1] steht. Als nächstes folgt ein Kapitel, welches erklärt, welche Daten es gibt und wie sie aussehen. Im Anschluss daran werden die Systeme erklärt, auf welchen das resultierende System ausgebaut ist. Als nächstes wird das neue System erklärt und die ersten Leistungsmessungen angegeben. Darauf folgt ein Kapitel, welches erklärt, wie versucht wurde, die Leistung des Systems zu verbessern und welche Ergebnisse daraus gezogen wurden. Dort wird das Training noch genauer analysiert und eine Analyse der Ergebnisse gegeben. Als letztes folgt noch ein Kapitel zu den genutzten Komponenten und der Software PAN Shared Task Zu Anfang bestand die Aufgabenstellung darin, die Erkennung mithilfe von biometrischen Daten zu machen (siehe offizielle Aufgabenstellung am Ende dieses Dokuments). Es stellte sich leider als grosse Herausforderung heraus, genug geeignete Daten zu finden, um mit biometrischen Daten Machine Learning Methoden zu verwenden. Es wurden nur sehr wenig Daten gefunden. Weiter wurde keine geeignete Methode gefunden, um rechtzeitig genug Daten zu bekommen und diese dann noch in ein Machine Learning Verfahren zu füttern, es zu analysieren und das System noch zu verbessern. Daher wurde die Aufgabenstellung geändert, sodass die Erkennung aufgrund von reinen Texten gemacht wird. Solche Daten gibt es zwar auch nicht sehr viele, aber genug, um sie in einem Machine Learning Verfahren einzusetzen. Informationen zu den Datensätzen befinden sich im nächsten Kapitel. Durch diese Suche von Daten ist man zufällig auf den PAN Shared Task [1] gestossen. Dies ist ein jährlicher wissenschaftlicher Wettbewerb zu verschiedenen Bereichen der digitalen Textforensik. Die Aufgaben sind Author Identification, Author Profiling und Author Obfuscation. Zu diesem Zeitpunkt lief der diesjährige Wettbewerb bereits und so wurde entschieden, dass eine Teilnahme an diesem Wettbewerb interessant wäre interessant wäre und zu dieser Arbeit perfekt passt. Dies führte zu einer Zusammenarbeit zwischen dem Institut für angewandte Informationstechnologie der ZHAW und dem Institut für Machine Learning der ETH Zürich. So wurde diese Arbeit im Hinblick auf den Shared Taks für Author Profiling [2] erarbeitet. Leider war am Ende schlicht zu wenig Zeit, um dieses Jahr richtig teilzunehmen. Da aber nun bereits Interesse besteht, bei diesem Wettbewerb mitzumachen, wird nächstes Jahr eine Teilnahme an den Task angegangen. Diese Arbeit wird dies nicht mehr erleben, aber die Ergebnisse dieser Arbeit soll der Teilnahme nächstes Jahr möglichst gut dienen Datensätze / Korpora Ein wichtiger Teil dieser Arbeit ist es, geeignete Datensätze und Korpora zu finden, welche im Machine- Learning-Verfahren eingesetzt werden können. Dabei wurde auf folgende Punkte geachtet: Informationen: Besitzt der Datensatz alle nötigen Informationen? - In diesem Fall im mindesten Alter und Geschlecht des Autors zusammen mit seinem Text. Mehr Informationen als diese sind durchaus gewünscht, da man möglichst viele Informationen im Endsystem einbringen und 20

25 KAPITEL 3. VORGEHEN 3.2. Datensätze / Korpora erkennen möchte. Auch ist es für eine spätere Erweiterung von Vorteil, wenn die gleichen Daten weiterverwendet werden können. Zusätzlich dazu ist für ein Teil des Systems eine Reihe von Datensätzen nötig, welche ausschliesslich Texte enthält ohne jegliche Informationen zum Autor. Qualität: Wie vertrauenswürdig sind die Informationen zum Autor? - Damit das System überhaupt funktionieren kann, ist es essentiell, dass die Daten weitgehend als richtig anerkannt werden können. Deshalb ist es von Vorteil, Daten zu verwenden, die aus einer Quelle kommen, welche nicht anfällig auf Schwindeln ist. Deshalb fallen beispielsweise Dating-Seiten weg, da die Benutzer anfällig darauf sind, sich etwas jünger zu geben als sie in Wirklichkeit sind. Quantität: Gibt es genug Daten? - Beim Machine Learning gilt die Regel: je mehr Daten, desto besser. Ein Teil des Systems nutzt reine Texte ohne jegliche Autorinformationen. Die Menge dieser Daten muss sehr gross sein, denn hier wird eine möglichst grosse Wort- und Kontextvielfalt angezielt. Format: Sind die Daten in einem geeigneten Format, um sie zu nutzen? - Eine klare und einfache Struktur der Daten ist von Vorteil, denn sonst macht das Einholen und Parsen der Daten einen grossen Mehraufwand. Deshalb ist die Möglichkeit, Texte von einer Webseite zu spidern zwar eine gute Idee, um Daten zu bekommen, sie ist jedoch auch aufwändiger, als einen fertigen Satz von Daten zu verwenden. Durch Brainstorming und Suchen wurden folgende Datensätze und Korpora gefunden und als mögliche Kandidaten für die Verwendung in dieser Arbeit bedacht: 21

26 3.2. Datensätze / Korpora KAPITEL 3. VORGEHEN Abbildung 3.1.: In Frage kommende Datensätze und Korpora mit Informationen zu den Daten und der Herkunft. 22

27 KAPITEL 3. VORGEHEN 3.3. Bestehende Systeme Bei den Datensätzen, welche keine Autorinformation benötigen, wurde auf bereits vorhandene Datensätze des Institut für angewandte Informationstechnologie zurückgegriffen. Diese bestanden aus ca. 760 Millionen englische, 320 Millionen spanische und 9 Millionen niederländische Tweets. Im Rahmen dieser Arbeit werden vor allem die Datensätze von PAN [1] verwendet. Dabei werden alle verfügbaren Datensätze genutzt, die sie zur Verfügung stellen und zur Aufgabenstellung passen. Zum einen sind sie vollständige Datensätze mit vielen Texten, vor allem Tweets, und mehrheitlich gleicher Klassenaufteilung. Zum anderen sind sie ideal, um sie beim PAN Shared Task [1] einzusetzen Bestehende Systeme Das in dieser Arbeit implementiert System wurde basierend auf zwei anderen Systemen entwickelt, welche von der ETH Zürich im Rahmen einer Masterarbeit zur Verfügung stehen. Beide Systeme befinden sich auf dem Datenträger dieser Arbeit. Das erste System ist ein Convolutional Neural Network zur Klassifikation von Sentimenten für Tweets. Dies wurde basierend auf Convolutional Sentence Embeddings aus dem Paper von Severyn und Moschitti [23] entwickelt. Das zweite System ist ein Convolutional Neural Network zur Hashtag-Prediction. Auch dieses wurde mithilfe von Convolutional Sentence Embeddings basierend auf dem Paper von Severyn und Moschitti [23] entwickelt. Da diese Systeme beide aufgrund des Papers von Severyn und Moschitti [23] aufgebaut sind, wird nachfolgend deren System kurz erklärt. Deren System ist vor allem von der Architektur von Kalchbrenner, Grefenstette und Blunsom [17] inspiriert. Aber im Gegensatz zu ihnen, arbeiten Severyn und Moschitti in ihrem System mit einer Single-Level-Architektur. Das Netzwerk besteht aus einem Convolutional-Layer, gefolgt von einem nichtlinearen Maximum-Pooling-Layer und einem Soft-Max Klassifizierungs-Layer. Abbildung 3.2 zeigt den Aufbau des Systems. Abbildung 3.2.: Aufbau des Systems mit einer Veranschaulichung der Layer. [23] Am Anfang steht eine Satz-Matrix. Dabei wird jeder Tweet als Sequenz von Wörtern behandelt und jedes Wort wird aus einem Vokabular geholt. Jedes Wort wird mit einem Vektor repräsentiert, der aus den Word-Embeddings herausgelesen wurde. Die Matrix wird dann geformt, indem alle Vektoren 23

28 3.4. Entwickeltes System KAPITEL 3. VORGEHEN des Vokabulars konkatiniert werden. Das Modell lernt semantische Konzepte, indem eine Reihe von Transformationen auf die Satzmatrix ausgeführt werden. Es werden Convolution, Nicht-Linearität und Pooling-Operationen durchgeführt. Das Ziel des Convolution-Layers ist es, Patterns und diskrimminative Wortsequenzen, welche in den Input-Tweets häufig vorkommen, zu extrahieren. Auch werden parallel mithilfe von Filtern des Deep Learning Modells Feature-Maps generiert. Die Filter werden sequenziell als Convolutions über die Satz- Matrix ausgeführt. Für jede Feature-Map wird noch ein Bias-Vektor genutzt, damit das Netzwerk einen geeigneten Schwellwert lernen kann. Damit das Netzwerk nicht-lineare Entscheidungsbarrieren lernen kann, folgt jedem Convolutional-Layer eine nicht-lineare Activation-Funktion, welche elementweise angewandt wird. Häufig genutzte Activation- Funktionen sind Sigmoid, oder auch Logistic genannt, hyperbolischer Tangens tanh oder auch die Rectified-Linear-Funktion (ReLU) definiert als max(0, x) damit die Feature-Maps immer positiv werden. In diesem System wird ReLU verwendet. Der Output des Convolutional-Layers, der bereits durch die Activation-Funktion gegangen ist, geht als nächstes zum Pooling-Layer. Dessen Ziel ist es, die Information zu aggregieren und die Repräsentation zu reduzieren. Möglich ist Maximum sowie Durchschnitts-Pooling. Hier wird Maximum-Pooling genutzt. Dieser Vorgang posiert als nicht-linearer Feature-Extraktor. Der Output der letzten Operation wird zum Softmax-Layer geführt. Dieser rechnet die Wahrscheinlichkeitverteilung der Labels aus. Am Ende werden wieder Satz-Matrizen ausgegeben. Das ist das ganze Training, welches sie implementiert haben Entwickeltes System Das hier entwickelte System ist eine Zusammensetzung von den beiden im letzten Kapitel erwähnten Systemen und einer Anpassung auf die hier gewünschte Fragestellung. Die meisten Grundeinstellungen wurden für die erste Version belassen, abgesehen von denen, die für die Fragestellung von Bedeutung sind. Auch der grundsätzliche Ablauf wurde wie in den Originalsystemen beibehalten. Hier eine Auflistung der Einstellung, Inputs und Parameter, welche geändert oder eingeholt werden müssen, damit das System für diese Fragestellung funktioniert: Word-Embeddings: Die Embeddings müssen ein breiteres Spektrum an Begriffen unterstützen, denn die vom bestehenden System übernommenen Embeddings waren auf Smiley-Tweets in Englisch spezialisiert. Auch müssen die Embeddings in drei Sprachen verfügbar sein (Englisch, Spanisch und Niederländisch). Tweets: Die Daten für das Trainieren des Systems sowie das Testen müssen beschafft werden. Die Daten müssen dabei alle nötigen Informationen beinhalten. Das heisst Alter und Geschlecht des Autors und den zugehörigen Text. Codezusammenstellung und Änderung: Der Code muss aus beiden Systemen zusammengestellt werden, damit jeder Teilschritt vorhanden ist. Auch muss der Code für das Parsen, Trainieren und Erkennen angepasst werden, damit die neuen Anforderungen erfüllt werden. Messung der Effektivität: Es muss Code geschrieben werden, um die Effektivität des Systems zu messen. 24

29 KAPITEL 3. VORGEHEN 3.4. Entwickeltes System Das daraus resultierende neue System ist wie folgt aufgebaut: Abbildung 3.3.: Aufbau und Schritte des Systems. Unten befindet sich eine Legende zu den Bedeutungen der Diagramm-Elemente. 25

30 3.4. Entwickeltes System KAPITEL 3. VORGEHEN Im Folgenden werden die einzelnen Schritte des Systems genauer erklärt. Schritt 1 erhält als Input eine grosse Menge von Tweets ohne Autoreninformationen und kreiert eine Datei mit Word-Embeddings. Dieser soll im Training als erster Convolutional Layer dienen. Schritt 2 erhält als Input eine möglichst grosse Menge an Datensätzen mit Autoreninformationen (hier Alter und Geschlecht). Diese sind unterteilt in Test, Training und Validation-Datensätze. Auf den hier genannten Test-Datensätzen sollen am Ende automatisch Alter und Geschlecht erkannt werden. Die Training-Datensätze werden lediglich zum Trainieren des Systems genutzt und die Validation-Datensätze werden als Zwischenschritt im Training eingesetzt um durch Erkennungen während dem Training das Model weiter zu verbessern. Schritt 2 gibt am Ende die geparsten Datensätze zurück sowie ein Vokabular aller genutzten Wörter aller Datensätze. Die geparsten Datensätze werden als vier Arrays gespeichert: Autor-Array mit allen Autoreninformationen (AutorID, Texttyp und Sprache), Tweet-Array mit dem Inhalt des Tweets (übernommen vom bestehendem System sind die Tweets nach 140 Tokens abgeschnitten), Geschlecht-Array (Zahlen 0 oder 1) und Alter-Array (Zahlen 0 bis 4). Bei diesen Arrays stimmt immer der Index mit dem gleichen Datensatz überein. So wird die richtige Zuordnung von Autorinformation, Text-Tokens und Geschlecht/Alter sichergestellt. Schritt 3 erhält als Input die Word-Embeddings aus Schritt 1 und das Vokabular aus Schritt 2 und extrahiert alle Wortvektoren der Wörter, die im Vokabular vorhanden sind, und gibt so eine Datei aus mit reduzierten Word-Embeddings. Schritt 4 erhält die reduzierten Word-Embeddings und die Arrays der Datensätze und nutzt diese, um selbstständig ein Modell zu trainieren. Am Ende gibt es ein trainiertes Modell aus und eine Parameter-Map, welche alle nötigen Parameter sowie die Werte inklusive Gewichte und Bias, enthält. Die Satzvektoren und die Accuracies während den Validations-Schritten werden zudem auch ausgegeben. Die Satzvektoren werden für die Erkennung im nächsten Schritt gebraucht und die Accuracies werden nur zu Veranschaulichungszwecken gespeichert. Schritt 5 erhält wieder die Arrays der Datensätze aber nur die Test-Datensätze. Mithilfe dieser führt das trainierte Modell Erkennungen durch und gibt seine Lösungen aus. Das System kennt beim Geschlecht die Klassen Mann, geparst als Klasse 0, und Frau, geparst als Klasse 1. Abbildung 3.4 zeigt ein Beispiel wie das System seine Erkennungen für das Geschlecht ausgibt. Die Daten haben mehrere Personen und für jede Person mehrere Texte. Die erste Spalte enthält die ID des Autors und die nächsten Spalten die Werte der Vektoren. Die erste Zeile der Abbildung zeigt, dass die Person b3ff1402-beab-4395-a107-56e5fb19c0e9 für einen Tweet zu Prozent als Mann und zu Prozent als Frau eingeschätzt wurde. Das heisst, das System würde die Person in diesem Fall als Mann einschätzen aufgrund dieses einen Tweets. Abbildung 3.4.: Beispiel-Output am Ende von Schritt 5 für Geschlechtsauswertung. Das System kennt beim Alter die Klassen 18-24, geparst als Klasse 0, 25-34, geparst als Klasse 1, 35-49, geparst als Klasse 2, 50-64, geparst als Klasse 3 und 65-XX, geparst als Klasse 4. Das XX symbolisiert, dass ab dem Alter 65 keine kleinere Granularität mehr durchgeführt wird, wie weit die Person von 65 Jahren entfernt ist. Abbildung 3.5 zeigt ein Beispiel wie das System sein Erkennungen für das Alter ausgibt. Die erste Spalte enthält wieder die ID des Autors und die nächsten Spalten die Werte der Vektoren. Die erste Zeile der Abbildung zeigt, dass die Person b3ff1402-beab-4395-a107-56e5fb19c0e9 für einen Tweet zu Prozent als 18 bis 24-jähriger, zu Prozent als 25 bis 34-jähriger, zu Prozent als 35 bis 49-jähriger, zu als 50 bis 64-jähriger und zu 26

31 KAPITEL 3. VORGEHEN 3.4. Entwickeltes System Prozent als 65 bis X jähriger eingeschätzt wurde. Das heisst, das System würde die Person als 18 bis 24-jährigen einschätzen aufgrund dieses einen Tweets. Abbildung 3.5.: Beispiel-Output am Ende von Schritt 5 Altersauswertung. Auffallend ist, dass das System nicht die Information ausgibt, welcher klassifizierte Tweet zu welchem ursprünglichen Tweet gehört. So kann man momentan nicht manuell zurückführen, welcher Tweet wie klassifiziert wurde. Die Information ist aber mit weiterer Programmierarbeit herausholbar und somit nicht verloren. Für die Berechnung der Accuracy wird diese Information nicht benötigt, da Alter und Geschlecht mithilfe der AutorID herausgeholt werden kann. Da das System von 2 verschiedenen Systemen selbst zusammengesetzt wurde und auf die richtige Aufgabenstellung angepasst wurde, muss sichergestellt werden, dass die Funktionsfähigkeit des Systems gewährleistet ist. Dafür wurden Tests auf kleinen Datenmengen ( Tweets pro Test/Validierung/Training-Datensatz) durchgeführt. Tabelle 3.1 zeigt diese Tests. Nr. Schritt Test Erwartetes Ergebnis Erhaltenes Ergebnis 1 1 Gensim-Funktion similarity mit einigen Wortbeispielen ausprobieren (alle Sprachen) * Bei Wörter mit höherer Ähnlichkeit in ihrer Bedeutung wird eine grössere Zahl zurückgegeben. * Die ausgegebenen Zahlen stehen sinnvoll im Kontext zueinander. 2 1 Gensim-Funktion doesnt_match mit einigen Wortbeispielen ausprobieren (alle Sprachen) ** 3 1 Gensim-Funktion most_similar mit einigen Wortbeispielen ausprobieren (alle Sprachen) *** 4 2 Manueller Test des Parsers indem kontrolliert wird, ob die eingegebenen Datensätze richtig in ihre Datenstrukturen geschrieben werden. 5 2 Manueller Test des Parsers indem kontrolliert wird, ob die Inhalte des resultierenden Vokabulars mit den genutzten Wörtern in den Inputdaten übereinstimmen. Der richtige Begriff wird als Aussenseiter der Liste ausgegeben. ** Nach den angegebenen Wörtern wird ein sinnvolles Wort als am meisten ähnliches Wort ausgegeben. *** Inhalt des Input stimmt mit dem Inhalt des resultierenden Outputs überein. Inhalt des Input stimmt mit dem Inhalt des resultierenden Outputs überein. Der ausgegebene Begriff der Liste ist der erwartete Aussenseiter. Das ausgegebene Wort ist ein sinnvolles Wort im Kontext der gegebenen Wörter. Übereinstimmung ist in allen Tests vorhanden. Übereinstimmung ist in allen Tests vorhanden. 27

32 3.4. Entwickeltes System KAPITEL 3. VORGEHEN 6 3 Manueller Test des Extraktors indem kontrolliert wird, ob die reduzierten Word-Embeddings nur Worte des Vokabulars enthalten. 7 4 Manuell Erkennungen auf den Validation-Datensatz innerhalb des Trainings auf sinnvolles Verhalten kontrollieren. 8 4 Nur Datensätze desselben Geschlechts/Alters nutzen 9 4 Ein anderes Verhältnis von Trainingsdaten nutzen (zum Beispiel 30% Männer und 70% Frauen) als im letzten Vorgang Vorhersagen auf Training/Validierungs- Datensätzen laufen lassen 11 5 Dummy-Vektoren nutzen um zu kontrollieren, dass die Erkennungen richtig ausgegeben werden. Die reduzierten Word- Embeddings enthalten die Wortvektoren der Word-Embeddings für alle Worte, die im Vokabular sowie in den Word- Embeddings vorhanden sind. Das System sollte nach einigen Epochen anfangen, bessere Accuracy- Scores auf den Validation- Datensatz zu produzieren. Dies würde darauf hinweisen, dass das System sinnvoll arbeitet und das Training und Validierung einen Unterschied machen. Dies wiederum würde darauf hinweisen, dass das System korrekt lernt. System sollte immer das trainierte Geschlecht/Alter vorhersagen. System sollte andere Vorhersagen treffen und beim Validierungsschritt innerhalb des Trainings ein anderes Verhalten zeigen. Hohe Übereinstimmung da mit diesen Daten trainiert wurde. Erste Spalte enthält AutorID, zweite Spalte den Vektor-Wert für Klasse 0, dritte Spalte den Vektor- Wert für Klasse 1 (bei Altersvorhersage das Gleiche für 5 Klassen). Alle Worte sowie richtige Vektoren sind vorhanden. Das System beginnt nach Epochen 24, andere Klassen vorzuschlagen, als die erste und geht bei Accuracy-Score während des Trainings bis zu über 80% Accuracy. Nur die trainierte Klasse wird beim Prediction- Schritt vorhergesagt. Entspricht dem beschriebenen Verhalten. Über 80% Accuracy, wobei die Accuracy pro Tweet berechnet wird. Die Ergebnisse werden richtig herausgeschrieben. Tabelle 3.1.: Liste von durchgeführter Tests um die Funktionsfähigkeit des implementierten Systems zu ermitteln. * 1 # English 2 print model. similarity ( woman, man ) # bigger than following 3 print model. similarity ( woman, love ) 4 print model. similarity ( cat, dog ) # bigger than following 5 print model. similarity ( cat, house ) 6 print model. similarity ( car, bus ) # bigger than following 7 print model. similarity ( car, dog ) 8 28

33 KAPITEL 3. VORGEHEN 3.4. Entwickeltes System 9 # Spanish 10 print model. similarity ( mujer, hombre ) # bigger than following 11 print model. similarity ( mujer, amor ) 12 print model. similarity ( gato, perro ) # bigger than following 13 print model. similarity ( gato, casa ) 14 print model. similarity ( coche, bus ) # bigger than following 15 print model. similarity ( coche, perro ) # Dutch 18 print model. similarity ( mevrouw, meneer ) # bigger than following 19 print model. similarity ( mevrouw, liefde ) 20 print model. similarity ( kat, hond ) # bigger than following 21 print model. similarity ( kat, huis ) 22 print model. similarity ( auto, bus ) # bigger than following 23 print model. similarity ( auto, hond ) ** 1 # English 2 print model. doesnt_match (" woman man love ". split ()) # love 3 print model. doesnt_match (" queen king car ". split ()) # car 4 print model. doesnt_match (" cat bus dog ". split ()) # bus 5 6 # Spanish 7 print model. doesnt_ match (" mujer hombre amor ". split ()) # amor 8 print model. doesnt_match (" reina rey coche ". split ()) # coche 9 print model. doesnt_match (" gato bus perro ". split ()) # bus # Dutch 12 print model. doesnt_ match (" mevrouw meneer liefde ". split ()) # liefde 13 print model. doesnt_ match (" koningin koning auto ". split ()) # auto 14 print model. doesnt_match (" kat bus hond ". split ()) # bus *** 1 # English 2 print model. most_similar ( positive =[ woman, king ], negative =[ man ]) # queen 3 print model. most_similar ( positive =[ man, queen ], negative =[ woman ]) # king 4 5 # Spanish 6 print model. most_similar ( positive =[ mujer, rey ], negative =[ hombre ]) # reina 7 print model. most_similar ( positive =[ hombre, reina ], negative =[ mujer ]) # rey 8 9 # Dutch 10 print model. most_similar ( positive =[ mevrouw, koning ], negative =[ meneer ]) # koningin 11 print model. most_similar ( positive =[ meneer, koningin ], negative =[ mevrouw ]) # koning Im Ordner des Systems befindet sich das zugehörige Script, welches genutzt wurde, um die Embeddings zu testen. Aufgrund dieser Tests wird davon ausgegangen, dass das neues System wie gewünscht arbeitet. Als Mass wurde die Accuracy gewählt, welche die Anzahl richtiger Erkennungen dividiert mit der Anzahl zu erkennenden Texten ist. Die Accuracy wurde pro Text ausgerechnet. Dies bietet grössere Aussagekräftigkeit, wie gut das System arbeitet, als wenn nur die Accuracy pro Peron ausgerechnet würde. Bei 29

34 3.4. Entwickeltes System KAPITEL 3. VORGEHEN dem Alter wurde zusätzlich noch die Klassendistanz berechnet. Dies ist die Distanz von der erkannten Klasse zur korrekten Klasse dividiert durch alle falschen Erkennungen. Auch dafür wurde selbst ein Script geschrieben, welches sich im Ordner des Systems befindet. Für die Tests wurden die Datensätze manuell in die drei Kategorien Training, Validation und Test aufgeteilt. Hier Informationen zu der Aufteilung: Englisch Training: Tweets Validation: Tweets Test: Tweets Spanisch Training: Tweets Validation: Tweets Test: Tweets Niederländisch Training: Tweets Validation: Tweets Test: Tweets Auf diesem Basissystem wurde ein erster Testlauf auf allen vorhandenen Datensätzen gestartet. Dabei wurden die Datensätze manuell in die drei Kategorien Training, Validation und Test aufgeteilt. Tabelle 3.2 zeigt die Ergebnisse der Testläufe. Die niederländischen Datensätze bietet leider keine Information zum Alter und konnte daher nur auf das Geschlecht getestet werden. Sprache Eigenschaft Accuracy Klassendistanz Englisch Geschlecht Spanisch Geschlecht Niederländisch Geschlecht Englisch Alter Spanisch Alter Tabelle 3.2.: Ergebnisse der Testläufe des implementierten Systems mit den Grundeinstellungen. Dies sind die Begebenheiten des Basissystems: 50 Epochen (n_epochs) 200 Kernels (nkernels1) 2 Klassen für Geschlecht und 5 Klassen für Alter (n_outs) 140 Tokens pro Text maximal (q_max_sent_size) 3-sprachige Word-Embeddings Auffallend ist, dass die Geschlechtserkennung allgemein bessere Accuracy-Werte erzielt. Dies ist aber zu erwarten, da bei Geschlecht zwischen 2 Klassen entschieden werden muss und bei Alter zwischen 5 Klassen. Wie man sieht, sind die Ergebnisse nicht sehr gut. Sie sind noch ziemlich nahe am Zufallswert von für Geschlecht und für Alter. Weiter fällt auf, dass die Accuracy bei Englisch für Alter im Verhältnis sehr viel besser ist als alle anderen Accuracies. Auch die durchschnittliche Klassendistanz ist kleiner als bei Spanisch für die Alterserkennung. 30

35 KAPITEL 3. VORGEHEN 3.5. Verbesserung des Systems 3.5. Verbesserung des Systems Im vorherigen Kapitel wurde festgestellt, dass die Resultate des Systems mit den Grundeinstellungen ernüchternd sind. Deshalb wurden Anpassungsmöglichkeiten ausgedacht und evaluiert, um aus dem System bessere Resultate herauszuholen. Die folgenden Ideen wurden in Betracht gezogen: Anzahl Epochen: Die Anzahl der Epochen während des Trainings ist extrem gering eingestellt. Dies macht für einen lokalen Test mit wenig Datensätzen Sinn, aber es ist zu erwarten, dass durch mehr Epochen das Modell besser trainiert wird. Anzahl Kernels des Netzes: Es besteht die Möglichkeit, dass durch eine höhere Anzahl von Kernels das Modell besser trainiert werden kann. Anzahl Wörter: Das System ist limitiert auf 140 Tokens pro Text. Wenn ein Text länger ist, wird der letzte Teil des Textes nicht berücksichtigt. Da es auch Tweets gibt, die länger sind als 140 Wörter und das System auch für andere Arten von Texten funktionieren soll, ist es möglich, dass eine Erhöhung dieser Limitierung bessere Ergebnisse erzielt. 10 Klassen: Im Basissystem wurden Alter und Geschlecht separat trainiert und erkannt. Eine weitere Möglichkeit wäre, bei den Sprachen, bei welchen Alter und Geschlecht bekannt sind, was Englisch und Spanisch bedeutet, ein gemeinsames Training für beide Eigenschaften zu nutzen. Dies würde in 10 Klassen resultieren, das heisst 5 Altersklassen multipliziert mit 2 Geschlechtsklassen. Word-Embeddings: Beim Basissystem wurde ein Word-Embedding genutzt, welches mit allen drei Sprachen gebildet wurde. Damit dieses nicht zu gross wird, wurden 145 Millionen englische, 145 Millionen spanische und alle 10 Millionen niederländischen Tweets verwendet, um das Word2vec- Modell zu trainieren. Da dadurch bei Englisch und Spanisch weniger Information in das Training des Word2vec-Modells eingegangen sind, ist es möglich, dass bei Nutzung von Word-Embeddings, welche nur je eine Sprache unterstützen, aber dafür mehr Tweets eintrainiert wurden, das Modell bessere Ergebnisse erzielen kann. Auch könnte eine reine Erhöhung der Dimension der Word- Embeddings eine mögliche Verbesserung bedeuten. Anderes Klassifizierungsmodell: Im Basissystem wird Logistic Regression genutzt, um zu entscheiden, welche Klasse zu welchem Tweet passt. Ein anderes Modell könnte Andere und womöglich sogar bessere Ergebnisse liefern. Semantik-Layer: Es könnten womöglich bessere Ergebnisse erzielt werden, wenn ein zusätzlicher Layer in das Netz integriert wird, welches die Semantik der vorkommenden Wörter symbolisiert. Die Recherche am Anfang hat gezeigt, dass die Semantik durchaus bei Alters- und Geschlechtserkennung hilft. POS-Layer: Es könnten womöglich bessere Ergebnisse erzielt werden, wenn ein zusätzlicher Layer in das Netz integriert wird, welches die POS-Klassen berücksichtigt. Die Recherche am Anfang hat gezeigt, dass dies ein oft genutztes Werkzeug in der Erkennung ist und daher interessant für einen Versuch ist. Aufgrund dieser Ideen wurden weitere Tests durchgeführt. Diese Tests wurden auf den gleichen Daten wie beim Basissystem ausgeführt. Die Aufteilung von Training, Validation und Test wurde belassen. Tabelle 3.3 zeigt die besten Ergebnisse, die aus den Testläufen herausgeholt wurden. Bemerkungen zu den Testergebnissen: Es wurden Tests mit 200 und 500 Epochen durchgeführt. Es wurden Tests mit 200 und 1000 Kernels durchgeführt. Zur Erhöhung der Anzahl Wörter konnten leider keine Testergebnisse herausgezogen werden, da die Erhöhung der Limitierung von 140 Wörter stets eine Überlastung des Memorys auslöste (Out of Memory Exception). Daher konnte dieser Test nicht weiterverfolgt werden. 31

36 3.5. Verbesserung des Systems KAPITEL 3. VORGEHEN Für die 10-Klassen-Variante wurden neue Scripts geschrieben. Diese befinden sich im Ordner des Systems. Ein anderes Klassifizierungsmodell konnte leider aufgrund von Zeitmangel nicht getestet werden. Der Test mit den einsprachigen Word-Embeddings wurde leider nur für Alter in Englisch durchgeführt. Dies aufgrund von Zeitmangel. Die Idee bezüglich dem weiteren Semantik-Layer konnte leider aufgrund von Zeitmangel nicht getestet werden. Die Idee bezüglich dem weiteren POS-Layer konnte leider aufgrund von Zeitmangel nicht getestet werden. Sprache Eigenschaft Acc. Verbesserung Acc. Klassendist. Verbesserung Klassendist. Englisch Geschlecht Spanisch Geschlecht Niederländisch Geschlecht Englisch Alter Spanisch Alter Tabelle 3.3.: Beste Ergebnisse der Testläufe des implementierten Systems mit Verbesserungen. Acc. ist die Kurzform für die Accuracy und Klassendist. die Kurzform für die Klassendistanz. Analyse zum Validations-Verlauf während des Trainings Nun folgt eine Analyse zu dem internen Validations-Verlauf während dem Training. Dies gibt Einblick, wie sich das System bei den verschiedenen Varianten intern verhält. Es gibt auch darüber Aufschluss, welche Varianten des Trainings besser funktionieren als andere. 32

37 KAPITEL 3. VORGEHEN 3.5. Verbesserung des Systems Abbildung 3.6.: Scatterplot der Validation-Accuracies während des Trainings. Die blauen Punkte sind die einzelnen Accuracy Werte während den Epochen und die rote Linie ist die Trendlinie zu den Accuracy-Werten. Dieser Plot zeigt das Verhalten des Basissystems beim Trainieren von englischen Daten für eine separate Geschlechtserkennung. Der Trend des Graphen in Abbildung 3.6 verläuft wie erwartet. Die Trendlinie ist steil und die Accuracy- Werte haben nur ab und zu Ausreisser. Die beste Accuracy wurde bei Epoche 35 erreicht. 33

38 3.5. Verbesserung des Systems KAPITEL 3. VORGEHEN Abbildung 3.7.: Scatterplot der Validation-Accuracies während des Trainings. Dieser Plot zeigt das Verhalten beim Trainieren von englischen Daten für eine separate Geschlechtserkennung. Dieser Durchlauf hat 200 Epochen durchlebt. Der Trend des Graphen in Abbildung 3.7 ist sehr eigenartig. Das System verhält sich am Anfang gleich wie vorher, was auch logisch ist, nur wird trotz der weiteren Epochen keine bessere Accuracy für die Validationsdaten erzielt. Die Trendlinie erfährt auch keine Steigung. Für die Validationsdaten waren die zusätzlichen Epochen offenbar gar nicht nötig. Trotzdem erzielt ein Testlauf mit den Testdatensätzen eine bessere Accuracy, aber leider auch nur sehr minimal. Sogar so minimal, dass die Verbesserung vernachlässigbar ist. 34

39 KAPITEL 3. VORGEHEN 3.5. Verbesserung des Systems Abbildung 3.8.: Scatterplot der Validation-Accuracies während des Trainings. Dieser Plot zeigt das Verhalten beim Trainieren von englischen Daten für eine separate Alterserkennung. Dieser Durchlauf hat 200 Epochen durchlebt. Der Trend des Graphen in Abbildung 3.8 sieht viel besser aus als der Graph bei der Geschlechtserkennung. Die Trendlinie steigt stetig, was ein gutes Zeichen ist. Auch interessant zu sehen ist, dass die Accuracy fast gleich hoch rauskommt wie beim Training für die separate Geschlechtserkennung. Dies ist speziell, weil das System bei der Alterserkennung mit 5 Klassen umgehen muss und nicht nur mit 2. Dies lässt vermuten, dass das System für die separate Alterserkennung viel besser funktioniert als für die separate Geschlechtserkennung. 35

40 3.5. Verbesserung des Systems KAPITEL 3. VORGEHEN Abbildung 3.9.: Scatterplot der Validation-Accuracies während des Trainings. Dieser Plot zeigt das Verhalten beim Trainieren von englischen Daten für eine separate Alterserkennung. Dieser Durchlauf hat 200 Epochen durchlebt und wurde nicht mit den mehrsprachigen Word- Embeddings, sondern mit den Word-Embedding berechnet, welche nur Englisch trainiert wurden. Beim Graphen der Abbildung 3.9 fällt auf, dass die höchste Accuracy besser ist als die bei den gemischten Word-Embeddings. Die Trendlinie fängt auf höherer Stufe an und endet auch höher. Die Trendlinie weist in etwa die gleiche Steigung auf wie die mit den gemischten Word-Embeddings. Die vorherigen Accuracies lieger allerding näher beieinander als in diesem Fall. 36

41 KAPITEL 3. VORGEHEN 3.5. Verbesserung des Systems Abbildung 3.10.: Scatterplot der Validation-Accuracies während des Trainings. Dieser Plot zeigt das Verhalten beim Trainieren von englischen Daten für eine gemeinsame Erkennung von Alter und Geschlecht. Dieser Durchlauf hat 200 Epochen durchlebt. Beim Graphen in Abbildung 3.10 fällt auf, dass die Accuracy generell tiefer ausfällt. Dies ist nicht überraschend, da das System hier mit 10 Klassen umgehen musste. Hier wird erst eine Übereinstimmung anerkannt, wenn sowohl Alter als auch Geschlecht für einen Text stimmen. Dies ist eine wichtige Unterscheidung. Auch hier ist eine gesunde stetige Verbesserung erkennbar. Die Trendlinie besitz also eine Steigung. Im Vergleich zu den anderen Graphen sind die Accuracy-Werte hier am meisten voneinander verstreut. Analyse zu den Testergebnissen Nun folgt eine Analyse zu den Testergebnissen. Diese zeigt genauer auf, welche Änderungen was gebracht haben und welche überhaupt nicht geholfen haben. Sie gibt Hintergrund zu den Zahlen der Tabelle 3.3. Wenn man vom Basissystem ausgeht, kann in vielen Fällen gesagt werden, dass das System von der höheren Anzahl an Epochen profitiert hat. Dies ist vor Allem beim Alter sichtbar. Leider konnte die Geschlechterkennung davon nicht sehr profitieren. Die niederländischen Daten konnten als einzige beim Geschlecht eine signifikante Verbesserung der Accuracy von fast 0.1 durch eine höhere Anzahl an Epochen erfahren. Dies gilt allerdings für 200 Epochen. Es wurden auch 500 Epochen getestet. Dies brachte jedoch keine Verbesserung. Aufgrund der zuvor analysierten Graphen zu der Validation während dem Training, kann es gut möglich sein, dass eine weitere Erhöhung von 50 bis 100 Epochen noch weitere Verbesserungen bringen kann, ohne die Traninszeit unnötig aufzupumpen. 500 Epochen lohnen sich nicht, wenn vom Basissystem ausgegangen wird. Die Ausführungszeit wird sehr stark erhöht ohne Nutzen davon zu tragen. Die 200 Kernels bewiesen sich als eine gute Wahl. Der Test mit 1000 Kernels brachte keine Verbesserung. Die Trainingsgszeit hat sich mit den 1000 Kernels aber erheblich erhöht. Interessant momentan wäre 37

42 3.5. Verbesserung des Systems KAPITEL 3. VORGEHEN noch ein Test mit 300 oder 500 Kernels. Dies würde die Trainingszeit nicht so dramatisch erhöhen, könnte aber durchaus Verbesserungen versprechen. Schade ist, dass das System nur mit einer maximalen Anzahl an 140 Token arbeitet. Dies macht das System sehr unflexibel. Mehr Text könnte durchaus eine höhere Accuracy bedeuten, da dann mehr Wörter die Erkennung beeinflussen und verbessern können. Bereits in der Recherche kam heraus, dass weniger Wörter einen signifikanten Leistungsabfall bedeuten können. Das System müsste für andere Textarten wie Blogs, welche üblicherweise viel länger sind als Tweets, noch fit gemacht werden. Momentan tokenisiert der Parser die Wörter und Zeichen direkt, ohne grosse Filterung zu machen. Es werden momentan nur User-Referenzen und Hyperlinks mit einem einheitlichen Token ersetzt. Dies müsste für Blogs noch weiter ausgebaut werden, sodass mindestens HTML-Zeiche behandelt werden. Auch wäre es gut, das System so zu ändern, dass mehr Tokens berücksichtigt werden können, ohne das Memory zu überlasten. Denkbar als Lösung für dieses Problem wäre, mehrere Schritte für mehrere Sets an Tokens zu machen. Damit gemeint ist, dass dann beispielsweise zuerst die ersten 140 Tokens berücksichtigt werden und dann im Anschluss die nächsten 140 Tokens des gleichen Textes in die vorherige Berechnung einfliesst. Denkbar hier wäre eine Lösung pro Text oder pro Layer-Durchlauf. Eine weitere Möglichkeit wäre eine Filterung bestimmter Zeichen und Wörter. So würde das System möglichst nur auf den relevanten Ausdrücken rechnen. Welche diese sind, müsste weiter recherchiert und ausprobiert werden. Nachteil dieser Lösung wäre, dass dem CNN die Möglichkeit von vornherein weggenommen wird, alle Begebenheiten selbst erlernen zu können. So würde man das CNN einschränken. Bei der 10-Klassen-Variante ist etwas höchst Interessantes passiert. Dort war zwar die Alterserkennung pro Tweet schlechter als die separate Variante mit 200 Epochen, jedoch hat die Geschlechtserkennung bessere Ergebnisse gebracht als die separate Variante mit 200 Epochen. Dies war der Fall für Englisch und Spanisch. Das bedeutet, das Modell hat bei der Geschlechtserkennung von der internen Erlernung der Altersmerkmale sogar profitiert. Ein Test mithilfe eines anderen Klassifizierungsmodell konnte leider nicht mehr ausprobiert werden. Zudem, dass die Zeit fehlte, konnte im Web nicht viel zu anderen Klassifizierern im Zusammenhang mit Theano gefunden werden. Die meisten Beispiele nutzen die Logistic Regression wie hier auch. Es gibt allerdings auch einige Beispiel zu linearer Regression mit Theano. Dies kann leider aufgrund der Beschaffenheit der Daten für das Alter nicht genutzt werden. Wenn die Daten anders wären, wäre das aber eine interessante Möglichkeit, die ausprobiert werden sollte. Dafür benötigt man allerdings Daten mit genauen Altersangaben, und dies auch noch für jede Sprache. Die Testläufe von englischen Daten für die Alterserkennung haben gezeigt, dass die Variante mit den einsprachigen Word-Embeddings bessere Ergebnisse lieferte als die mit den gemischten Word-Embeddings, und zwar mit 200 Epochen. Leider konnten aus Zeitmangel keine weiteren Testläufe gemacht werden. Der eine, für diesen Fall, gemachte Testlauf hat für das Training über 20 Stunden gebraucht, und das mit der leistungsstärksten Amazon EC2 GPU-Instanz. Dies ist auch zu erwarten, da schon die Trainingsläufe für separate Alterserkennung mit 200 Epochen und gemischten Word-Embeddings über 20 Stunden dauerten, dies auch mit der leistungsstärksten Amazon EC2 GPU-Instanz. Die reinen englischen Word-Embeddings enthalten über 2,5 Mal mehr Tweets. Dies führt zu mehr Wörtern in den Word-Embeddings, welche wahrscheinlich auch noch besser trainiert werden konnten. Bei den spanischen Word-Embeddings wurden ca. 20 Millionen mehr Tweets eintrainiert al bei den mersprachigen Word-Embeddings. Die niederländischen Word-Embeddings wurden mit sehr viel weniger Tweets trainiert. Es wäre interessant zu sehen, welche Auswirkungen ein Training auf spanischen Daten mit reinen spanischen Word-Embeddings und ein Training für niederländische Daten mit reinen niederländischen Word-Embbeddings haben. Hier muss man bedenken, dass die Sprachenzuordnung bei Tweets nicht immer zu 100% genau verläuft. Dadurch, dass heutzutage so viele Leute Englisch sprechen ist zudem sicher bei jedem Datensatz, mit oder ohne Autorinformationen, irgendwo Englisch dabei. Dies gilt sehr wahrscheinlich für die spanischen und niederländischen Daten. Spanisch sprechen auch sehr viele Menschen und könnte daher, zwar wahrscheinlich weniger, auch in den Datensätzen von Englisch und Niederländisch zu finden sein. Niederländisch ist hingegen nicht so verbreitet. Daher ist die Wahrscheinlichkeit, dass die spanischen und englischen Daten niederländische Sprache enthalten sehr gering. Diese Tatsache hat zur Folge, dass es möglich ist, dass niederländisch und spanisch von dem englischen Teil in den Word-Embedding sogar profitieren konnten. Dies wäre für weitere Untersuchungen wert. Auch 38

43 KAPITEL 3. VORGEHEN 3.6. Verwendete Software und Komponenten ist interessant zu wissen, welche Ergebnisse Niederländisch erzielen würde, wenn nur die einsprachigen niederländischen Word-Embeddings genutzt würden. Die zusätzlichen Layer wären spannende Ansätze. So könnten man die aus den Recherchen erfahrenen Begebenheiten in das CNN einfliessen lassen. Man würde dem CNN beim Lernprozess etwas unter die Arme greifen. Das CNN könnte mit zusätzlichen Convolutions für Sentimente und POS durchaus bessere Ergebnisse liefern. Dafür müsste aber grössere Arbeit in die Änderung des Systems gesteckt werden. Es ist dann keine reine CNN-Architektur mehr, da das CNN nicht mehr alles selbst lernt. Es bekommt dann Gewisse Eigenschaften mitgeliefert. Dies wäre jedoch gar nicht so schlimm, wenn die Ergebnisse dadurch signifikant besser wären. Leider war für die Probe dieser Ideen keine Zeit mehr übrig, was sehr Schade ist Verwendete Software und Komponenten Hier ist eine Beschreibung der genutzten Software, Bibliotheken, Komponenten und der Arbeitsumgebung. Arbeitsumgebung: Lokal wurde die Software mithilfe einer Xubuntu x86 virtuellen Maschine entwickelt und getestet. Für rechnungsintensive Vorgänge, wie die Erstellung der Word- Embeddings und das Training, wurden Amazon Elastic Compute Cloud (Amazon EC2) Ubuntu Instanzen der Amazon Webservices genutzt. Dieser Service ist kostenpflichtig. Die Kosten dafür wurden freundlicherweise vom Institut für Machine Learning der ETH Zürich übernommen. Code: Der vollständige Code des Systems wurde mit der Programmiersprache Python geschrieben. Softwarebibliotheken: python 2.7+, re, os, operator, cpickle, time, gzip, sys, xml, numpy, theano, scikit-learn (sklearn), pandas, tqdm, fish, numba, nltk, gensim Effizienz: Um die rechnungsintensiven Vorgänge zu beschleunigen, werden die Theano-Funktionen mithilfe von GPU-Instanzen von Amazon EC2 sowie dem NVIDIA cuddn 5 Treiber [24] berechnet. Um den Treiber herunterzuladen ist eine Registrierung im Accelerated Computing Developer Program von NVIDIA erforderlich. Der genutzte Treiber befindet sich aud dem Datenträger dieser Arbeit. Bericht: TeX Live 2015, Microsoft Excel 2016, Microsoft Visio

44 4. Ergebnisse Für die automatische Erkennung von Geschlecht konnten leider nur Ergebnisse von bis Accuracy erbracht werden. Alle drei Sprachen liegen in diesem Bereich. Dies ist immernoch sehr nahe am Zufallswert von und weit davon entfernt, der neue State of the Art zu sein. Für die automatische Erkennung von Alter konnten Ergebnisse von und Accuracy erbracht werden. Dies ist schon weiter weg vom Zufallswert 0.200, aber kann so auch noch nicht der neue State of the Art sein. Man kann sagen, dass die Alterserkennung relativ gesehen besser mit dem aktuellen System funktioniert als mit der Geschlechtserkennung. Sehr interessant war die Tatsache, dass die Geschlechtserkennung mithilfe von 10 gemischten Alters und Geschlechts-Klassen deutlich bessere Ergebnisse lieferte als die separate Variante. Leider konnten nicht alle Tests durchgeführt werden. Dies, weil für jeden Testlauf das Modell neu generiert werden muss, was sehr zeitaufwändig ist. Das ist auch der Grund, warum keine bessere Cross- Validation der Endergebnisse durchgeführt wurde. Hier wurde nur Non-Exhaustive Cross-Validation mit einer festen Datenaufteilung gemacht. Das heisst es gibt keine Ergebnisse, wo zufällig Datensätze gewählt wurden und alle möglichen Konstellationen mit diesen Daten getestet wurden. Das System verhielt sich ausserdem beim Training mit wenigen Daten deutlich anders als mit vielen Daten. Das hat es umso schwerer gemacht, aufgrund von Beobachtungen mit wenigen Daten gute Annahmen für viele Daten zu machen. Das System müsste zudem noch für einige Begebenheiten weiter angepasst werden. Einerseits sollte eine gute Lösung zur Limitierung von 140 Tokens gefunden werden. Weiter ist das System momentan keine Real-Time-Lösung, da das Modell nicht abgespeichert wird. Dies ist ein sehr grosser Nachteil, da das Trainieren des Modells sehr viel Zeit in Anspruch nimmt, selbst mit grosser Rechenpower. Das System hat grosses Potenzial, mindestens zum State of the Art zu kommen. Es könnte sogar den State of the Art übertreffen, wenn an den richtigen Enden geschraubt wird. Es muss auf jeden Fall noch weiter getestet und mehr Anpassungen gemacht werden, um den Forschungsergebnissen heutzutage gerecht zu werden. 40

45 5. Ausblick Es gibt noch einige Möglichkeiten, höchst wahrscheinlich mehr als in dieser Arbeit gefunden wurden, um das System noch weiter zu verbessern. Einige wurden in dieser Arbeit formuliert und getestet, andere wurden nur formuliert aber konnten aus Zeitgründen nicht mehr getestet werden. Diese Möglichkeiten gilt es noch zu testen. Weiter sollten noch mehr Möglichkeiten gefunden werden, um das System noch besser zu machen. Denkbar wären Ideen in Zusammenhang mit den hier gemachten Recherchen. Solche Methoden könnten in das System eingebracht werden, zum Beispiel durch zusätzliche Convolutions, und womöglich so noch bessere Resultate erzielen. Das resultierende CNN könnte dann von den zusätzlichen stilistischen und inhaltsbasierten Convolutions profitieren. Es müssen sicher noch weitere Tests mit diesem System durchgeführt werden, dies ist klar. Auch wäre eine Exhaustive Cross-Validation für die Zukunft von Vorteil, da diese mehr Aufschluss auf die Performance des Systems gibt. Falls die nötigen Änderungen noch implementiert werden, kann das System ein guter Mitstreiter für den kommenden PAN Shared Task nächstes Jahr sein. Falls dieses System nicht eingesetzt wird, sind zumindest die hier erworbenen Kenntnisse interessant. Entweder um ein ähnliches System von neu auf zu implementieren oder um einen ganz anderen Ansatz zu wählen. 41

46 6. Verzeichnisse Literaturverzeichnis [1] PAN. Shared Tasks [Online]. URL: [Stand: ] [2] PAN. Author Profiling [Online]. URL: [Stand: ] [3] J. W. Pennebaker, M. R. Mehl and K. G. Niederhoffer, PSYCHOLOGICAL ASPECTS OF NATURAL LANGUAGE USE: Our Words, Our Selves, Annual Review Of Psychology, S , [4] S. Argamon, M. Koppel, J. Fine and A. R. Shimoni, Automatically Categorizing Written Texts by Author Gender, Text, 23(3), August [5] Part of Speech. Part of Speech [Online]. URL: [Stand: ] [6] M. Koppel, S. Argamon and A. R. Shimoni, Gender, Genre, and Writing Style in Formal Written Texts, Literary and Linguistic Computing, 17(4), November [7] J. Schler, M. Koppel, s. Argamon and J. Pennebaker, Effects of Age and Gender on Blogging, Proc. of AAAI Spring Symposium on Computational Approaches for Analyzing Weblogs, March [8] D. Nguyen, R. Gravel, D. Trieschnigg and T. Meder, How Old Do You Think I Am? : A Study of Language and Age in Twitter, Proceedings of the Seventh International AAAI Conference on Weblogs and Social Media, [9] F. Rangel, F. Celli, P. Rosso, M. Potthast, B. Stein and W. Daelemans, Overview of the 3rd Author Profiling Task at PAN 2015, [10] E. R. D. Weren, A. U. Kauer, L. Mizusaki, V. P. Moreira, J. P. M. de Oliveira and L. K. Wives, Examining Multiple Features for Author Profiling, Journal of Information and Data Management, Vol. 5, No. 3, October [11] D. Nguyen, N. A. Smith and C. P. Rosé, Author Age Prediction from Text using Linear Regression. 42

47 [12] K. Santosh, A. Joshi, M. Gupta, V. Varma, Exploiting Wikipedia Categorization for Predicting Age and Gender of Blog Authors, [13] SAS Instutite Inc.. Machine Learning, What it is & why it matters [Online]. URL: [Stand: ] [14] D. Britz. ( ). Understanding Convolutional Neural Networks for NLP [Online]. URL: [Stand: ] [17] N. Kalchbrenner, E. Grefenstette and P. Blunsom, A Convolutional Neural Network for Modelling Sentences, arxiv: , [19] Skymind. Word2vec: Neural Word Embeddings in Java [Online]. URL: [Stand: ] [20] J. Pennington, R. Socher, C. D. Manning. GloVe: Global Vectors for Word Representation [Online]. URL: [Stand: ] [21] Quroa. How is GloVe different from word2vec? [Online]. URL: [Stand: ] [22] M. Baroni, G. Dinu and G. Kruszewski, Don t count, predict! A systematic comparison of context-counting vs. context-predicting semantic vectors. [23] A. Severyn and A. Moschitti, UNITN: Training Deep Convolutional Neural Network for Twitter Sentiment Classification, [24] NVIDIA. NVIDIA cudnn, GPU Accelerated Deep Learning [Online]. URL: [Stand: ] Bildverzeichnis [15] Deeplearning Stanford. Feature extraction using convolution [Online]. URL: [Stand: ] [16] Y. Zhang and B: Wallace, A Sensitivity Analysis of (and Practitioners Guide to) Convolutional Neural Networks for Sentence Classification

48 [18] A. Karpathy, Convolutional Neural Networks (CNNs / ConvNets) [Online]. URL: [Stand: ]

49 Abbildungsverzeichnis 2.1. Schema welches die Funktionsweise von Supervised Learning zeigt Schema welche die Funktionsweise von Unsupervised Learning zeigt Schema welche die Funktionsweise von Semi-Supervised Learning zeigt Schema welche die Funktionsweise von Reinforcement Learning zeigt Eine Convolution mit 3x3 Filter. Die linke Matrix stellt ein Bild dar, wobei 0 für schwarze Pixel und 1 für weisse Pixel stehen. Der gelbe Berech mit den roten Zahlen zeigt den Inhalt des Filters. Die rechte Matrix zeigt das Convolved Feature, also die resultierende Matrix nach Anwendung des Filters. [15] Rechts eine Matrix und links ein Bild, auf welchen ein Durchschnitts-Filter angewandt wurde. Das Bild ist somit verschwommen. [14] Rechts eine Matrix und links ein Bild, auf welchen die Kanten hervorgehoben werden. [14] Beispiel einer Formerkennung zu einem Bild mithilfe einer CNN. Oben sind die verschiedenen Schritte beschrieben. Am Ende eine Prognose was in diesem Bereich angezeigt sein könnte. [14] Architektur eines CNN für Klassifikation auf Satzebene. Hier sieht man drei Filtergrössen: 2, 3 und 4 welche je zwei Filter besitzen. Jeder Filter führt Convolutions auf der Satz- Matrix aus und generiert eine Feature-Map. Anschliessend wird ein 1-Max-Pooling über jede Map ausgeführt, es wird also die grösste Nummer jeder Feature-Map genommen. Für alle 6 Maps wird ein Feature-Vektor generiert und zu einem Vektor konkatiniert. Der letzte Softmax-Layer bekommt den Feature-Vektor als Input und nutzt ihn um die Sätze zu klassifizieren. Hier wird binäre Klassifizierung durchgeführt, deshalb gibt es am Ende zwei Output-Möglichkeiten. [16] Dargestellt ist ein Filter der Grösse 5 eingesetzt auf ein Input der Grösse 7. Der Input besitzt die Elemente S 1 bis S S, der Output die Elemente C 1 und C 5. Links wird schmale Convolution und rechts breite Convolution genutzt. [17] Stride-Sizes von 1 (links) und 2 (rechts), angewandt auf einen 1-Dimensionalen Input. [18] Maximum-Pooling bei CNNs mithilfe eines 2x2 Filters und einer Stride-Size von 2. [18] Liste von Wörtern und ihre Kosinusdistanz zu Sweden. [19] Funktionsweise von CBOW und Skip-gram. [19] Visualisierung von Ländern und Hauptstädten als Vektoren in einem Vektorraum und wie sie zueinander stehen. [19] In Frage kommende Datensätze und Korpora mit Informationen zu den Daten und der Herkunft Aufbau des Systems mit einer Veranschaulichung der Layer. [23] Aufbau und Schritte des Systems. Unten befindet sich eine Legende zu den Bedeutungen der Diagramm-Elemente Beispiel-Output am Ende von Schritt 5 für Geschlechtsauswertung Beispiel-Output am Ende von Schritt 5 Altersauswertung Scatterplot der Validation-Accuracies während des Trainings. Die blauen Punkte sind die einzelnen Accuracy Werte während den Epochen und die rote Linie ist die Trendlinie zu den Accuracy-Werten. Dieser Plot zeigt das Verhalten des Basissystems beim Trainieren von englischen Daten für eine separate Geschlechtserkennung Scatterplot der Validation-Accuracies während des Trainings. Dieser Plot zeigt das Verhalten beim Trainieren von englischen Daten für eine separate Geschlechtserkennung. Dieser Durchlauf hat 200 Epochen durchlebt

50 3.8. Scatterplot der Validation-Accuracies während des Trainings. Dieser Plot zeigt das Verhalten beim Trainieren von englischen Daten für eine separate Alterserkennung. Dieser Durchlauf hat 200 Epochen durchlebt Scatterplot der Validation-Accuracies während des Trainings. Dieser Plot zeigt das Verhalten beim Trainieren von englischen Daten für eine separate Alterserkennung. Dieser Durchlauf hat 200 Epochen durchlebt und wurde nicht mit den mehrsprachigen Word- Embeddings, sondern mit den Word-Embedding berechnet, welche nur Englisch trainiert wurden Scatterplot der Validation-Accuracies während des Trainings. Dieser Plot zeigt das Verhalten beim Trainieren von englischen Daten für eine gemeinsame Erkennung von Alter und Geschlecht. Dieser Durchlauf hat 200 Epochen durchlebt A.1. Erster Teil des Projektplans als Gantt-Diagramm I A.2. Zweiter Teil des Projektplans als Gantt-Diagramm I

51 Tabellenverzeichnis 3.1. Liste von durchgeführter Tests um die Funktionsfähigkeit des implementierten Systems zu ermitteln Ergebnisse der Testläufe des implementierten Systems mit den Grundeinstellungen Beste Ergebnisse der Testläufe des implementierten Systems mit Verbesserungen. Acc. ist die Kurzform für die Accuracy und Klassendist. die Kurzform für die Klassendistanz

52 A. Anhang A.1. Projektmanagement Dies ist der Zeitplan, welcher zu Beginn der Arbeit erstellt wurde. Abbildung A.1.: Erster Teil des Projektplans als Gantt-Diagramm. Abbildung A.2.: Zweiter Teil des Projektplans als Gantt-Diagramm. A.2. Datenträger Dies ist eine Beschreibung der Struktur sowie des Inhalts des dieser Arbeit zugehörigen Datenträgers. Bericht Finale PDF-Version LaTeX-Projekt Datensaetze author-profiling.zip (alle PAN Shared Task Trainingsdaten welche 2016 zur Verfügung gestellt wurden) I

53 Tweets.tar.gz (gewählte manuelle Aufteilung der PAN Shared Task Trainingsdaten) Dokumente Paper (alle in dieser Arbeit zitierten Paper) anleitung_amazon_ec2.txt (Anleitung für die Amazon EC2 Instanzen) Systeme (der gesamte Code aller Systeme) deep-age_gender-prediction (Das in dieser Arbeit entwickelte System sowie alle zusätzlichen Auswertungs-Scripts) deep-hashtagprediction (Vorhersage von Hashtags für Tweets mithilfe von Convolutional Sentence Embeddings) deep-qa (Klassifikation von Sentimenten für Tweets mithilfe von Convolutional Sentence Embeddings) Zubehoer Treiber (NVIDIA CuDNN, Anaconda Installationsscript) Word-Embeddings

54 BetreuerInnen: Fachgebiete: Studiengang: Zuordnung: Gruppengrösse: 2 Weiss mein Computer wie alt ich bin? [Machine Learning] BA16_ciel_2 Mark Cieliebak, ciel Stephan Neuhaus, neut Datenanalyse (DA) Information Security (IS) Software (SOW) ET / IT / WI Institut für angewandte Informationstechnologie (InIT) Kurzbeschreibung: Kann man aus dem Tastatur-Tippmuster einer Person das Geschlecht und das ungefähre Alter herausfinden? Das Tippmuster einer Person beschreibt die zeitlichen Abstände zwischen den einzelnen Tastenanschlägen, wenn die Person einen Text schreibt. So ein Tippmuster enthält eindeutige Merkmale, die wie ein Fingerabdruck fungieren und die Person eindeutig identifizieren (Biometrische Analyse). Solche Verfahren kann man einsetzen, um z.b. einen User zu authentifizieren. Die Vorteile liegen auf der Hand: Die dafür nötige Hardware (Tastatur) ist sehr günstig, und das Tippverhalten kann nicht gestohlen werden oder verloren gehen. Wir vermuten, dass man aus dem Tipp-Muster demographische Eigenschaften einer Person herausfinden kann, ohne sie vorher zu kennen. Das sind vermutlich das Geschlecht und das ungefähre Alter, aber möglicherweise auch die Muttersprache oder sogar der emotionale Zustand. Wenn es gut funktioniert,, hätte so ein System verschiedene spannende Anwendungen: man könnte Fake-Accounts auf Facebook erkennen, oder in einem Chat kontinuierlich mit einem Emoticon den Gemütszustand der Teilnehmer darstellen. In dieser Arbeit arbeiten Sie sich in die diversen Verfahren und Möglichkeiten der biometrischen Analyse des Tippverhaltens ein. Darauf aufbauend entwickeln Sie ein Software-Modul, das mit Machine Learning möglichst viele Eigenschaften eines Tippers erkennen kann (Alter, Geschlecht etc.). Um das System zu trainieren, brauchen Sie genügend viele Trainingsdaten - also Beispiele, wo Sie das Tippverhalten und die Eigenschaften des Tippers kennen. Dafür können Sie z.b. eine kleine Web- Applikation entwickeln, die Sie für die Erfassung der Trainingsdaten als auch für Experimente nutzen können. Voraussetzungen: - Java Kenntnisse - Bereitschaft sich in Machine Learning und biometrische Analyse einzuarbeiten Donnerstag 15. Oktober :43

Künstliche Intelligenz

Künstliche Intelligenz Künstliche Intelligenz Data Mining Approaches for Instrusion Detection Espen Jervidalo WS05/06 KI - WS05/06 - Espen Jervidalo 1 Overview Motivation Ziel IDS (Intrusion Detection System) HIDS NIDS Data

Mehr

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn Maschinelles Lernen: Neuronale Netze Ideen der Informatik Kurt Mehlhorn 16. Januar 2014 Übersicht Stand der Kunst im Bilderverstehen: Klassifizieren und Suchen Was ist ein Bild in Rohform? Biologische

Mehr

Proseminar - Data Mining

Proseminar - Data Mining Proseminar - Data Mining SCCS, Fakultät für Informatik Technische Universität München SS 2012, SS 2012 1 Data Mining Pipeline Planung Aufbereitung Modellbildung Auswertung Wir wollen nützliches Wissen

Mehr

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Studiengang Informatik der FH Gießen-Friedberg Sequenz-Alignment Jan Schäfer WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Überblick Einführung Grundlagen Wann ist das Merkmal der Ähnlichkeit erfüllt?

Mehr

Motivation. Themenblock: Klassifikation. Binäre Entscheidungsbäume. Ansätze. Praktikum: Data Warehousing und Data Mining.

Motivation. Themenblock: Klassifikation. Binäre Entscheidungsbäume. Ansätze. Praktikum: Data Warehousing und Data Mining. Motivation Themenblock: Klassifikation Praktikum: Data Warehousing und Data Mining Ziel Item hat mehrere Attribute Anhand von n Attributen wird (n+)-tes vorhergesagt. Zusätzliches Attribut erst später

Mehr

3. Das Reinforcement Lernproblem

3. Das Reinforcement Lernproblem 3. Das Reinforcement Lernproblem 1. Agierender Agent in der Umgebung 2. Discounted Rewards 3. Markov Eigenschaft des Zustandssignals 4. Markov sche Entscheidung 5. Werte-Funktionen und Bellman sche Optimalität

Mehr

Personalisierung. Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung. Data Mining.

Personalisierung. Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung. Data Mining. Personalisierung Personalisierung Thomas Mandl Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung Klassifikation Die Nutzer werden in vorab bestimmte Klassen/Nutzerprofilen

Mehr

Lösungsvorschlag für das Übungsblatt 1. Aufgabe 1.

Lösungsvorschlag für das Übungsblatt 1. Aufgabe 1. Lösungsvorschlag für das Übungsblatt 1. Aufgabe 1. Zusammengefasst aus Ihren Beiträgen Wie bewerten sie das System ingesamt? Das Watson System verdeutlicht den Fortschritt der Künstlichen Intelligenz Forschung/Computerlinguistik/Informatik

Mehr

Proseminar - Data Mining

Proseminar - Data Mining Proseminar - Data Mining SCCS, Fakultät für Informatik Technische Universität München SS 2014, SS 2014 1 Data Mining: Beispiele (1) Hausnummererkennung (Klassifikation) Source: http://arxiv.org/abs/1312.6082,

Mehr

Semestralklausur zur Vorlesung. Web Mining. Prof. J. Fürnkranz Technische Universität Darmstadt Sommersemester 2006 Termin:

Semestralklausur zur Vorlesung. Web Mining. Prof. J. Fürnkranz Technische Universität Darmstadt Sommersemester 2006 Termin: Semestralklausur zur Vorlesung Web Mining Prof. J. Fürnkranz Technische Universität Darmstadt Sommersemester 2006 Termin: 26. 7. 2006 Name: Vorname: Matrikelnummer: Fachrichtung: Punkte: (1).... (2)....

Mehr

Part-of-Speech- Tagging

Part-of-Speech- Tagging Part-of-Speech- Tagging In: Einführung in die Computerlinguistik Institut für Computerlinguistik Heinrich-Heine-Universität Düsseldorf WS 2004/05 Dozentin: Wiebke Petersen Tagging Was ist das? Tag (engl.):

Mehr

Ideen der Informatik. Maschinelles Lernen. Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Ideen der Informatik. Maschinelles Lernen. Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Ideen der Informatik Maschinelles Lernen Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Lernen: Begriff Beispiele für den Stand der Kunst Spamerkennung Handschriftenerkennung

Mehr

Inhalt. 2. Caffe meets Java

Inhalt. 2. Caffe meets Java Caffe-Einführung Inhalt 1. Caffe a. Installation b. Dateien eines Netzwerks c. Aufbau eines Netzwerks d. Verwendung eines Netzwerks e. Eigenes Beispiel für ein Netzwerk f. MNIST 2. Caffe meets Java Installation

Mehr

EXTRAKTION UND KLASSIFIKATION VON BEWERTETEN PRODUKTFEATURES AUF WEBSEITEN

EXTRAKTION UND KLASSIFIKATION VON BEWERTETEN PRODUKTFEATURES AUF WEBSEITEN EXTRAKTION UND KLASSIFIKATION VON BEWERTETEN PRODUKTFEATURES AUF WEBSEITEN T-SYSTEMS MULTIMEDIA SOLUTIONS GMBH, 16. FEBRUAR 2012 1. Schlüsselworte Semantic Web, Opinion Mining, Sentiment Analysis, Stimmungsanalyse,

Mehr

The process runs automatically and the user is guided through it. Data acquisition and the evaluation are done automatically.

The process runs automatically and the user is guided through it. Data acquisition and the evaluation are done automatically. Q-App: UserCal Advanced Benutzerdefinierte Kalibrierroutine mit Auswertung über HTML (Q-Web) User defined calibration routine with evaluation over HTML (Q-Web) Beschreibung Der Workflow hat 2 Ebenen eine

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Boltzmann Maschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2014 Übersicht Boltzmann Maschine Neuronale Netzwerke Die Boltzmann Maschine Gibbs

Mehr

Sentiment Analysis (SA) Robert Bärhold & Mario Sänger Text Analytics WS 2012/13 Prof. Leser

Sentiment Analysis (SA) Robert Bärhold & Mario Sänger Text Analytics WS 2012/13 Prof. Leser Sentiment Analysis (SA) Robert Bärhold & Mario Sänger Text Analytics WS 2012/13 Prof. Leser Gliederung Einleitung Problemstellungen Ansätze & Herangehensweisen Anwendungsbeispiele Zusammenfassung 2 Gliederung

Mehr

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

Friedrich-Alexander-Universität Professur für Computerlinguistik. Nguyen Ai Huong Part-of-Speech Tagging Friedrich-Alexander-Universität Professur für Computerlinguistik Nguyen Ai Huong 15.12.2011 Part-of-speech tagging Bestimmung von Wortform (part of speech) für jedes Wort in einem

Mehr

Unser Problem lässt sich relativ leicht lösen, indem wir eine so genannte Internet Suchmaschine benutzen.

Unser Problem lässt sich relativ leicht lösen, indem wir eine so genannte Internet Suchmaschine benutzen. Internet Suche 1 Ein Problem Für unsere Gruppenarbeit in Geographie wollen wir wissen, wie viel Einwohner die Stadt Moskau hat. Auch hätten wir gern eine Karte Russlands, welche die Lage der Hauptstadt

Mehr

Social Business Intelligence Text Mining und Hadoop bei DB Fernverkehr AG

Social Business Intelligence Text Mining und Hadoop bei DB Fernverkehr AG Social Business Intelligence Text Mining und Hadoop bei DB Fernverkehr AG DB Fernverkehr AG Dr.-Ing. Axel Schulz, Dr. Matthias Platho P.FMB 2, DB Fernverkehr AG Frankfurt, 22.05.2015 Motivation An meinem

Mehr

Data Mining und maschinelles Lernen

Data Mining und maschinelles Lernen Data Mining und maschinelles Lernen Einführung und Anwendung mit WEKA Caren Brinckmann 16. August 2000 http://www.coli.uni-sb.de/~cabr/vortraege/ml.pdf http://www.cs.waikato.ac.nz/ml/weka/ Inhalt Einführung:

Mehr

Text Mining Praktikum. Durchführung: Andreas Niekler Email: aniekler@informatik.uni-leipzig.de Zimmer: Paulinum (P) 818

Text Mining Praktikum. Durchführung: Andreas Niekler Email: aniekler@informatik.uni-leipzig.de Zimmer: Paulinum (P) 818 Text Mining Praktikum Durchführung: Andreas Niekler Email: aniekler@informatik.uni-leipzig.de Zimmer: Paulinum (P) 818 Rahmenbedingungen Gruppen von 2- (max)4 Personen Jede Gruppe erhält eine Aufgabe Die

Mehr

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing SE Data Cleansing Domain-independent independent Duplicate Detection Vortrag von Marko Pilop & Jens Kleine http://www.informatik.hu-berlin.de/~pilop/didd.pdf {pilop jkleine}@informatik.hu-berlin.de 1.0

Mehr

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen. Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen. Wir wollen uns heute dem Thema Variablen widmen und uns damit beschäftigen, wie sich

Mehr

Projekt Maschinelles Lernen WS 06/07

Projekt Maschinelles Lernen WS 06/07 Projekt Maschinelles Lernen WS 06/07 1. Auswahl der Daten 2. Evaluierung 3. Noise und Pruning 4. Regel-Lernen 5. ROC-Kurven 6. Pre-Processing 7. Entdecken von Assoziationsregeln 8. Ensemble-Lernen 9. Wettbewerb

Mehr

Skript 7 Kreuztabellen und benutzerdefinierte Tabellen

Skript 7 Kreuztabellen und benutzerdefinierte Tabellen Skript 7 Kreuztabellen und benutzerdefinierte Tabellen Ziel: Analysieren und verdeutlichen von Zusammenhängen mehrerer Variablen, wie z.b. Anzahlen pro Kategorien; Mittelwert und Standardabweichung pro

Mehr

Navigation anhand natürlicher Landmarken mit Hilfe der Scale Invariant Feature Transform. Thorsten Jost INF-M2 AW1 Sommersemester

Navigation anhand natürlicher Landmarken mit Hilfe der Scale Invariant Feature Transform. Thorsten Jost INF-M2 AW1 Sommersemester Navigation anhand natürlicher Landmarken mit Hilfe der Scale Invariant Feature Transform Thorsten Jost INF-M2 AW1 Sommersemester 2008 Agenda Motivation Feature Detection Beispiele Posenbestimmung in Räumen

Mehr

SCHULSPEZIFISCHEN ROLLENRECHTE

SCHULSPEZIFISCHEN ROLLENRECHTE Bei BASISDATEN > ADMINISTRATION organisieren Sie, wer SOKRATES an Ihrer Schule mit welchen Rechten nutzen kann. Außerdem können unter ADMINISTRATION mit SOKRATES intern Texte an andere Schulen geschickt

Mehr

Anwendungen der Hauptkomponentenanalyse. Volker Tresp vertreten durch Florian Steinke

Anwendungen der Hauptkomponentenanalyse. Volker Tresp vertreten durch Florian Steinke Anwendungen der Hauptkomponentenanalyse Volker Tresp vertreten durch Florian Steinke 1 Dimensionsreduktion für Supervised Learning 2 Beispiel: Kaufentscheidung 3 Verbesserte Abstandsmaße durch Hauptkomponentenanalyse

Mehr

Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig, Michael Schneider

Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig, Michael Schneider Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig, Michael Schneider Versuch: Training des XOR-Problems mit einem Künstlichen Neuronalen Netz (KNN) in JavaNNS 11.04.2011 2_CI2_Deckblatt_XORbinaer_JNNS_2

Mehr

Mit KI gegen SPAM. Proseminar Künstliche Intelligenz

Mit KI gegen SPAM. Proseminar Künstliche Intelligenz Mit KI gegen SPAM Proseminar Künstliche Intelligenz SS 2006 Florian Laib Ausblick Was ist SPAM? Warum SPAM-Filter? Naive Bayes-Verfahren Fallbasiertes Schließen Fallbasierte Filter TiMBL Vergleich der

Mehr

Stefan Engelberg (IDS Mannheim), Workshop Corpora in Lexical Research, Bucharest, Nov. 2008 [Folie 1] DWDS-Kernkorpus / DWDS corpus analysis

Stefan Engelberg (IDS Mannheim), Workshop Corpora in Lexical Research, Bucharest, Nov. 2008 [Folie 1] DWDS-Kernkorpus / DWDS corpus analysis Content 1. Empirical linguistics 2. Text corpora and corpus linguistics 3. Concordances 4. Application I: The German progressive 5. Part-of-speech tagging 6. Fequency analysis 7. Application II: Compounds

Mehr

Schriftlicher Test Teilklausur 2

Schriftlicher Test Teilklausur 2 Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Künstliche Intelligenz: Grundlagen und Anwendungen Wintersemester 2009 / 2010 Albayrak, Fricke (AOT) Opper, Ruttor (KI) Schriftlicher

Mehr

Whitepaper Bio-Mode. Quelle: http://freshideen.com/trends/bio-kleidung.html

Whitepaper Bio-Mode. Quelle: http://freshideen.com/trends/bio-kleidung.html Whitepaper Bio-Mode Quelle: http://freshideen.com/trends/bio-kleidung.html Seite 1 von 11 Wo wird über Bio-Mode diskutiert? 0,79% 0,76% 0,00% 0,56% 5,26% 9,81% 9,93% 0,15% 72,73% News Soziale Netzwerke

Mehr

Vom Leichtesten zum Schwersten Sortieralgorithmen

Vom Leichtesten zum Schwersten Sortieralgorithmen Aktivität 7 Vom Leichtesten zum Schwersten Sortieralgorithmen Zusammenfassung Häufig verwendet man Computer dazu Listen von Elementen in eine bestimmte Ordnung zu bringen. So kann man beispielsweise Namen

Mehr

Einführung in die Linguistik, Teil 4

Einführung in die Linguistik, Teil 4 Einführung in die Linguistik, Teil 4 Menschliche Sprachverarbeitung im Rahmen der Kognitionswissenschaft Markus Bader, Frans Plank, Henning Reetz, Björn Wiemer Einführung in die Linguistik, Teil 4 p. 1/19

Mehr

Fakultät für Informatik Übung zu Kognitive Systeme Sommersemester 2016

Fakultät für Informatik Übung zu Kognitive Systeme Sommersemester 2016 Fakultät für Informatik Übung zu Kognitive Systeme Sommersemester 1 M. Sperber (matthias.sperber@kit.edu) S. Nguyen (thai.nguyen@kit.edu) Übungsblatt 3 Maschinelles Lernen und Klassifikation Abgabe online

Mehr

Entwicklung einer Entscheidungssystematik für Data- Mining-Verfahren zur Erhöhung der Planungsgüte in der Produktion

Entwicklung einer Entscheidungssystematik für Data- Mining-Verfahren zur Erhöhung der Planungsgüte in der Produktion Entwicklung einer Entscheidungssystematik für Data- Mining-Verfahren zur Erhöhung der Planungsgüte in der Produktion Vortrag Seminararbeit David Pogorzelski Aachen, 22.01.2015 Agenda 1 2 3 4 5 Ziel der

Mehr

Seminar Datenbanksysteme

Seminar Datenbanksysteme Seminar Datenbanksysteme Recommender System mit Text Analysis für verbesserte Geo Discovery Eine Präsentation von Fabian Senn Inhaltsverzeichnis Geodaten Geometadaten Geo Discovery Recommendation System

Mehr

Wissenschaftliches Arbeiten

Wissenschaftliches Arbeiten Wissenschaftliches Arbeiten Andreas Schoknecht Jan Recker, Scientific Research in Information Systems A Beginner's Guide, Springer, 2013 INSTITUT FÜR ANGEWANDTE INFORMATIK UND FORMALE BESCHREIBUNGSVERFAHREN

Mehr

Vorlesungsplan. Von Naïve Bayes zu Bayesischen Netzwerk- Klassifikatoren. Naïve Bayes. Bayesische Netzwerke

Vorlesungsplan. Von Naïve Bayes zu Bayesischen Netzwerk- Klassifikatoren. Naïve Bayes. Bayesische Netzwerke Vorlesungsplan 17.10. Einleitung 24.10. Ein- und Ausgabe 31.10. Reformationstag, Einfache Regeln 7.11. Naïve Bayes, Entscheidungsbäume 14.11. Entscheidungsregeln, Assoziationsregeln 21.11. Lineare Modelle,

Mehr

Steigerung der Kundenfrequentierung in den L'TUR Reisebüros mit Hilfe von Guerilla Marketing

Steigerung der Kundenfrequentierung in den L'TUR Reisebüros mit Hilfe von Guerilla Marketing Wirtschaft Kai Hürdler Steigerung der Kundenfrequentierung in den L'TUR Reisebüros mit Hilfe von Guerilla Marketing Bachelorarbeit Steigerung der Kundenfrequentierung in den L TUR-Reisebüros mit Hilfe

Mehr

Item-based Collaborative Filtering

Item-based Collaborative Filtering Item-based Collaborative Filtering Initial implementation Martin Krüger, Sebastian Kölle 12.05.2011 Seminar Collaborative Filtering Projektplan Implementierung Ideen Wdh.: Item-based Collaborative Filtering

Mehr

Die Dokumentation kann auf einem angeschlossenen Sartorius Messwertdrucker erfolgen.

Die Dokumentation kann auf einem angeschlossenen Sartorius Messwertdrucker erfolgen. Q-App: USP V2 Bestimmung des Arbeitsbereiches von Waagen gem. USP Kapitel 41. Determination of the operating range of balances acc. USP Chapter 41. Beschreibung Diese Q-App ist zur Bestimmung des Arbeitsbereiches

Mehr

HTBL Steyr Bildkomprimierung Seite 1 von 9. Ernst Geretschläger

HTBL Steyr Bildkomprimierung Seite 1 von 9. Ernst Geretschläger HTBL Steyr Bildkomprimierung Seite von Ernst Geretschläger ernst.geretschlaeger@htl-steyr.ac.at Bildkomprimierung Mathematische / Fachliche Inhalte in Stichworten: Matrizenrechnung, diskrete Kosinustranformation

Mehr

optivo broadmail Professionelles E-Mail-Marketing Klick-Profilierung: Einfach und effektiv Zielgruppen erstellen

optivo broadmail Professionelles E-Mail-Marketing Klick-Profilierung: Einfach und effektiv Zielgruppen erstellen optivo broadmail Professionelles E-Mail-Marketing Klick-Profilierung: Einfach und effektiv Zielgruppen erstellen Inhalt 1. 2.. 4. 5. Mit Klick-Profilierung Tracking-Links taggen und verwalten.................................................................................

Mehr

Herausfinden der 'User' von eingegebenen Daten in ProMISe

Herausfinden der 'User' von eingegebenen Daten in ProMISe Herausfinden der 'User' von eingegebenen Daten in ProMISe Um herauszufinden, von welchem User bestimmte Daten eines Falles eingegeben, geändert oder gelöscht wurden, braucht man zuerst einen Filter, der

Mehr

15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten

15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten 15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten Autoren Rene Beier, MPI Saarbrücken Berthold Vöcking, RWTH Aachen In zwei Monaten startet die nächste Rakete

Mehr

Einleitung. Komplexe Anfragen. Suche ist teuer. VA-File Verfeinerungen. A0-Algo. GeVAS. Schluß. Folie 2. Einleitung. Suche ist teuer.

Einleitung. Komplexe Anfragen. Suche ist teuer. VA-File Verfeinerungen. A0-Algo. GeVAS. Schluß. Folie 2. Einleitung. Suche ist teuer. Anwendung Input: Query-Bild, Ergebnis: Menge ähnlicher Bilder. Kapitel 8: Ähnlichkeitsanfragen und ihre effiziente Evaluierung Wie zu finden? Corbis, NASA: EOS Bilddatenbank Folie Folie 2 Ähnlichkeitssuche

Mehr

Mit maschinellem Lernen erfolgreich Bilanzmanipulation erkennen

Mit maschinellem Lernen erfolgreich Bilanzmanipulation erkennen Mit maschinellem Lernen erfolgreich Bilanzmanipulation erkennen Bankingclub 2015 Webinar 5. November 2015 Dennis Weinbender Disclaimer Alle nachfolgenden Inhalte geben ausschließlich die persönliche Auffassung

Mehr

Kapitel ML: I. I. Einführung. Beispiele für Lernaufgaben Spezifikation von Lernproblemen

Kapitel ML: I. I. Einführung. Beispiele für Lernaufgaben Spezifikation von Lernproblemen Kapitel ML: I I. Einführung Beispiele für Lernaufgaben Spezifikation von Lernproblemen ML: I-8 Introduction c STEIN/LETTMANN 2005-2010 Beispiele für Lernaufgaben Autoeinkaufsberater Welche Kriterien liegen

Mehr

Theoretical Analysis of Protein-Protein Interactions. Proseminar SS 2004

Theoretical Analysis of Protein-Protein Interactions. Proseminar SS 2004 Theoretical Analysis of Protein-Protein Interactions Proseminar Virtual Screening: Predicting Pairs from Sequence Übersicht Einleitung 1.Modell: Vorhersage von Protein-Interfaces aus Sequenzprofilen und

Mehr

DecisionAdvisor Release Notes 6.4 MobileID

DecisionAdvisor Release Notes 6.4 MobileID DecisionAdvisor Release Notes 6.4 MobileID PBroker AG Nussbaumstrasse 21 3000 Bern 22 T +41 31 724 12 12 F +41 31 721 08 20 Version 1.00 Bern, 23. März 2016 Inhaltsverzeichnis 1 Einleitung... 3 2 Releasewechsel...

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision Zielsetzung: System Verwendung von Cloud-Systemen für das Hosting von online Spielen (IaaS) Reservieren/Buchen von Resources

Mehr

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Clusteranalyse. Tobias Scheffer Thomas Vanck

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Clusteranalyse. Tobias Scheffer Thomas Vanck Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Clusteranalyse Tobias Scheffer Thomas Vanck Überblick Problemstellung/Motivation Deterministischer Ansatz: K-Means Probabilistischer

Mehr

Group and Session Management for Collaborative Applications

Group and Session Management for Collaborative Applications Diss. ETH No. 12075 Group and Session Management for Collaborative Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZÜRICH for the degree of Doctor of Technical Seiences

Mehr

Das Kind weist ausreichende Fertigkeiten in der Addition und Subtraktion auf, kann also in der Regel Aufgaben wie und 70-7 richtig lösen.

Das Kind weist ausreichende Fertigkeiten in der Addition und Subtraktion auf, kann also in der Regel Aufgaben wie und 70-7 richtig lösen. Einführung Das Einmaleins wird häufig in der dritten Klasse eingeführt und entsprechend gute Kenntnisse in diesem Bereich erleichtern das Lösen vieler Aufgaben. Weiterhin wird ab der vierten Klasse das

Mehr

Name: Klasse: Standardisierte kompetenzorientierte schriftliche Reifeprüfung AHS. 18. September Englisch. Schreiben

Name: Klasse: Standardisierte kompetenzorientierte schriftliche Reifeprüfung AHS. 18. September Englisch. Schreiben Name: Klasse: Standardisierte kompetenzorientierte schriftliche Reifeprüfung AHS 18. September 2015 Englisch (B2) Schreiben Hinweise zum Beantworten der Fragen Sehr geehrte Kandidatin, sehr geehrter Kandidat!

Mehr

Bachelorarbeit Entwicklung eines Konzeptes zur angemessenen Beschriftung von Informationsobjekten

Bachelorarbeit Entwicklung eines Konzeptes zur angemessenen Beschriftung von Informationsobjekten Bachelorarbeit Entwicklung eines Konzeptes zur angemessenen Beschriftung von Informationsobjekten Institut für Informatik Rostock 1 Inhaltsübersicht 1. Einleitung und Begriffsbildung 2. Bestehende geeignete

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Clustering: Partitioniere Objektmenge in Gruppen(Cluster), so dass sich Objekte in einer Gruppe ähnlich sind und Objekte

Mehr

WEKA A Machine Learning Interface for Data Mining

WEKA A Machine Learning Interface for Data Mining WEKA A Machine Learning Interface for Data Mining Frank Eibe, Mark Hall, Geoffrey Holmes, Richard Kirkby, Bernhard Pfahringer, Ian H. Witten Reinhard Klaus Losse Künstliche Intelligenz II WS 2009/2010

Mehr

Proseminar - Data Mining

Proseminar - Data Mining Vorbesprechung Proseminar - Data Mining SCCS, Fakultät für Informatik Technische Universität München SS 2015 Vorbesprechung, SS 2015 1 Data Mining: Beispiele (1) Hausnummererkennung (Klassifikation) Source:

Mehr

Softwareschnittstellen

Softwareschnittstellen P4.1. Gliederung Rechnerpraktikum zu Kapitel 4 Softwareschnittstellen Einleitung, Component Object Model (COM) Zugriff auf Microsoft Excel Zugriff auf MATLAB Zugriff auf CATIA Folie 1 P4.2. Einleitung

Mehr

Inhaltsverzeichnis. Ramona Betschart

Inhaltsverzeichnis. Ramona Betschart 2014 3D-Klavier Autor Betreuer Luca Schafroth, Stefan Meier Institution Schweizer Jugend Forscht Ort FHNW Brugg-Windisch Datum 07.09.14 13.09.14 Inhaltsverzeichnis 1. Einführung... 2 1.1. Meine Erwartungen...

Mehr

Einführung in die linearen Funktionen. Autor: Benedikt Menne

Einführung in die linearen Funktionen. Autor: Benedikt Menne Einführung in die linearen Funktionen Autor: Benedikt Menne Inhaltsverzeichnis Vorwort... 3 Allgemeine Definition... 3 3 Bestimmung der Steigung einer linearen Funktion... 4 3. Bestimmung der Steigung

Mehr

Statistical Learning

Statistical Learning Statistical Learning M Gruber KW 45 Rev 1 1 Support Vector Machines Definition 1 (Lineare Trennbarkeit) Eine Menge Ü µ Ý µ Ü Æµ Ý Æµ R ist linear trennbar, wenn mindestens ein Wertepaar Û R µ existiert

Mehr

9 Faktorenanalyse. Wir gehen zunächst von dem folgenden Modell aus (Modell der Hauptkomponentenanalyse): Z = F L T

9 Faktorenanalyse. Wir gehen zunächst von dem folgenden Modell aus (Modell der Hauptkomponentenanalyse): Z = F L T 9 Faktorenanalyse Ziel der Faktorenanalyse ist es, die Anzahl der Variablen auf wenige voneinander unabhängige Faktoren zu reduzieren und dabei möglichst viel an Information zu erhalten. Hier wird davon

Mehr

Public-Key-Kryptographie

Public-Key-Kryptographie Kapitel 2 Public-Key-Kryptographie In diesem Kapitel soll eine kurze Einführung in die Kryptographie des 20. Jahrhunderts und die damit verbundene Entstehung von Public-Key Verfahren gegeben werden. Es

Mehr

Seminar Künstliche Intelligenz WS 2013/14 Grundlagen des Maschinellen Lernens

Seminar Künstliche Intelligenz WS 2013/14 Grundlagen des Maschinellen Lernens Seminar Künstliche Intelligenz WS 2013/14 Grundlagen des Maschinellen Lernens Martin Hacker Richard Schaller Künstliche Intelligenz Department Informatik FAU Erlangen-Nürnberg 19.12.2013 Allgemeine Problemstellung

Mehr

0 Einführung: Was ist Statistik

0 Einführung: Was ist Statistik 0 Einführung: Was ist Statistik 1 Datenerhebung und Messung 2 Univariate deskriptive Statistik 3 Multivariate Statistik 4 Regression 5 Ergänzungen Explorative Datenanalyse EDA Auffinden von Strukturen

Mehr

RapidMiner als Werkzeug für die textorientierten Geisteswissenschaften Katharina Morik

RapidMiner als Werkzeug für die textorientierten Geisteswissenschaften Katharina Morik technische universität RapidMiner als Werkzeug für die textorientierten Geisteswissenschaften Katharina Morik Name Autor Ort und Datum Informatik: Linguistik: Methoden + Verfahren Forschungsfragen, Anforderungen

Mehr

WER SIND WIR? VORTEILE.

WER SIND WIR? VORTEILE. WER SIND WIR? primaerp ist eine Startup-Abteilung von ABRA Software a.s., ein Unternehmen welches im Jahr 1991 gegründet wurde und derzeit der Leiter des ERP-Software-Markts in der Tschechischen Republik

Mehr

Bayes Klassifikatoren M E T H O D E N D E S D A T A M I N I N G F A B I A N G R E U E L

Bayes Klassifikatoren M E T H O D E N D E S D A T A M I N I N G F A B I A N G R E U E L Bayes Klassifikatoren M E T H O D E N D E S D A T A M I N I N G F A B I A N G R E U E L Inhalt Grundlagen aus der Wahrscheinlichkeitsrechnung Hypothesenwahl Optimale Bayes Klassifikator Naiver Bayes Klassifikator

Mehr

Modellfreie numerische Prognosemethoden zur Tragwerksanalyse

Modellfreie numerische Prognosemethoden zur Tragwerksanalyse Modellfreie numerische Prognosemethoden zur Tragwerksanalyse Zur Erlangung des akademischen Grades Doktor-Ingenieur (Dr.-Ing.) an der Fakultät Bauingenieurwesen der Technischen Universität Dresden eingereichte

Mehr

Companion Technologie

Companion Technologie Companion Technologie Emotionen erkennen, verstehen und kai.bielenberg@haw-hamburg.de Agenda 1. Einleitung a. Was war nochmal Companion Technologie? b. Teilbereiche c. Warum Emotionen? 2. Ansätze a. Facial

Mehr

Non-Linear! Performance Pricing! (NLPP)!! Die smarte Kostenmanagement Lösung!

Non-Linear! Performance Pricing! (NLPP)!! Die smarte Kostenmanagement Lösung! Non-Linear! Performance Pricing! (NLPP)!! Die smarte Kostenmanagement Lösung! 1 ! 1 DIE SAPHIRION MISSION:! UNSERE KUNDEN WERDEN! DURCH UNSERE SMARTEN! LÖSUNGEN KOSTENFÜHRER.!!! 2! Dank der Magie der Mathematik

Mehr

KNN-Methode zur Einschätzung von Veränderungen des Salzgehaltes in Ästuaren

KNN-Methode zur Einschätzung von Veränderungen des Salzgehaltes in Ästuaren KNN-Methode zur Einschätzung von Veränderungen des Salzgehaltes in Ästuaren Holger Rahlf; Reiner Schubert www.baw.de Künstlich Neuronales Netz Gliederung Einleitung Grundlagen Möglichkeit und Grenzen Anwendung

Mehr

Kybernetik Systemidentifikation

Kybernetik Systemidentifikation Kberneti Sstemidentifiation Mohamed Oubbati Institut für euroinformati Tel.: +49 73 / 50 2453 mohamed.oubbati@uni-ulm.de 2. 06. 202 Was ist Sstemidentifiation? Der Begriff Sstemidentifiation beschreibt

Mehr

YOUR EASY SOLUTION FOR COSTING

YOUR EASY SOLUTION FOR COSTING YOUR EASY SOLUTION FOR COSTING TECHNOLOGISCHE INNOVATION FÜR VEREINFACHUNG DER GESCHÄFTSPROZESSE Hyperlean entstand dank der gemeinsamen Intuition von 6 jungen Forschern aus dem Institut für Maschinenbau

Mehr

Kybernetik Einführung

Kybernetik Einführung Kybernetik Einführung Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 24. 04. 2012 Einführung Was ist Kybernetik? Der Begriff Kybernetik wurde im 1948

Mehr

Vertriebssteuerung & Kundenmanagement bei Finanzinstituten. 1. Dezember 2010, Frankfurt am Main

Vertriebssteuerung & Kundenmanagement bei Finanzinstituten. 1. Dezember 2010, Frankfurt am Main Vertriebssteuerung & Kundenmanagement bei Finanzinstituten 1. Dezember 2010, Frankfurt am Main Erweitern Sie Ihre Analyse auch um unstrukturierte Daten: mehr Einblicke, bessere Entscheidungen! Unsere Agenda

Mehr

5 Benutzungsoberfläche

5 Benutzungsoberfläche 5 Mit Ausnahme der in Kapitel 4.1 beschriebenen ÜNs wurde das Verfahren zur Transformation von Hauptansprüchen als JAVA-Anwendung implementiert. Die Anwendung, genannt ClaimTransformer, umfasst zusätzlich

Mehr

Tabellen und Abbildungen Dr. Z. Shi Wiss. Arbeiten

Tabellen und Abbildungen Dr. Z. Shi Wiss. Arbeiten Tabellen und Abbildungen 23.11.16 Dr. Z. Shi Wiss. Arbeiten Tree of Knowledge 1.Zweck von Tabellen & Abbildungen 2. Leitfragen 3. Regeln für Tabellen & Abbildungen 4. Tabellen 5. Abbildungen 6. Checklist

Mehr

INTELLIGENTE DATENANALYSE IN MATLAB. Objekterkennung

INTELLIGENTE DATENANALYSE IN MATLAB. Objekterkennung INTELLIGENTE DATENANALYSE IN MATLAB Objekterkennung Objekterkennung Problemstellung Gegeben: Ein Bild. Fragestellungen: Klassifikationsproblem Ist ein bestimmtes Objekt (z.b. Flugzeug) auf dem Bild? Welches

Mehr

Schwierigkeitsbestimmung von C-Test-Lücken. Lisa Beinborn Assozierte Doktorandin UKP-DIPF UKP Lab, TU Darmstadt 09 July 2013

Schwierigkeitsbestimmung von C-Test-Lücken. Lisa Beinborn Assozierte Doktorandin UKP-DIPF UKP Lab, TU Darmstadt 09 July 2013 Schwierigkeitsbestimmung von C-Test-Lücken Lisa Beinborn Assozierte Doktorandin UKP-DIPF UKP Lab, TU Darmstadt 09 July 2013 Virtualisierung vereinfacht individuelle Förderung Anpassung von Lernmaterialien

Mehr

On the List Update Problem

On the List Update Problem DISS. ETH No. 14529, 2002 On the List Update Problem A dissertation submitted to the Swiss Federal Institute of Technology, ETH Zürich for the degree of Doctor of Technical Sciences presented by Christoph

Mehr

Uta Friedrich Norbert Schuster. 30 Minuten vom Mind Mapping zum. Business Mapping

Uta Friedrich Norbert Schuster. 30 Minuten vom Mind Mapping zum. Business Mapping Uta Friedrich Norbert Schuster 30 Minuten vom Mind Mapping zum Business Mapping Inhalt Vorwort 6 1. Die Methode 8 Mind Mapping hilft Ihnen 13 Die Nachteile 15 2. Business Mapping 18 Mind Mapping am PC

Mehr

Testen und Debugging

Testen und Debugging Testen und Debugging Testklassen, Unit Tests Blackbox Test, Whitebox Test Regressionstesten Zusicherungen mit assert Debugger Informatik II: Objektorientierte SW-Entwicklung, Algorithmik, Nebenläufigkeit

Mehr

Datenvorverarbeitung von nominalen Daten für Data Mining

Datenvorverarbeitung von nominalen Daten für Data Mining Datenvorverarbeitung von nominalen Daten für Data Mining Entstanden 2004/2005 bei der T-Systems International GmbH unter Betreuung von Prof. Dr. J. Fürnkranz Seite 1 Gliederung Datenvorverarbeitung Prepared

Mehr

Recommender Systems. Stefan Beckers Praxisprojekt ASDL SS 2006 Universität Duisburg-Essen April 2006

Recommender Systems. Stefan Beckers Praxisprojekt ASDL SS 2006 Universität Duisburg-Essen April 2006 Recommender Systems Stefan Beckers Praxisprojekt ASDL SS 2006 Universität Duisburg-Essen April 2006 Inhalt 1 - Einführung 2 Arten von Recommender-Systemen 3 Beispiele für RCs 4 - Recommender-Systeme und

Mehr

Universal Search. `ljv^k. Whitepaper. Autor Peter Resele Datum 29. März 2010 Status Public

Universal Search. `ljv^k. Whitepaper. Autor Peter Resele Datum 29. März 2010 Status Public Universal Whitepaper Autor Peter Resele Datum 29. März 2010 Status Public `ljv^k=gmbh Karolingerstrasse 34a 82205 Gilching Germany t + 49 810 5779390 peter.resele@comyan.com f + 49 810 5779395 www.comyan.com

Mehr

GridMate The Grid Matlab Extension

GridMate The Grid Matlab Extension GridMate The Grid Matlab Extension Forschungszentrum Karlsruhe, Institute for Data Processing and Electronics T. Jejkal, R. Stotzka, M. Sutter, H. Gemmeke 1 What is the Motivation? Graphical development

Mehr

Der Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren:

Der Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren: Installationshinweise Z250I / Z270I Adapter IR USB Installation hints Z250I / Z270I Adapter IR USB 06/07 (Laden Sie den Treiber vom WEB, entpacken Sie ihn in ein leeres Verzeichnis und geben Sie dieses

Mehr

Regelbasierte Zufallsgenerierung von Gebäudemodellen aus Bebauungsplänen mit der Software CityEngine

Regelbasierte Zufallsgenerierung von Gebäudemodellen aus Bebauungsplänen mit der Software CityEngine Motivation Regelbasierte Zufallsgenerierung von Gebäudemodellen aus Bebauungsplänen mit der Software CityEngine Abbildung 1: 2D Gebäudeumriss Ein zweidimensionaler Gebäudeumriss, wie die Abbildung Abbildung

Mehr

Prüfungsausschuss für den Masterstudiengang Economics (M. Sc.) Bitte dieses Merkblatt vor dem Beginn der Masterarbeit durchlesen.

Prüfungsausschuss für den Masterstudiengang Economics (M. Sc.) Bitte dieses Merkblatt vor dem Beginn der Masterarbeit durchlesen. Prüfungsausschuss für den Masterstudiengang Economics (M. Sc.) MERKBLATT FÜR DIE ANFERTIGUNG EINER MASTERARBEIT Bitte dieses Merkblatt vor dem Beginn der Masterarbeit durchlesen. 1. Termine und Fristen

Mehr

IDIOMAS DESCRIPCIÓN. Federico Lahoz. Deutsch Dexway Beruflich - Niveau A2 - Kurs II

IDIOMAS DESCRIPCIÓN. Federico Lahoz. Deutsch Dexway Beruflich - Niveau A2 - Kurs II 222 IDIOMAS Deutsch Dexway Beruflich - Niveau A2 - Kurs II DESCRIPCIÓN Deutsch Dexway Beruflich - Niveau A2 - Kurs II Lernziele: Im Rahmen dieses Blocks lernt der/die Schüler/-in, sich selbst in seiner

Mehr