Ich muss einen einfachen Spamfilter für meine Abschlussarbeit programmieren. Mein Zweck ist es, zwei verschiedene Listen zu öffnen und zu lesen, eine für Spam und eine für Ham. Der Name (cartella) ist wie Ordner in Englisch. Das Problem ist, dass wenn ich Spam drucke, es nur das erste Element des Arrays spam[0]
druckt und wenn ich die Länge drucke druckt es 1, aber es sollte 1500 drucken. Das Problem liegt in der Funktion. Ich brauche Hilfe.Python - Versuche einen einfachen Antispamfilter zu erstellen
Dies ist mein Code:
import nltk
import os
def importalista(cartella):
lista=[]
listafile=os.listdir(cartella)
for file in listafile:
f=open(cartella + file, 'r+')
lista.append(f.read())
f.close()
return lista
spam = importalista('C:\\enron1\\spam\\')
ham = importalista('C:\\enron1\\ham\\')
print(len(spam))
Da die 'return' Aussage ist in Ihrer' for' Schleife, wird Ihre Schleife immer nur für eine Iteration ausgeführt werden. Wenn Sie den 'return' aus der 'for'-Schleife entfernen, wird er zurückkommen, nachdem die for-Schleife abgeschlossen ist. – khelwood
Ihre Return-Anweisung sollte nicht eingerückt sein, oder? Jetzt kommst du zurück, nachdem du die erste Datei gelesen hast. – user1337
Vielen Dank für Ihre Antwort .. Also, wo sollte ich die Rückleitung setzen? –