Contenu du cours
Introduction au NLP
Introduction au NLP
Appliquer le Prétraitement du Texte en Pratique
Documents
Tout d'abord, avant de procéder à un exemple pratique de prétraitement de texte, il est important de comprendre les composants clés d'un corpus de texte : documents.
Essentiellement, chaque corpus de texte est un ensemble de documents, donc prétraiter le corpus signifie prétraiter chacun des documents.
Chargement du Corpus
Auparavant, nous avions nos corpus de texte sous forme de variables de chaîne. Cependant, dans des scénarios réels, un corpus de texte est souvent stocké dans des fichiers TXT pour les données purement textuelles ou dans des fichiers CSV avec plusieurs colonnes lorsque des données supplémentaires sont associées au texte.
Dans notre cours, nous travaillerons avec des fichiers CSV ou TXT, où chaque document commence à partir d'une nouvelle ligne. Par conséquent, nous utiliserons la fonction read_csv()
de la bibliothèque pandas
pour charger un corpus de texte à partir d'un fichier.
Voyons un exemple :
import 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)
Ici, nous lisons ce fichier TXT dans un DataFrame
. Nous définissons sep='\r'
pour utiliser le symbole de retour chariot comme séparateur, indiquant que chaque document commence sur une nouvelle ligne. Nous utilisons header=None
pour que la première ligne ne soit pas considérée comme un en-tête, et nous spécifions names=['Document']
pour nommer la seule colonne 'Document'. En conséquence, nous aurons un DataFrame
avec une seule colonne nommée 'Document' contenant 6 documents (phrases).
Prétraitement du Corpus
Pour prétraiter le corpus, commençons par créer une fonction pour prétraiter chacun des documents :
import 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
Appliquons maintenant cette fonction à notre DataFrame
pour chacun des documents et créons une colonne avec les documents nettoyés :
import 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)
Comme vous pouvez le voir, notre corpus est prétraité avec succès, nous utiliserons donc la version prétraitée de ce corpus plus tard dans le cours.
Merci pour vos commentaires !