Ich versuche, von Stoppwörtern einer Reihe von Text zu entfernen zu entfernen:Schneller Weg Stoppwörter in Python
from nltk.corpus import stopwords
text = 'hello bye the the hi'
text = ' '.join([word for word in text.split() if word not in (stopwords.words('english'))])
Ich bin die Verarbeitung 6 mil solcher Strings so die Geschwindigkeit wichtig ist. Profiling mein Code, der langsamste Teil ist die Zeilen oben, gibt es eine bessere Möglichkeit, dies zu tun? Ich denke daran, etwas wie Regex re.sub
zu verwenden, aber ich weiß nicht, wie man das Muster für eine Reihe von Wörtern schreibt. Kann mir jemand eine Hand geben und ich bin auch froh, andere möglicherweise schnellere Methoden zu hören.
Hinweis: Ich habe versucht, jemand schlägt vor, stopwords.words('english')
mit set()
zu wickeln, aber das machte keinen Unterschied.
Vielen Dank.
Wie groß ist 'stopwords.words ('english')'? –
@SteveBarnes Eine Liste von 127 Wörtern – mchangun
hast du es in Listenverständnis oder außerhalb verpackt? try add stw_set = set (stopwords.words ('english')) und benutze stattdessen dieses Objekt – alko