python - Añadir/eliminar palabras de parada con spacy
nlp stop-words (4)
¿Cuál es la mejor manera de agregar / eliminar palabras vacías con spacy? Estoy usando la función token.is_stop
y me gustaría hacer algunos cambios personalizados en el conjunto. Estaba mirando la documentación pero no pude encontrar nada acerca de las palabras clave. ¡Gracias!
Para 2.0 usa lo siguiente:
for word in nlp.Defaults.stop_words: lex = nlp.vocab[word] lex.is_stop = True
Para la versión 2.0 usé esto:
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
Esto carga todas las palabras de parada en un conjunto.
Puede modificar sus palabras de parada a STOP_WORDS
o usar su propia lista en primer lugar.
Puedes editarlos antes de procesar tu texto de esta manera (consulta esta publicación ):
>>> 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
Nota: Esto parece funcionar <= v1.8. Para las versiones más recientes, ver otras respuestas.
Usando Spacy 2.0.11, puede actualizar su conjunto de palabras clave usando uno de los siguientes:
Para agregar una sola palabra de parada:
import spacy
nlp = spacy.load("en")
nlp.Defaults.stop_words.add("my_new_stopword")
Para agregar varios stopwords a la vez:
import spacy
nlp = spacy.load("en")
nlp.Defaults.stop_words |= {"my_new_stopword1","my_new_stopword2",}
Para eliminar una sola palabra de parada:
import spacy
nlp = spacy.load("en")
nlp.Defaults.stop_words.remove("whatever")
Para eliminar varios stopwords a la vez:
import spacy
nlp = spacy.load("en")
nlp.Defaults.stop_words -= {"whatever", "whenever"}
Nota: para ver el conjunto actual de palabras clave, use:
print(nlp.Defaults.stop_words)