Ich versuche, eine Funktion zu schreiben, die Textdateien in eine Liste einfügt und dann durch die Dateien iteriert, um exakte und teilweise Kopien zu finden, um Leute auszusondern, die durch Plagarisierung ihrer Arbeit betrogen haben könnten. Ich beginne damit, meine Klassenliste zu verwenden und .txt zu ihrem Namen hinzuzufügen, um ihre Zuordnungen zu finden und ob sie die Zuweisung sogar abgeschlossen haben oder nicht. Ich habe über 500 Schülerarbeiten zu lesen. Mit dem Code, den ich bisher geschrieben habe, wird er wortwörtlich innerhalb der .txt-Dateien wiederholt, so dass ich zu viele "Betrogene" zurückbekomme. Bitte helfen.Iterieren durch mehrere Textdateien und Vergleichen
def Cheaters():
file = open("roster.txt", "r")
L = []
for i in file:
new = [i[:-1], ".txt"]
new2 = "".join(new)
if i not in L:
L.append(new2)
for j in L:
try:
file2 = open(j, "r")
for n in file2:
for m in file2:
if n == m:
print("Cheated")
except:
print("No work submitted")
Die erste Sache ist zu definieren, was Betrug ausmacht. Das Finden übereinstimmender Wörter oder Wortpaare ist eine schlechte Metrik, da diese innerhalb eines bestimmten Themas sehr häufig vorkommen. Möglicherweise möchten Sie jedes Dokument nach Satz aufteilen und vergleichen, wie viele Sätze zwischen Dokumenten geteilt werden. Wenn Sie wirklich clever werden möchten, können Sie eine Bearbeitungsentfernung implementieren, die vergleicht, wie viele Ersetzungen von jedem Satz in einem Dokument zu jedem Satz in einem anderen Dokument erforderlich sind. – James
Vielen Dank. Ich möchte nach Pluralismus suchen. Können Sie mir bitte erklären, wie ich Zeile für Zeile statt Wort für Wort iterieren könnte? Auch was genau meinst du mit "Entfernung bearbeiten?" wie eine Reihe von Elementen, die bearbeitet werden können? –
Ich arbeite an einem Code, um Ihnen zu helfen. Sind alle Dokumentdateinamen in einer Liste in roster.txt enthalten? – James