Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Application de la Prétraitement de Texte en Pratique | Fondamentaux du Prétraitement de Texte
Introduction au TALN

bookApplication de la Prétraitement de Texte en Pratique

Documents

Avant de passer à un exemple pratique de prétraitement de texte, il est important de comprendre les éléments clés d'un corpus textuel : les documents.

Note
Définition

Un document est une unité textuelle distincte au sein d'un corpus, par exemple, un courriel dans un corpus de courriels.

En résumé, chaque corpus textuel est un ensemble de documents, ainsi le prétraitement du corpus implique le prétraitement de chacun des documents.

Chargement du corpus

Précédemment, notre corpus de texte était constitué de variables de type chaîne de caractères. Cependant, dans des situations réelles, un corpus textuel est souvent stocké dans des fichiers TXT pour des données purement textuelles ou dans des fichiers CSV comportant plusieurs colonnes lorsque des données supplémentaires sont associées au texte.

Dans ce cours, nous travaillerons soit avec des fichiers CSV, soit avec des fichiers TXT, où chaque document commence sur une nouvelle ligne. Par conséquent, nous utiliserons la fonction read_csv() de la bibliothèque pandas pour charger un corpus textuel à partir d’un fichier.

123456
import pandas as pd corpus = pd.read_csv( 'https://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)
copy

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 afin que la première ligne ne soit pas considérée comme un en-tête, et nous spécifions names=['Document'] pour nommer l’unique colonne 'Document'. Ainsi, nous obtenons 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 de prétraitement pour chacun des documents :

123456789101112131415161718
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
copy

Appliquons maintenant cette fonction à notre DataFrame pour chaque document et créons une colonne contenant les documents nettoyés :

123456789101112131415161718192021222324252627
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://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)
copy

Comme vous pouvez le constater, notre corpus a été prétraité avec succès, nous utiliserons donc la version prétraitée de ce corpus plus tard dans le cours.

question mark

Sélectionner la sortie correcte du fragment de code suivant.

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 9

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain what each step in the preprocessing function does?

What are stop words and why are they removed?

How can I customize the preprocessing steps for my own dataset?

Awesome!

Completion rate improved to 3.45

bookApplication de la Prétraitement de Texte en Pratique

Glissez pour afficher le menu

Documents

Avant de passer à un exemple pratique de prétraitement de texte, il est important de comprendre les éléments clés d'un corpus textuel : les documents.

Note
Définition

Un document est une unité textuelle distincte au sein d'un corpus, par exemple, un courriel dans un corpus de courriels.

En résumé, chaque corpus textuel est un ensemble de documents, ainsi le prétraitement du corpus implique le prétraitement de chacun des documents.

Chargement du corpus

Précédemment, notre corpus de texte était constitué de variables de type chaîne de caractères. Cependant, dans des situations réelles, un corpus textuel est souvent stocké dans des fichiers TXT pour des données purement textuelles ou dans des fichiers CSV comportant plusieurs colonnes lorsque des données supplémentaires sont associées au texte.

Dans ce cours, nous travaillerons soit avec des fichiers CSV, soit avec des fichiers TXT, où chaque document commence sur une nouvelle ligne. Par conséquent, nous utiliserons la fonction read_csv() de la bibliothèque pandas pour charger un corpus textuel à partir d’un fichier.

123456
import pandas as pd corpus = pd.read_csv( 'https://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)
copy

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 afin que la première ligne ne soit pas considérée comme un en-tête, et nous spécifions names=['Document'] pour nommer l’unique colonne 'Document'. Ainsi, nous obtenons 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 de prétraitement pour chacun des documents :

123456789101112131415161718
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
copy

Appliquons maintenant cette fonction à notre DataFrame pour chaque document et créons une colonne contenant les documents nettoyés :

123456789101112131415161718192021222324252627
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://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)
copy

Comme vous pouvez le constater, notre corpus a été prétraité avec succès, nous utiliserons donc la version prétraitée de ce corpus plus tard dans le cours.

question mark

Sélectionner la sortie correcte du fragment de code suivant.

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 9
some-alt