Я пытаюсь написать функцию, которая помещает текстовые файлы в список, а затем итерации через файлы, чтобы найти точные и частичные копии, чтобы отсеять людей, которые, возможно, обманули, плагируя их работу. Я начинаю с использования моего списка классов и добавления .txt к их имени, чтобы найти их назначения и выполнил ли они это завершение или нет. У меня более 500 студенческих документов для чтения. С кодом, который я написал до сих пор, он буквально повторяется слово за словом в файлах .txt, поэтому я получаю WAY TOO многих «обманутых». ПОЖАЛУЙСТА ПОМОГИ.Итерация через несколько текстовых файлов и сравнение
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")
Первое, что нужно определить, что составляет обман. Поиск совпадающих слов или пар слов является плохой метрикой, потому что они могут быть довольно распространены в данной теме. Вы можете разорвать каждый документ по предложению и сравнить количество предложений между документами. Если вы хотите стать действительно умным, вы можете реализовать дистанцию редактирования, которая сравнивает количество замен, необходимых для получения от каждого предложения в одном документе к каждому предложению в другом документе. – James
Спасибо. Я хочу проверить частичный или весь плагизм. Не могли бы вы объяснить, как я мог бы перебирать строки за строкой, а не слово за словом? И что именно вы подразумеваете под «дистанцией редактирования»? таких как ряд элементов, которые можно отредактировать? –
Я работаю над некоторым кодом, который поможет вам. Все ли имена файлов документов в списке в файле roster.txt? – James