Was ist der beste Weg, Stoppwörter mit Abstand hinzuzufügen oder zu entfernen? Ich verwende die token.is_stop
-Funktion und möchte einige benutzerdefinierte Änderungen am Set vornehmen. Ich habe mir die Dokumentation angesehen, konnte aber nichts zu Stoppwörtern finden. Vielen Dank!
Sie können sie vor der Bearbeitung Ihres Textes wie folgt bearbeiten (siehe diesen Beitrag ):
>>> import spacy
>>> nlp = spacy.load("en")
>>> nlp.vocab["the"].is_stop = False
>>> nlp.vocab["definitelynotastopword"].is_stop = True
>>> sentence = nlp("the Word is definitelynotastopword")
>>> sentence[0].is_stop
False
>>> sentence[3].is_stop
True
Anmerkung: Dies scheint zu funktionieren <= v1.8. Für neuere Versionen siehe andere Antworten.
Mit Spacy 2.0.11 können Sie den Satz der Stoppwörter mit einer der folgenden Methoden aktualisieren:
So fügen Sie ein einzelnes Stoppwort hinzu:
import spacy
nlp = spacy.load("en")
nlp.Defaults.stop_words.add("my_new_stopword")
So fügen Sie mehrere Stoppwörter gleichzeitig hinzu:
import spacy
nlp = spacy.load("en")
nlp.Defaults.stop_words |= {"my_new_stopword1","my_new_stopword2",}
So entfernen Sie ein einzelnes Stoppwort:
import spacy
nlp = spacy.load("en")
nlp.Defaults.stop_words.remove("whatever")
So entfernen Sie mehrere Stoppwörter auf einmal:
import spacy
nlp = spacy.load("en")
nlp.Defaults.stop_words -= {"whatever", "whenever"}
Hinweis: Um die aktuellen Stoppwörter anzuzeigen, verwenden Sie:
print(nlp.Defaults.stop_words)
Für Version 2.0 habe ich Folgendes verwendet:
from spacy.lang.en.stop_words import STOP_WORDS
print(STOP_WORDS) # <- set of Spacy's default stop words
STOP_WORDS.add("your_additional_stop_Word_here")
for Word in STOP_WORDS:
lexeme = nlp.vocab[Word]
lexeme.is_stop = True
Dadurch werden alle Stoppwörter in einen Satz geladen.
Sie können Ihre Stoppwörter in STOP_WORDS
ändern oder an erster Stelle Ihre eigene Liste verwenden.
Für 2.0 verwenden Sie Folgendes:
for Word in nlp.Defaults.stop_words:
Lex = nlp.vocab[Word]
Lex.is_stop = True
Dies sammelt auch die Stoppwörter :)
spacy_stopwords = spacy.lang.en.stop_words.STOP_WORDS