Я работаю в офисе одного из профессоров моего колледжа, и он поручил мне прочитать все документы классов, чтобы попытаться поймать людей, которые плагиализируют, поэтому я решил написать программу с использованием python, которая просматривает все шесть словосочетания во всех газетах, и сравнивает их, чтобы увидеть, есть ли в одной из статей более 200 подходящих фраз. Шесть словосочетаний будут, например ...Получение ошибки памяти?
Я съел картофель, и это было хорошо. Было бы:
я съел картофель и
ели картошку, и это было
картофеля и это было хорошо.
Мой код в настоящее время
import re
import glob
import os
def ReadFile(Filename):
try:
F = open(Filename)
F2=F.read()
except IOError:
print("Can't open file:",Filename)
return []
F3=re.sub("[^a-z ]","",F2.lower())
return F3
def listEm(BigString):
list1=[]
list1.extend(BigString.split(' '))
return list1
Name = input ('Name of folder? ')
Name2=[]
Name3=os.chdir("Documents")
for file in glob.glob("*txt"):
Name2.append(file)
for file in Name2:
index1=0
index2=6
new_list=[]
Words = ReadFile(file)
Words2= listEm(Words)
while index2 <= len(Words2):
new_list.append(Words2[index1:index2])
index1 += 1
index2 += 1
del Name2[0] ##Deletes first file from list of files so program wont compare the same file to itself.
for file2 in Name2:
index=0
index1=6
new_list2=[]
Words1= ReadFile(file2)
Words3= listEm(Words)
while index1 <= len(Words3):
new_list2.append(Words3[index:index1]) ##memory error
index+=1
index2+=1
results=[]
for element in new_list:
if element in new_list2:
results.append(element)
if len(results) >= 200:
print("You may want to examine the following files:",file1,"and",file2)
Я получаю ошибку памяти на
new_list2.append(Words3[index:index1])
По какой-то причине, и я не могу понять, что я делаю неправильно, я имею никогда не получал ошибку памяти в моей короткой, одной программе программирования на семестр. Спасибо за любую помощь.