Applicazione della Pre-Elaborazione del Testo nella Pratica
Documenti
Prima di procedere con un esempio pratico di pre-elaborazione del testo, è importante comprendere i componenti chiave di un corpus testuale: i documenti.
Un documento è un singolo testo all'interno di un corpus, ad esempio un'email in un corpus di email.
Fondamentalmente, ogni corpus testuale è un insieme di documenti, quindi la pre-elaborazione del corpus significa pre-elaborare ciascuno dei documenti.
Caricamento del Corpus
In precedenza, abbiamo utilizzato il nostro corpus testuale come variabili stringa. Tuttavia, in scenari reali, un corpus testuale è spesso memorizzato in file TXT per dati puramente testuali o in file CSV con più colonne quando sono associati dati aggiuntivi al testo.
Nel nostro corso, lavoreremo sia con file CSV che con file TXT, dove ogni documento inizia da una nuova riga. Pertanto, utilizzeremo la funzione read_csv() della libreria pandas per caricare un corpus testuale da un file.
123456import pandas as pd corpus = pd.read_csv( 'https://staging-content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) print(corpus)
Qui, leggiamo questo file TXT in un DataFrame. Impostiamo sep='\r' per utilizzare il simbolo di ritorno a capo come separatore, indicando che ogni documento inizia su una nuova riga. Usiamo header=None affinché la prima riga non venga considerata come intestazione, e specifichiamo names=['Document'] per nominare l'unica colonna 'Document'. Di conseguenza, otterremo un DataFrame con una sola colonna chiamata 'Document' contenente 6 documenti (frasi).
Preprocessing del Corpus
Per preprocessare il corpus, creiamo innanzitutto una funzione per il preprocessing di ciascun documento:
123456789101112131415161718import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc
Applichiamo ora questa funzione al nostro DataFrame per ciascun documento e creiamo una colonna con i documenti puliti:
123456789101112131415161718192021222324252627import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk import pandas as pd nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc corpus = pd.read_csv( 'https://staging-content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) corpus['Cleaned_Document'] = corpus['Document'].apply(preprocess_document) print(corpus)
Come puoi vedere, il nostro corpus è stato preprocessato con successo, quindi utilizzeremo la versione preprocessata di questo corpus più avanti nel corso.
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
Awesome!
Completion rate improved to 3.45
Applicazione della Pre-Elaborazione del Testo nella Pratica
Scorri per mostrare il menu
Documenti
Prima di procedere con un esempio pratico di pre-elaborazione del testo, è importante comprendere i componenti chiave di un corpus testuale: i documenti.
Un documento è un singolo testo all'interno di un corpus, ad esempio un'email in un corpus di email.
Fondamentalmente, ogni corpus testuale è un insieme di documenti, quindi la pre-elaborazione del corpus significa pre-elaborare ciascuno dei documenti.
Caricamento del Corpus
In precedenza, abbiamo utilizzato il nostro corpus testuale come variabili stringa. Tuttavia, in scenari reali, un corpus testuale è spesso memorizzato in file TXT per dati puramente testuali o in file CSV con più colonne quando sono associati dati aggiuntivi al testo.
Nel nostro corso, lavoreremo sia con file CSV che con file TXT, dove ogni documento inizia da una nuova riga. Pertanto, utilizzeremo la funzione read_csv() della libreria pandas per caricare un corpus testuale da un file.
123456import pandas as pd corpus = pd.read_csv( 'https://staging-content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) print(corpus)
Qui, leggiamo questo file TXT in un DataFrame. Impostiamo sep='\r' per utilizzare il simbolo di ritorno a capo come separatore, indicando che ogni documento inizia su una nuova riga. Usiamo header=None affinché la prima riga non venga considerata come intestazione, e specifichiamo names=['Document'] per nominare l'unica colonna 'Document'. Di conseguenza, otterremo un DataFrame con una sola colonna chiamata 'Document' contenente 6 documenti (frasi).
Preprocessing del Corpus
Per preprocessare il corpus, creiamo innanzitutto una funzione per il preprocessing di ciascun documento:
123456789101112131415161718import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc
Applichiamo ora questa funzione al nostro DataFrame per ciascun documento e creiamo una colonna con i documenti puliti:
123456789101112131415161718192021222324252627import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk import pandas as pd nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc corpus = pd.read_csv( 'https://staging-content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) corpus['Cleaned_Document'] = corpus['Document'].apply(preprocess_document) print(corpus)
Come puoi vedere, il nostro corpus è stato preprocessato con successo, quindi utilizzeremo la versione preprocessata di questo corpus più avanti nel corso.
Grazie per i tuoi commenti!