Plagiatserkennung mit Python 3 (Software)

Martin Vogel ⌂ @, Dortmund / Bochum, Tue, 15.11.2016, 17:51 (vor 2690 Tagen)

Da mein bisheriges Lieblingsplagiatserkennungsprogramm Ferret von Peter Lane von Jahr zu Jahr schwieriger ans Laufen zu bekommen ist, habe ich mir nun eine eigene Antiguttenbergsoftware in Python geschrieben.
Das Pythonskript lädt alle Textdateien eines Verzeichnisbaums (in der aktuellen Version alle auf .py endenden Dateien) ins RAM und vergleicht die Inhalte jeder Datei mit allen anderen. Zum Schluss wird eine nach Ähnlichkeit sortierte Tabelle ausgegeben und eine ebenfalls nach Ähnlichkeit sortierte HTML-Datei erzeugt, die die eingelesenen Texte gegenüberstellt.
Um die Listen nicht unsinnig lang werden zu lassen, werden nur die ersten 50 Dateipaare aufgeführt.
Als kleines Extra kann man noch beliebig viele weitere Verzeichnisbäume mit alten Dateien angeben, die nicht untereinander, sondern nur mit den anfangs ausgewählten neuen Dateien verglichen werden.
Der eigentliche Vergleichsvorgang wird durch den „SequenceMatcher“ des Moduls difflib vorgenommen. Dieser sucht in Textpaaren nach übereinstimmenden Zeichenfolgen. Dabei wird nicht stur auf binäre Gleichheit geachtet, sondern der Algorithmus versucht, Texte ähnlich zu behandeln, wie ein Mensch sie lesen würde. Dadurch entdeckt er recht schnell Plagiate in Programmieraufgaben, bei denen ein Kandidat lediglich Variablennamen ersetzt und Textkonstanten umformuliert hat. Zeichenfolgen ohne Unterscheidungskraft werden dabei gar nicht erst betrachtet, sondern als „Junk“ aussortiert.

Download: ZIP-Archiv_CEPKFMOW1.zip (2,9 kB)

Das Programm darf, Namensnennung vorausgesetzt, beliebig weiterverwendet werden.
Lizenz: CC-by-3.0 https://creativecommons.org/licenses/by/3.0/de/

[image]
Bild: Klonschaf Dolly, public domain

--
Dipl.-Ing. Martin Vogel
Leiter des Bauforums

Bücher:
CAD mit BricsCAD
Bauinformatik mit Python


gesamter Thread:

 RSS-Feed dieser Diskussion

powered by my little forum