2017-09-01 4 views
0

Ich möchte Stoppwörter aus einem Satz entfernen. Ich habe dieses Stück Code: ‚‘Entfernen Sie Stoppwörter aus den Sätzen

splitted = text.split() 

for index, word in enumerate(splitted): 
    if word in self.stopWords: 
     del splitted[index] 

text = " ".join(splitted) 

Stoppwörter mit diesem Befehl aktualisiert werden self.stopWords.update(['.', ',', "\"", "\'", '?', '!', ':', ';', '(', ')', '[', ']', '{', '}', '),', '],', '},', '",', "',", '")', '"]', '"}', "-", "--", '\".', "\'.", '/', ').', '-', '--', '%', '°\'', '(-', '("', '."', '.),', ');', '–', '$', 'a']) aber zum Beispiel der Buchstaben ‚a‘, wie oder ‚;‘ wird nicht aus dem Satz gelöscht.

Was würde ich tun?

+1

löscht nicht aus einer Liste, während durch sie iterieren. Erstelle stattdessen eine neue und filtere – MooingRawr

+1

Deine 'self.stopWords' enthält ** Zeichen ** statt ** Wörter **, denke über den Unterschied zwischen beiden nach – stovfl

Antwort

1

Ich denke, es ist einfacher Liste Verständnis zu verwenden (oder Generator Ausdruck, wie ich hier zu tun):

' '.join(w for w in text.split() if w not in stop_words) 
Verwandte Themen