Gewinner des fünften Programmierwettbewerbs

Am 1. März 2012 startete der fünfte freiesMagazin-Programmierwettbewerb. Es ging dabei nicht wie sonst um ein theoretisches Spiel, sondern um eine reale Anwendung. Gesucht wurde ein Wortwolken-Generator, der Texte einliest, die Worthäufigkeit zählt und alles als Wortwolke ausgibt. Einige Programmierwillige haben sich dieser Aufgabe gestellt.

Teilnehmer

Die Teilnahme am Wettbewerb war erwartungsgemäß geringer, da es sich um ein recht spezielles Thema handelte, wobei das eigentliche Einlesen der Dateien und Zählen auch für Programmieranfänger eine Kleinigkeit gewesen sein sollte. Die Darstellung als Wortwolke war dagegen etwas anspruchsvoller.

Insgesamt hatten sechs Teilnehmer am Wettbewerb teilgenommen, wobei einer seinen Beitrag während der Auswertung zurückgezogen hatte. Die fünf Programme sind ausschließlich in Python oder Java geschrieben.

Neben den offiziellen Abgaben gab es auch noch eine Referenzimplementierung von Dominik Wagenführ in TCL. Diese sollte als Ausgangsbasis dafür dienen, was die Programme alles können sollten.

Alle Programme inkl. der erstellten Wortwolken und der Testdaten können als Archiv heruntergeladen werden.

Bewertung

Die Bewertung sollte nach folgenden Gesichtspunkten vorgenommen werden:

  1. Geschwindigkeit des Programms (15%)
  2. Funktionsvielfalt des Programms (30%)
  3. Bedienung des Programms (25%)
  4. Aussehen der Wortwolke (30%)

Jedes Gebiet wurde in konkrete Eigenschaften aufgeteilt und diesen dann eine bestimmte Punktzahl zugeordnet. Bei voller Punktzahl hätte ein Teilnehmer auf 100 Punkte kommen können.

Die Programme der Teilnehmer wurden nach Abgabe ausgiebig getestet und vor verschiedene Testdaten gestellt, die sie analysieren mussten.

Die gesamte Liste mit der detaillierten Bewertung inkl. Begründung für die Punkte kann man als ODS-Datei herunterladen.

Die Wortwolke zu Alice

Gewinner

Mit 67 Punkten belegt somit das Programm von Steve Göring den ersten Platz, das vor allem mit einer sehr schön dargestellten Wortwolke begeistern kann. Der zweite Platz geht an das Programm von Tom Richter, welches eine hohe Funktionsvielfalt aufweist.

Die anderen drei Programme liegen alle sehr dicht beisammen. Da sie aber alle kleine Eigenheiten aufweisen, die eine unabhängige und aussagekräftige Analyse eines Textes nicht zulassen, haben wir uns entschieden, den dritten Platz unbesetzt zu lassen.

Insgesamt danken wir aber allen fünf Teilnehmern für die Teilnahme, da ohne sie kein Wettbewerb zustande gekommen wäre.

Fazit

Der Wettbewerb hat gezeigt, dass es zum einen nicht so einfach ist, dass man als Teilnehmer wirklich alle Fälle behandelt, wie der Anwender später das Programm auch nutzen könnte. Zum anderen ist die Bewertung extrem schwer gewesen, da neben den eigentlichen Anforderungen vor allem die freiwilligen Zusatzanforderungen und Features eine starke Rolle spielten.

Aus dem Grund wird der nächste Wettbewerb auch wieder einen spieltheoretischen Ansatz verfolgen, sodass am Ende des Wettbewerbs für jeden Teilnehmer eine Punktzahl errechnet wird, die klar angibt, welcher Platz erreicht wurde.

Ich habe mir nun kurz die

Ich habe mir nun kurz die Ergebnisse und auch die Codes angesehen und bin erstaunt über die sehr unterschiedlichen Ansätze. Insbesondere die Idee mit der Spirale finde ich besonders gut.
Ich möchte den Gewinnern Steve Göring und Tom Richter herzlich gratulieren! Ihr habt wirklich gute Arbeit geleistet.

Ich hätte gerne teilgenommen und hatte auch schon konkrete Umsetzungsideen/konzepte im Kopf. Allerdings war mir die Schule dann doch wesentlich wichtiger, insbesondere weil es gerade eine besonders stressige und äußerst wichtige Zeit ist.
Meine Idee wäre gewesen, die Inhalte mit Python zu suchen (und filtern etc.) und anschließend diese mit R und wordcloud zu einer Wolke verarbeiten. R braucht zwar zum Generieren lange (soll bis zu 30s dauern, womit 15% der Punkte weg wären), doch die Ergebniss können sich sehen lassen. Deshalb wundert es mich auch, dass das niemand gemacht hat. Wie das aussieht sieht man zb auf R-bloggers. Es sieht also ähnlich aus wie die Ausgabe von Steve Göring, nur eben weniger Programmieraufwand (CSV generieren, und an R übergeben).

Im Archiv kann ich übrigens keinen Output-Folder in ChristophLuder/ finden?

Re: R-Skript

Hallo sebix,

das R-Skript kannte ich bereits, nur von dieser Seite, und ich hätte es für meine Wolke gerne genutzt, nur war ich zu faul, R zu lernen. Wobei das Beispiel bei Dir ziemlich einfach aussieht und auch schnell auf mein Tcl-Skript angepasst werden können sollte. Aber es ist ja Open Source, sodass jeder herauspicken kann, was er möchte. :)

Christoph Luder hat kein Output-Verzeichnis, weil er ja keinen Output hat, sondern nur eine Abbildung. Ich habe gerade versucht, sinnvolle Screenshots zu erstellen, aber das Programm stellt die Wolke so falsch dar, dass leider kein gutes Bild entsteht.

Viele Grüße
Dominik

R-Skript

Wobei in deinem Link aber auch schon ein XML/HTML-File geladen wird, ob ich die Daten nun in ein CSV oder ein XML-File (ohne Tags?) schreibe, ist für das Datensammel-Programm egal. Der große Nachteil dieser Variante ist, dass das Ergebnis ein PNG-File ist, und kein SVG. Es wäre natürlich möglich, das PNG in SVG zu vektorisieren, aber die Textinformation ist verloren/nicht verfügbar.

Ah, ok. Ich hab nur die Python-Codes gelesen, ist einfach schöner als Java :), und diese sahen ganz nett und robust aus.

Viele Grüße,
Sebastian

Pingback

[...] vom sonstigen Schema abweichende Aufgabe ist. Insgesamt war es wie erwartet, auch wenn ich mir doch etwas mehr Teilnehmer gewünscht hätte. Von den sechs Teilnehmern wollten dann nur noch fünf an der Entscheidung [...]