Stop Words
Scorri per mostrare il menu
Le stop words sono parole comuni che di solito non contribuiscono al significato di una frase, almeno per quanto riguarda la maggior parte delle analisi e degli algoritmi. Queste includono parole come "the", "is", "in" e "on".
Le stop words vengono tipicamente filtrate dopo la tokenizzazione per i compiti di NLP, come l'analisi del sentiment, il topic modeling o l'estrazione di parole chiave. La motivazione alla base della rimozione delle stop words è quella di ridurre la dimensione del dataset, migliorando così l'efficienza computazionale, e di aumentare la rilevanza dell'analisi concentrandosi sulle parole che portano un significato significativo.
Rimozione delle Stop Words con NLTK
Per semplificare il processo, nltk fornisce un elenco completo di stop words in più lingue, facilmente accessibile e utilizzabile per filtrare le stop words dai dati testuali.
Ecco come ottenere l'elenco delle stop words inglesi in NLTK e convertirlo in un set:
1234567import nltk from nltk.corpus import stopwords # Download the stop words list nltk.download('stopwords') # Load English stop words stop_words = set(stopwords.words('english')) print(stop_words)
Convertire questa lista in un set migliora l'efficienza delle ricerche, poiché la verifica della presenza di un elemento in un set è più veloce rispetto a una lista.
Tenendo presente questo, esaminiamo un esempio completo su come filtrare le stop word da un testo dato:
1234567891011121314import nltk from nltk.tokenize import word_tokenize from nltk.corpus import stopwords nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) text = "This is an example sentence demonstrating the removal of stop words." text = text.lower() # Tokenize the text tokens = word_tokenize(text) # Remove stop words filtered_tokens = [word for word in tokens if word not in stop_words] print("Original Tokens:", tokens) print("Filtered Tokens:", filtered_tokens)
Come si può vedere, è necessario prima scaricare le stop words ed eseguire la tokenizzazione. Il passo successivo consiste nell'utilizzare una list comprehension per creare una lista contenente solo i token che non sono stop words. L'uso di word.lower() nella clausola if è fondamentale per convertire ogni parola (token) in minuscolo, poiché nltk contiene le stop words esclusivamente in minuscolo.
In alternativa, si potrebbe utilizzare un normale for loop invece di una list comprehension; tuttavia, l'uso della list comprehension in questo caso è più efficiente e conciso.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione