python nlp stop-words spacy

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)