Bauforum-Logo

Offenes Forum Bauingenieurwesen

log in | registrieren

zurück zum Forum
  Mix-Ansicht

Plagiatserkennung mit Python 3 (Software)

verfasst von Martin Vogel Homepage E-Mail, Dortmund / Bochum, 15.11.2016, 17:51 Uhr

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: [image]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

Heute schon programmiert? Einführung in Python 3 (PDF)

antworten
 



gesamter Thread:

zurück zum Forum
  Mix-Ansicht
Offenes Forum Bauingenieurwesen | Kontakt | Impressum
8411 Postings in 3999 Threads, 1063 registrierte User, 33 User online (0 reg., 33 Gäste)
powered by my little forum  RSS-Feed  ^
map | new