[Wikide-l] Hauptautoren

elwp at gmx.de elwp at gmx.de
Mo Mär 21 21:59:54 UTC 2005


Ulrich Fuchs:
> Am Montag, 21. März 2005 20:18 schrieb elwp at gmx.de:
> 
> > Die Hauptautoren eines Artikels bzw. ihren Anteil an der aktuellen
> > Version zu bestimmen ist sehr einfach. 
> 
> Ganz so einfach ist es leider nicht:
> > Ich habe ein kleines Skript, 
> > das genau das macht, auf Wikipedia:Hauptautoren abgelegt. Es teilt
> > die Texte in überlappende Sequenzen von 5 Wörtern auf und bestimmt
> > dann, in welcher Version diese zuerst auftraten.
> 
> Verstehe ich das richtig: Wenn ein User B in einer 5-Wort-Sequenz des
> Users A einen Tippfehler korrigiert, kriegt User B die 5 Worte komplett
> zugeschlagen?

Das kommt darauf an, ob die Sequenz von A isoliert war, oder ob daneben
auch noch Text von A stand, was wohl meistens der Fall ist. Wenn sie
isoliert war, wird die neue 5-Wort-Sequenz tatsächlich B zugeschlagen.
Wenn aber z.B. das äußerst rechte Wort der Sequenz geändert wurde und
das Wort links neben der Sequenz auch von A kommt, werden die vier
linken Wörter weiterhin A zugerechnet, weil ja immer noch eine
5-Wort-Sequenz links übereinstimmt, und weil diese Sequenz älter ist
als die rechte Sequenz.

> Wenn das so ist, kannst Du davon ausgehen, dass Dein Algorithmus in 95%
> aller Artikel ziemlich falsch liegen wird - diese Mini-Korrekturen
> stellen den Hauptteil der Änderungen in Wikipedia.

Ich glaube nicht, dass es so schlimm ist. Aber von einem so kurzen
Programm kann man natürlich kein Wunder erwarten. Eine mögliche
Verbesserung wäre, auch mit Sequenzen, die ein "Loch" in der Mitte haben,
zu arbeiten, so dass die Änderung eines einzelnen Wortes nichts
ausmacht. Der Algorithmus würde dann z.B. prüfen, ob die Wörter
n-3,n-2,n-1,n+1,n+2,n+3 übereinstimmen.

> Leider kann ich kein Perl (ich will keine Sprache können, für die man
> ein GOTO L1 braucht ;-))

Das ist kein GOTO, sondern ein Verlassen einer äußeren Schleife. Man kann
das selbstveständlich auch komplizierter programmieren.

> - drum kann ich's an Deinem Programm nicht nachvollziehen
> und 
> muss fragen, wie das mit den "überlappenden" Sequenzen funktioniert: Wenn
> Du 
> eine Sequenz von fünf Worten hast und die in der ersten Version findest,
> wie 
> gehts weiter? Hinter dem fünften Wort, oder hinter dem zweiten?

Hinter dem zweiten. Genauer gesagt läuft das in zwei Schritten ab:
Im ersten Durchgang werden alle Wörter mit der Versionsnummer markiert,
in der die Wortgruppe das erste mal auftauchte, also erst werden die Wörter
0 bis 4 geprüft und ggf. markiert, dann 1-5 etc. Im zweiten Schritt werden
die verbliebenen nicht markierten Lücken dem Autor der gerade untersuchten
Version zugeordnet, falls sie mindestens 5 Wörter lang sind. 100%ig
fehlerfrei ist das natürlich nicht. Wenn z.B. fünf verschiedene Benutzer an
einer Stelle innerhalb einer längeren Sequenz eines anderen Benutzers
jeweils ein Wort einfügen, wird das Ganze am Ende dem fünften Benutzer
zugeordnet. Aber so schlimm ist das meine ich nicht.

> > Es wäre meiner Meinung nach sinnvoll, eine Hauptautor-Funktion in
> > die Mediawiki-Software zu integrieren. Die Versionsgeschichten sind
> > mittlerweile völlig unübersichtlich und zu diesem Zweck nicht mehr
> > zu gebrauchen.
> 
> Bei Artikeln mit langen Versionsgeschichten 100% ACK. (Bei kurzen gehts
> noch). Ich glaube aber behaupten zu können, dass auch automatisierte
> Verfahren da an die Grenzen kommen - die Fragmente, die man Autoren
> zuweisen kann, werden zu kleinteilig.

Was heißt kleinteilig? Ich gehe davon aus, dass eine Sequenz von fünf
Wörtern innerhalb eines Artikels selten genug auftritt um sie dem
"Erstautor" zuschreiben zu können.

> Dein Ansatz, alle Versionsgeschichten anzukucken, hat übrigens Vor- und 
> Nachteile. Der große Vorteil ist, dass Dir auf die Art
> Vandalismusgeschichten/Reverts etc. nichts ausmachen. Der Nachteil ist,
> dass Du immer alle Versionen durchkucken musst, wenn Du die
> Hauptautoren für eine neue Version rechnen willst: Das dürfte
> ziemlich aufwändig werden, gerade bei den Monsterhistorie-Artikeln.

Wenn man das tatsächlich in die Mediawiki-Software integrieren wollte,
bräuchte man einfach nur das Wortsequenzverzeichnis mit abzuspeichern.
Das dürfte dann nur unwesentlich länger sein als die fünffache Größe der
aktuellen Version, wenn man davon ausgeht, dass nicht ständig Text
gelöscht und neuer hinzugefügt wird (also nur geeignet für Artikel, nicht
etwa für "Ich brauch Hilfe" u. dgl.). Bei Artikelaktualisierungen
kommen dann eben neue Wortsequenzen hinzu. Alte Versionen des
Wortsequenzverzeichnisses braucht man nicht zu speichern, weil jeder
Sequenz eh die Versionsnummer ihres ersten Auftretens zugeordnet wird, so
dass man ohne Weiteres auch ältere Versionen untersuchen kann.

> Mein Algorithmus rechnet jedesmal nur die 
> Deltas von einer Version zur nächsten, weil er je Version weiß, von
> welchem 
> Autor welche Textstelle ist. Nachteil dabei ist, dass er bei jeder 
> Komplettlöschung von Textstellen und anschließender Neueinstellung durch 
> einen Dritten (Vandalismusreverts!) versagt. 

Das ist ja nicht so toll. :-)

> Ich umgehe das Problem folgendermaßen (zweiter Vorteil meines Ansatzes, 
> wenngleich etwas umständlich zu bedienen): Ich habe eine spezielle 
> Kopierfunktion zwischen Artikeln (statt Copy- und Paste). Die schleppt
> die Autorenattribute des kopierten Textes in den neuen Artikel mit
> rüber - wieder etwas GNU FDL konformer. Und kann natürlich auch zum
> Kopieren zwischen Versionen benutzt werden, sprich für (bei mir
> hoffentlich nur selten notwendig werdende) Vandalismus-Reverts.

Mit meiner Methode würde das etwa so funktionieren (das Skript müsste man
noch leicht ändern): Wenn etwas von Artikel A nach B kopiert wurde, muss
man nur die Wortsequenzverzeichnisse von A und B vereinigen und dann die
aktuelle Version von B mit dem Gesamtverzeichnis auswerten. Im Prinzip
könnte man auch die aktuelle Version von B mit dem Gesamtverzeichnis der
ganzen Wikipedia auswerten, nur dass bei einer so großen Textmenge
5-Wort-Sequenzen wohl nicht mehr so einmalig sind. Aber wenn man weiß oder
annimmt, dass von einigen Artikeln zusammenkopiert wurde, ist das kein
Problem, wenn man sich auf diese beschränkt. Insofern ist mein Programm
noch flexibler als deines.

Mich würde natürlich interessieren, ob unsere Programme ein
vergleichbares Ergebnis liefern. Könntest du evtl. mal eine Auswertung
für einige Artikel irgendwo veröffentlichen? Und bitte nicht nur die
Rangfolge der Autoren angeben, sondern auch irgendein quantitatives Maß.
Und man muss die Seiten in der Wikipedia komplett exportieren können, bei
Seiten mit sehr vielen Versionen geht das manchmal nicht.

-- 
DSL Komplett von GMX +++ Supergünstig und stressfrei einsteigen!
AKTION "Kein Einrichtungspreis" nutzen: http://www.gmx.net/de/go/dsl