Samstag, 11. Februar 2012


Artikel

September 2004 | Artikel

Die Suche nach der verlorenen Quelle

(Link zum Artikel: http://www.entwickler.de/jaxenter//000609)

Werkzeug zur Bekämpfung des Plagiatproblems im Internet

Text: von Andre Eversmann, Ulrich Reus, Willi Nüßer
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Mit der zunehmenden Verfügbarkeit von Dokumenten im Internet hat insbesondere an Hochschulen das Plagiatproblem drastisch an Bedeutung gewonnen. Die Möglichkeit, über Suchmaschinen passende Texte zu finden und diese z.B. durch Copy and Paste in eigene Texte zu übernehmen, vereinfacht das Erstellen eigener Ausarbeitungen. Unterbleibt dann die korrekte Quellenangabe, so wird dies leicht als Verstoß gegen die Kriterien wissenschaftlichen Arbeitens angesehen. Für Hochschulen und Dozenten ist es deshalb im Interesse der redlich arbeitenden Studierenden sinnvoll, ein Werkzeug zur Erkennung von solchen Plagiaten an die Hand zu bekommen.

Im Internet-Zeitalter taucht mit steigender Tendenz die Verbreitung von Texten ohne oder mit vermeintlich falschen Quellenangaben auf. Durch das Internet ist eine Möglichkeit geschaffen worden, mit geringem technischen und zeitlichen Aufwand Texte über Suchmaschinen wie Google zu finden und zu übernehmen [1].
Gerade im Hochschulbereich sind ganz oder teilweise gefälschte Diplom- oder Doktorarbeiten zu einem ernsten Problem geworden [2]. Die Dozenten sind natürlich an schnellen und einfachen Werkzeugen interessiert, die zu gegebenen Texten potenzielle Quellen finden können. Die Endbewertung, ob es sich bei dem vorgegebenen Text wirklich um ein Plagiat handelt, braucht von diesem Werkzeug nicht geleistet werden.
Wir haben, um aus dieser Not eine Tugend zu machen, ein Softwarepaket entwickelt, das sich mit dem Internet der gleichen Quelle bedient, wie sie vermutlich auch bei der originären Quellenfindung verwendet wurden. Die entwickelte Lösung basiert auf einem API zu einem Web Service der Suchmaschine Google. Mittels dieses Web Service lassen sich automatisiert Suchanfragen an Google richten, mit der Gewissheit, die Ergebnisse in einer definierten Form zu erhalten.

Zu dem Web Service ist ein API beigestellt, das einen Wrapper um die zugrunde liegende SOAP- und XML-Ebene darstellt. Das API stellt Methoden zur Verfügung, die intern die Verarbeitung in SOAP Messages übernehmen. Unser Nutzer-Frontend besteht aus einer einfachen dynamischen Website, die mit JSP auf Tomcat-Basis realisiert ist. Über das Nutzer-Frontend werden die Daten eingegeben, aus denen die Suchanfragen und asynchron an die Such-Engine, hier Google, gesendet werden.
Nach Analyse der Ergebnisse wird dem Nutzer per E-Mail das Ergebnis zugestellt. In dem E-Mail werden die gefundenen Internet-Adressen aufgelistet. Auf die Verwendung von Tomcat als Servlet Engine wird in diesem Artikel nicht weiter eingegangen. Für Informationen verweisen wir auf [3]. Das Interface zum Google-API wird in einem Erklärungskasten kurz vorgestellt (Listing 1). Referenzen zum Google-API sind zu finden unter [4]. Wir konzentrieren uns hier auf Fragen der Anwendungslogik. Die beiden wesentlichen Aspekte der Plagiatsuche sind die Aufbereitung des zu überprüfenden Textfragmentes und der Algorithmus zur Quellenerkennung.

Listing 1
Verwendete Klassen und Methoden des Google-API

  1. GoogleSearch
  2. doSearch()
  3. setKey()
  4. set LanguageRestricts()
  5. setQueryString()
  6. GoogleSearchFault
  7. GoogleSearchResult
  8. getResultElements()
  9. getEstimatedTotalResultCount()
  10. GoogleSearchResultElement
  11. getURL()
Aufbereitung des zu überprüfenden Textfragmentes
Für die Übergabe an das Google-API müssen die zu untersuchenden Textfragmente zunächst aufbereitet werden. Ein größeres Textfragment als Einheit direkt der Suchmaschine zu geben bringt sicherlich kaum Ergebnisse. Schon kleinste Änderungen am Textfragment lassen die Suche ergebnislos bleiben. Zu diesen einfachen Änderungen zählen Variationen in Rechtschreibung und Grammatik, Silbentrennung und neue deutsche Rechtschreibung. Gerade solchen Variationen galt die besondere Aufmerksamkeit bei der Entwicklung der Algorithmen des Softwarepaketes. Ein weiterer Nachteil der direkten Übergabe größerer Textfragmente ist die Tatsache, dass solche nicht zwingend einer einzigen Quelle zuzuordnen sind. In den meisten Fällen entstehen Texte aus unterschiedlichen Quellen [2] und eigenen Formulierungen.
Deshalb ist es sinnvoll, das Textfragment in kleinere Teile zu zerlegen. Nur dann sind sinnvolle Ergebnisse aus der Suche zu erwarten. Bei der Zerlegung lassen sich grundsätzlich zwei Ansätze verfolgen:
  • Die Satzstruktur (z.B. Kommata etc.) gibt die Zerlegung vor.
  • Die Zerlegung wird unabhängig von der grammatikalischen Form durch Bildung gleichgroßer Bruchstücke (z.B. fünf Wörter) durchgeführt.
Wir verwenden im Folgenden nur die zweite Form, da das Google-API in der momentanen Form nur die ersten zehn Wörter einer Phrase verarbeitet. Das Textfragment wird in seine einzelnen Wörter zerlegt und diese dann zu Phrasen konstanter Länge zusammengefasst. Diese Phrasenpictureung kann entweder sequenziell oder geschachtelt geschehen. Der Anwender kann die Länge der erzeugten Suchphrasen auf der Eingangsmaske einschränken.
Algorithmus zur Quellenerkennung
Bei dem von uns entwickelten Algorithmus wird zuerst das Anführungszeichen (") aus dem eingegebenen Textfragment herausgefiltert. Die dann erzeugten Suchphrasen verwenden dieses Zeichen, um wie bei der manuellen Suche eine Suche nach Wortgruppen bei Google anzustoßen.

Das Google-API akzeptiert derzeit eine Obergrenze von maximal zehn Wörtern pro Phrase. Sinnvoll erscheint es aber auch, die Untergrenze für die Anzahl der Wörter je Phrase auf mindestens drei einzuschränken. Phrasen mit weniger als drei Wörtern, sprich Einwort- oder Zweiwortphrasen, erzeugen in der Regel zu viele und ungenaue Suchergebnisse, da der Charakter solcher Phrasen nicht selektiv genug ist. In Versuchen und Tests hat sich diese Annahme bestätigt.
Nach Abschluss der Phrasenpictureung werden die Phrasen einzeln und nacheinander an die Suchmaschine weitergegeben. Die Suche kann auch auf eine vom Nutzer vorgegebene Sprache eingegrenzt werden, um so die Qualität der Ergebnisse zu verbessern. Die Einschränkung kann allerdings nur auf die von dem Google-API zur Verfügung gestellten Sprachen vorgenommen werden.

Als Antwort erhält man von der Suchmaschine pro Phrase einen Satz von derzeit maximal s = zehn Quellen. Für einen Text, der in k Fragmente zerlegt wurde, kann dieses Verfahren also eine Matrix aus eben k Spalten und maximal k*s Zeilen erzeugen. Diese Matrix muss nun ausgewertet werden. Dazu wird versucht, in der Matrix die Quellen (URLs) zu identifizieren, die zu mehreren benachbarten Suchphrasen gefunden wurden.
Ist zum Beispiel ein in 20 Phrasen gegliederter Text zur Hälfte aus zwei Quellen entnommen, so wird es kaum Quellen geben, die sowohl zu den Phrasen 1-10 als auch zu den Phrasen 11-20 gefunden wurden. Um signifikante URLs zu erkennen, verwenden wir als erste Näherung ein 3 aus 5-Kriterium. Eine URL muss also innerhalb von fünf aufeinander folgenden Phrasen mindestens dreimal vorkommen, um als Quelle des zugrunde liegenden Textabschnittes in Frage zu kommen. Alle URLs, die dieses Kriterium erfüllen, werden als Ergebnis, also als potenzielle Quelle, zurückgegeben. Alle anderen werden als Zufallstreffer bewertet und verworfen.
Erfüllt keine URL dieses 3 aus 5-Kriterium, kann davon ausgegangen werden, dass Google den entsprechenden Abschnitt nicht in seinem Datenbestand hat. Man kann aus diesem Ergebnis natürlich nicht den Schluss ziehen, dass zu diesem Abschnitt keine Quelle existiert. Google umfasst in seinem Datenbestand längst nicht alle verfügbaren Texte, auch nicht alle elektronischen. Solange der Plagiatsverdacht weiterhin besteht, bleibt in so einem Fall nur noch eine manuelle Recherche.
Ergebnisse der Anwendung
In unseren Tests analysierten wir verschiedenartige Dokumententypen: von hochgradig verbreiteten RFCs bis hin zu nur singulär vorkommenden Dokumenten. Die Ergebnisse, d.h. die Übereinstimmung der gelieferten Quellen mit den tatsächlichen, überraschten sehr positiv. Wir konnten in der Regel auch die Quellen von zusammengesetzten Texten identifizieren. Als Beispiel kann eine dpa-(Deutsche Presse-Agentur-)Meldung [5] dienen, deren sequenzielle respektive geschachtelte Zerlegung in Listing 2 respektive 3 zu sehen ist. Die Abpictureung 2 zeigt die erhaltenen Ergebnisse. Zu beachten ist dabei, dass die dpa ihre Meldungen nicht im Internet verfügbar macht.

Neben dem hier vorgestellten Softwarepaket gibt es natürlich noch kommerzielle Anbieter, die ebenfalls an diesem Thema arbeiten und Lösungen bereitstellen. Zu diesen Anbietern zählen Turnitin [6] und Essay Verification Engine [7]. Mit diesen beiden Anbietern wurde auch eine erste kleine Benchmark durchgeführt, um unsere Anwendung zu testen. Die Ergebnisse unserer Anwendung konnten dabei überzeugen und mit den Profis mithalten.

Listing 2
Sequenzielle Phrasenpictureung am Beispiel der dpa-Meldung [2]
  1. 1. "Stockholm (dpa) - Zum dritten"
  2. 2. "Mal nach 1937 und 1939"
  3. 3. "hat sich Litauen in souveräner"
  4. 4. "Manier den Titel eines Basketball-Europameisters"
  5. 5. "geholt. Der Olympia-Dritte aus dem"
  6. 6. "nur drei Millionen Einwohner zählenden"
  7. 7. "Land schlug in einem spannenden"
  8. 8. "Finale der 33. EM in"
  9. 9. "Stockholmer «Globen» Spanien mit 93:84"
  10. 10. "(40:31). Litauen trat damit die"
  11. 11. "Nachfolge des bereits im Viertelfinale"
  12. 12. "von Spanien entthronten Titelverteidigers Serbien"
  13. 13. "und Montenegro an. Die schon"
  14. 14. "zum vierten Mal in einem"
  15. 15. "EM-Finale gescheiterten Spanier müssen damit"
  16. 16. "weiter auf ihren ersten kontinentalen"
  17. 17. "ihren ersten kontinentalen Titel warten."

Listing 3
Geschachtelte Phrasenpictureung am Beispiel der dpa-Meldung [2]
  1. 1. "Stockholm (dpa) - Zum dritten"
  2. 2. "(dpa) - Zum dritten Mal"
  3. 3. "- Zum dritten Mal nach"
  4. 4. "Zum dritten Mal nach 1937"
  5. 5. "dritten Mal nach 1937 und"
  6. 6. "Mal nach 1937 und 1939"
  7. 7. "nach 1937 und 1939 hat"
  8. 8. "1937 und 1939 hat sich"
  9. 9. "und 1939 hat sich Litauen"
  10. 10. "1939 hat sich Litauen in"
  11. 11. "hat sich Litauen in souveräner"
  12. 12. "sich Litauen in souveräner Manier"
  13. 13. "Litauen in souveräner Manier den"
  14. 14. "in souveräner Manier den Titel"
  15. 15. "souveräner Manier den Titel eines"
  16. 16. "Manier den Titel eines Basketball-Europameisters"
  17. 17. "den Titel eines Basketball-Europameisters geholt."
  18. 18. "Titel eines Basketball-Europameisters geholt. Der"
  19. 19. "eines Basketball-Europameisters geholt. Der Olympia-Dritte"
  20. 20. "Basketball-Europameisters geholt. Der Olympia-Dritte aus"
  21. 21. "geholt. Der Olympia-Dritte aus dem"
  22. 22. "Der Olympia-Dritte aus dem nur"
  23. 23. "Olympia-Dritte aus dem nur drei"
  24. 24. "aus dem nur drei Millionen"
  25. 25. "dem nur drei Millionen Einwohner"
  26. 26. "nur drei Millionen Einwohner zählenden"
  27. 27. "drei Millionen Einwohner zählenden Land"
  28. 28. "Millionen Einwohner zählenden Land schlug"
  29. 29. "Einwohner zählenden Land schlug in"
  30. 30. "zählenden Land schlug in einem"
  31. 31. "Land schlug in einem spannenden"
  32. 32. "schlug in einem spannenden Finale"
  33. 33. "in einem spannenden Finale der"
  34. 34. "einem spannenden Finale der 33."
  35. 35. "spannenden Finale der 33. EM"
  36. 36. "Finale der 33. EM in"
  37. 37. "der 33. EM in Stockholmer"
  38. 38. "33. EM in Stockholmer «Globen»"
  39. 39. "EM in Stockholmer «Globen» Spanien"
  40. 40. "in Stockholmer «Globen» Spanien mit"
  41. 41. "Stockholmer «Globen» Spanien mit 93:84"
  42. 42. "«Globen» Spanien mit 93:84 (40:31)."
  43. 43. "Spanien mit 93:84 (40:31). Litauen"
  44. 44. "mit 93:84 (40:31). Litauen trat"
  45. 45. "93:84 (40:31). Litauen trat damit"
  46. 46. "(40:31). Litauen trat damit die"
  47. 47. "Litauen trat damit die Nachfolge"
  48. 48. "trat damit die Nachfolge des"
  49. 49. "damit die Nachfolge des bereits"
  50. 50. "die Nachfolge des bereits im"
  51. 51. "Nachfolge des bereits im Viertelfinale"
  52. 52. "des bereits im Viertelfinale von"
  53. 53. "bereits im Viertelfinale von Spanien"
  54. 54. "im Viertelfinale von Spanien entthronten"
  55. 55. "Viertelfinale von Spanien entthronten Titelverteidigers"
  56. 56. "von Spanien entthronten Titelverteidigers Serbien"
  57. 57. "Spanien entthronten Titelverteidigers Serbien und"
  58. 58. "entthronten Titelverteidigers Serbien und Montenegro"
  59. 59. "Titelverteidigers Serbien und Montenegro an."
  60. 60. "Serbien und Montenegro an. Die"
  61. 61. "und Montenegro an. Die schon"
  62. 62. "Montenegro an. Die schon zum"
  63. 63. "an. Die schon zum vierten"
  64. 64. "Die schon zum vierten Mal"
  65. 65. "schon zum vierten Mal in"
  66. 66. "zum vierten Mal in einem"
  67. 67. "vierten Mal in einem EM-Finale"
  68. 68. "Mal in einem EM-Finale gescheiterten"
  69. 69. "in einem EM-Finale gescheiterten Spanier"
  70. 70. "einem EM-Finale gescheiterten Spanier müssen"
  71. 71. "EM-Finale gescheiterten Spanier müssen damit"
  72. 72. "gescheiterten Spanier müssen damit weiter"
  73. 73. "Spanier müssen damit weiter auf"
  74. 74. "müssen damit weiter auf ihren"
  75. 75. "damit weiter auf ihren ersten"
  76. 76. "weiter auf ihren ersten kontinentalen"
  77. 77. "auf ihren ersten kontinentalen Titel"
  78. 78. "ihren ersten kontinentalen Titel warten."
Fazit
Es wurde eine relativ einfache Anwendung vorgestellt, die auf Java und der Open-Source-Plattform Tomcat aufsetzt und es mit geringem Aufwand ermöglicht, Plagiate aufzudecken. Die guten Ergebnisse des hier vorgestellten Plagiatsuchwerkzeuges sind sicherlich zum großen Teil auf die hohe Qualität der zugrunde liegenden Suchmaschine von Google zurückzuführen. Eine mögliche Weiterentwicklung der Anwendung ist in verschiedene Richtungen vorstellbar:
  • Optimierung der Kommunikation mit der Suchmaschine
  • verfeinerte Auswertemechanismen der Ergebnismatrix
  • Erweiterung zu einem eigenständigen Web Service. Hier bietet sich ganz natürlich ein Aufsetzen auf der Axis-Plattform [8] an
Andre Eversmann studierte an der Fachhochschule der Wirtschaft (FHDW) in Paderborn Wirtschaftsinformatik und ist nun bei der HUK-Coburg als Entwickler und Systemverwalter tätig.

Ulrich Reus ist - nach einigen Jahren bei Oracle - nun Professor für Informatik an der FHDW.
Willi Nüßer ist Inhaber der Heinz-Nixdorf-Stiftungsprofessur an der FHDW. Zuvor war er im SAP LinuxLab tätig.

Die Autoren danken der Heinz-Nixdorf-Stiftung für die großzügige Unterstützung im Umfeld dieser Arbeit.


Links und Literatur

Kommentare

Gravatar FunThomas 15.11.2008
um 12:02 Uhr
Scheint ja ein nettes Tool zu sein aber wo findet man denn den Quelltext bzw. das Archiv oder Binary? #zitieren