Archiv der Kategorie: IT

Vorher, nachher, H5P

Der H5P Content Type Hub steht in den Startlöchern, und selbst einen „Inhaltstyp“ zu erstellen, ist gar nicht so kompliziert. Dokumentation zum Einstieg gibt existiert, und auch ein Video. Ich habe mir den freien Quelltext von Juxtapose geschnappt, und mit ein wenig Drumherum von mir gibt es bereits ein funktionieren neuen Inhaltstyp für H5P. Ich werde noch Fehler ausmerzen, den Code noch aufräumen und die Benutzeroberfläche etwas anpassen, und dann erwartet euch so etwas hier …

Wer es gar nicht mehr erwarten kann, darf sich natürlich wie gewohnt auch bereits bei github bedienen

Der kleine Maschinenlerningenieur

Am 22. Januar habe ich mit dem Abschlussprojekt für meine „Machine Learning Engineer Nanodegree“-Fortbildung bei Udacity begonnen. Am Dienstag habe ich abgegeben, und am Mittwoch hatte ich bereits die Bestätigung: Passt! Viel Rückmeldung gab es diesmal leider nicht. Für mich sah es so aus, als wäre die begutachtende Person nur mal drüber geflogen. Gerade da ich von vorne bis hinten beim Abschlussprojekt alles selbst gemacht habe, hätte ich mich über Verbesserungsvorschläge und Hinweise auf Wissenslücken jenseits meiner eigenen Erkenntnis gefreut. Schade.

Lernkurven aus einem Projekt zum Maschinenlernen

Eine Visualisierung einiger meiner Ergebnisse

Ich habe nun nachträglich noch ein wenig gefeilt und einen Report als Mischung meiner schriftlichen Ausarbeitung und meines Quelltextes erstellt. Letzterer wäre definitiv noch überarbeitungsbedürftig, aber für Udacity scheint es gereicht zu haben. Falls ihr reinschauen wollt, findet ihr den Report zum Herunterladen und alle weiteren Inhalte wie bereits von Anfang an auf github.

Weiter geht’s übrigens direkt mit dem Kurs „Maschinelles Lernen“ vom Hasso-Plattner-Institut. Und nun habe ich auch wieder Zeit für H5P …

Mein Abschlussprojekt zum Maschinenlernen … Los geht’s!

Nachdem ich Ende letzten Jahres zwei Wochen Urlaub dafür genutzt hatte, um Zeit für die „Machine Learning Engineer“-Fortbildung bei Udacity zu investieren, ging es danach deutlich langsamer voran. Es war schwieriger als gedacht, ein Thema für mein Abschlussprojekt zu finden. Ich hatte ja auch hier etwas dazu geschrieben. Datensätze gibt es im Netz genug, aber ich wollte an etwas arbeiten, was auch jemand gebrauchen könnte.

Tatsächlich hätte ich für OpenSNP an einem Modell arbeiten können, um anhand von Genomdaten die Herkunft einer Person zu bestimmen, aber dafür kenne ich mich dann mit Biologie doch zu wenig aus. Danach hatte ich Kontakt zu jemandem, der die Problemlösungskompetenz von Studierenden untersucht und auch zahlreiche Daten dazu gesammelt hatte. Seinen Artikel habe ich dank Sci-Hub … per Zufall gefunden. Die Daten lagen allerdings unter Verschluss. Closed Science. Ich sollte erst einmal meinen Lebenslauf schicken, vermutlich um zu prüfen, ob da ein böser Konkurrenzforscher seine Arbeit „stehlen“ wolle. Habe ich verschickt, aber danach nie wieder etwas gehört und auch nicht nachgebohrt. So ein Umfeld meide ich doch lieber … Was soll’s.

Analysesoftware auf einem Laptop

Da der Gebührenzähler unerbittlich tickt, habe ich mich dazu entschlossen, doch einfach ein Wald-und-Wiesen-Thema zu nehmen. Ich habe ein paar Datensätze zu Videospielen gefunden und werde versuchen, damit etwas auf die Beine zu stellen. Vielleicht ist es möglich, darauf aufbauend ein Model zu erstellen, mit dem man anhand von Kritiker- und Kundenbewertungen und ein paar anderen Daten die Verkaufszahlen vorhersagen kann. Der von mir eingereichte Vorschlag ist jedenfalls gerade angenommen worden, und ich kann nun loslegen.

Als Nebenprodukt ist außerdem noch eine weitere Projektidee für H5P (und darüber hinaus) entstanden, die allerdings den Rahmen eines Abschlussprojektes sprengen würde. Werde ich im Nachgang angehen. Offen. Mehr dazu gibt es in Kürze.

Make H5P fuzzy and fluffy!

Just before we were able to eventually say Goodbye to ugly 2016, I visited the 33rd Chaos Communication Congress in Hamburg. One evening, I chatted with a physicist. He asked me whether it was possible to use something like fuzzy answers with clozes in H5P.  It wasn’t. But indeed, this might come in handy. Thanks for sharing the idea! Such a feature would be pretty neat in order to forgive typos. It could also be useful for accepting different spellings of names without explicitly stating all possible alternatives.

Well, what do you think I did after I returned home? 😉 As always, I cannot promise a date for a release. The guys over at Joubel are busy working on other cool new stuff for H5P and will have to find some time first for checking my contribution. Anyway, if you’re impatient („Patience is for wimps!„), you can get the code from github. Please note that you will also need the new library H5P.TextUtilities that I created to source some functions that may also be relevant for other interactivities.

Tech Talk

I simply used two common string metrics: (Damerau-)Levenshtein distance and Jaro(-Winkler) distance.

The Levenshtein distance uses the number of operations necessary to transform one string into the other. Operations are deleting, inserting or exchanging a character. Damerau added swapping a character to the pool of operations. Consequently, the few operations you need for a transformation, the more similar the strings are.

The Jaro distance on the other hand „simply“ represents the similarity in percent. Winkler refined the algorithm a little bit for particular cases. I also found a paper from 2012 that suggests a more general improvement. Well, I need something to explore in the future, right? 😉

The users of H5P can, of course, use the options to tweak both algorithms a little bit. It’s hard to say in advance what the maximum number of operations for Damerau-Levenshtein or the minimum threshold for Jaro-Winkler should be. Also, the options might change. I just noticed that a discussion started whether an on/off switch might be more user friendly. Gotta go!