Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1819:phasmid:protokolle

Protokolle

29.11.2018

Wir haben zu Allererst ein Programm verfasst, mit welchem wir, via Web-Scraping, Chatlogs verschiedenster Streamer herunterladen können und somit benutzen. Schwierigkeiten traten primär auf beim formatieren des Programms und Kennenlernen des Pakets „BeautifulSoup4“. Zum Ende hin hat dies aber funktioniert und der nächste Schritt wird sein, diese Daten ordentlich zu sortieren und speichern zu können.

06.12.2018

Zum Beginn dieser Woche haben wir uns zuerst kurz theoretisch mit dem Thema der Text Analyse befasst, mit welchem sich Lucas auf Basis des Buches „Applied Text Analysis with Python“ weiter befassen wird. Außerdem haben wir einen Termin für ein gemeinsames Lernen über Machine Learning vereinbart. Ansonsten haben Arda und Paul an einer Datenstruktur für die vorher gescrapten Daten gearbeitet und einem Weg diese abzuspeichern und effektiv benutzbar zu machen. Dies ist uns zum Ende hin mit dem Paket „pickles“ gelungen, welches eine Liste mit allen Chatlogs eines Streamers über den gesamten auf der Webseite hochgeladenen Zeitraum erstellt. Ziel für die nächste Woche ist nun, mit der Textverarbeitung zu beginnen und auch die Textanalyse zu planen und gestalten.

13.12.2018

Diese Woche haben wir uns das erste mal mit Stefan getroffen um die Grundlagen des Machine Learning zu lernen um Sie später in unserem Projekt einzubauen. Zudem haben wir zuhause und zum beginn des Donnerstags die komplette Textverarbeitung fertiggestellt und in Log Dateien gepickeled. Während Lucas sich weiter mit „Applied Text Analysis with Python“ beschäftigt hat und sich über das Konzept des „bag-of-word“ aufgeklärt hat. Haben Paul und Arda den Text bereinigt von allen Sonderzeichen etc. und diese gespeichert. Einen absoluten Wortzähler eingebaut (wie häufig ist jedes wort). Danach hat Paul sich mit n grammen auseinandergesetzt. Wir haben zum schluss trigramme von seagulls chat erstellt und deren häufigkeit ausgegeben. Wobei das häufigste trigramm „seagH seagH seagH“ 105409 mal vorkam. Jedoch hat das unpickle unserer Daten relativ lange gebraucht.

20.12.2018

Nach der letzten Woche hat Paul direkt begonnen die Datenstruktur zu verbessern indem er nur noch die Nachrichten selber ohne die Timestamps und Nutzernamen speichert. Dies hat die Geschwindigkeit des Erstellens von Trigrammen und anderen Anwendungen drastisch verbessert. Danach hat Paul zudem ein Text-Generator mittels des Trigram Modells erstellt welcher zwar größtenteils Semantiklose jedoch bereits ganze Sätze ausgibt. Am Dienstag trafen wir uns zum zweiten mal für das Maschinelle Lernen und lernten diesmal Regression, Regularisierung und Klassifikation. Zudem führte uns Stefan verschiedene Modelle des Machine Lerning vor, wie das „Dropout Regularisierung Modell“ und „convolutional layers“ welche jedoch zu kompliziert sind um diese hier zu erklären. Wir haben noch die Chatlogs von Nightblue3 heruntergeladen und uns den Rest des Donnerstags mit word2vec beschäftigt. Dafür mussten wir zunächst ein Programm schreiben welches unsere existierenden Chatlogs in ein anderes Dateiformat wandelt, wie auch später erklärt. Word2Vec ist teil von gensim (ein Machine Learning Algorithmus) und wurde von Google entwickelt. Das Programm schaut sich an welche Wörter im gleichen Kontext benutzt werden. Dafür benötigt man eine Liste von Sätzen wo die Sätze als Liste von Wörtern dargestellt werden (daher auch das umwandeln unserer bereits existierenden Liste von Sätzen, wo ein Satz ein String ist, in die richtige Struktur.). Zurückgegeben wird ein Modell welches die Beziehungen der Wörter untereinander darstellen kann und auch die Darstellung mittels Vektoren zwischen Wörtern zurückgeben kann. Dieses konnten wir vollständig ausführen und planen nun nach den Ferien uns vollständig mit Machine Learning zu beschäftigen.

10.01.2019

In dieser Woche haben wir mit Stefan bei dem Machine Learning Treffen das erste mal ein Neuronales Netz gebaut und gelernt wie wir es trainieren. Deshalb haben wir heute angefangen unser Neuronales Netz zu planen. Insgesamt soll unser Neuronales Netz eine bestimmte Menge an buchstaben (zunächst 50), die den Anfang einer Nachricht bilden, übergeben bekommen und den darauf folgenden Buchstaben generieren. Dafür teilen wir zunächst unsere Nachrichten in einen Trainings-(X) sowie einen Testteil(Y) auf. Hierbei wird die Menge der X-Daten für das Trainieren des Netzwerkes diesem übergeben und die Y-Daten werden benutzt um die Vorhersagen des Modells zu testen und zu validieren. Die gesamte Umwandlung der Nachrichten in den X und Y Teil haben wir heute geschafft. Zudem hat Lucas angefangen unsere Dateien zu sortieren und hat dafür eine neue Unterstruktur innerhalb unseres Git-Verzeichnis erschaffen.

17.01.2019

Seit des letzten Eintrags hat Paul bei sich zuhause bereits unser erstes Neuronales Netz erseltt und es an einem viertel der verfügbaren Trainingsdaten trainiert. Jedoch spuckt dieses nach Programmieren eines Programms welches das Netzt anwendet nur Ausgaben wie „h o o o o o o o o o o o“ aus. Deshalb hat Paul den Rest der Zeit heute genutzt um das Neuronale Netz zu verbessern. Lucas hat heute weiter versucht den mastercleaned branch (der aufgeräumte Teil unseres Git-Verzeichnisses) aufzubauen, wobei mehrere Probleme aufgetaucht sind, wie beispielsweise Programme aus anderen Verzeichnisses zu importieren und zu verwenden, wobei alle Lösungen hierfür entweder aufwendig oder unsauber erscheinen. Zum Beispiel könnte man mit Verknüpfungen arbeiten oder oder gewisse Dateien vervielfältigen. Sicher ist jedoch, dass man für viele dieser Lösungen die Programme umschreiben müsste, was einige Geduld braucht.

24.01.2019

Diesen Dienstag haben wir mit Stefan das „Rekurente Neuronale Netzwerk“ (RNN) kennengelernt und wie man es umsetzt. Dies ist eine spezielle Art eines neuronalen Netzwerkes, welches lose gesprochen ein „Gedächtnis“ besitzt und somit besonders gut zeitliche Zusammenhänge in beispielsweise Sprache erfassen und Lernen kann. Dazu haben wir zudem eine Hausaufgabe bekommen, welche die Effizienz dieser RNNs zeigen soll. Ferner hat sich Lucas am Donnerstag mit der Organisation der Datenstruktur beschäftigt und diese zum größten Teil fertig gestellt bekommen. Außerdem haben wir die Hausaufgabe bearbeitet, welche uns auch für unser Projekt helfen kann und soll. Hierfür mussten wir zuerst Daten für einen Benchmark generieren und diese dann im Anschluss mithilfe eines Machine Learning Algorithmus testen, welcher ein besonderes Muster innerhalb der Daten erkennen und erlernen soll. Leider war die Umsetzung bisher noch nicht so erfolgreich und es wird noch einiges Fine-Tuning benötigt um ein erfolgreiches Ergebnis zu erzielen.

ws1819/phasmid/protokolle.txt · Zuletzt geändert: 2019/03/11 14:15 von erchinger