Maison > Article > développement back-end > Techniques de prétraitement de texte en Python
Python est un langage de programmation puissant largement utilisé dans la science des données, l'apprentissage automatique, le traitement du langage naturel et d'autres domaines. Dans ces domaines, le prétraitement du texte est une étape très critique, qui peut réduire le bruit des données textuelles et améliorer la précision du modèle. Dans cet article, nous présenterons quelques techniques courantes de prétraitement de texte en Python.
1. Lire des données texte
En Python, vous pouvez utiliser la fonction open() pour lire des fichiers texte.
with open('example.txt', 'r') as f: text = f.read()
Dans cet exemple, nous ouvrons un fichier texte nommé "example.txt" et lisons son contenu. Le contenu de ce fichier texte sera stocké dans une variable chaîne nommée "text". En plus d'utiliser la fonction read(), nous pouvons également utiliser la fonction readlines() pour stocker le contenu d'un fichier texte dans une liste.
with open('example.txt', 'r') as f: lines = f.readlines()
Dans cet exemple, le contenu de "example.txt" sera stocké sous forme de liste, chaque ligne étant un élément de la liste. Ceci est utile lorsque vous travaillez avec des données textuelles à grande échelle, car plusieurs lignes de données peuvent être lues et traitées simultanément.
2. Supprimer les signes de ponctuation et les chiffres
Lors du prétraitement du texte, nous devons généralement supprimer les signes de ponctuation et les chiffres du texte. Le module re en Python fournit une fonctionnalité d'expression régulière très pratique pour gérer ces tâches.
import re text = "This is an example sentence! 12345." text = re.sub(r'[^ws]', '', text) # Remove punctuation text = re.sub(r'd+', '', text) # Remove numbers
Dans cet exemple, nous utilisons d'abord la fonction re.sub() et l'expression régulière "1" pour supprimer tous les signes de ponctuation et les espaces. Ensuite, nous utilisons la fonction re.sub() et l'expression régulière "d+" pour supprimer tous les nombres du texte. Enfin, nous stockons le texte traité dans la variable chaîne "text".
3. Segmentation de mots
La segmentation de mots fait référence à la division du texte en mots séparés. La bibliothèque nltk et la bibliothèque spaCy en Python fournissent toutes deux des outils de segmentation de mots très utiles. Ici, nous prenons la bibliothèque nltk comme exemple.
import nltk nltk.download('punkt') text = "This is an example sentence." words = nltk.word_tokenize(text)
Dans cet exemple, nous avons d'abord téléchargé le package punkt de la bibliothèque nltk, qui est une boîte à outils de segmentation de mots très populaire dans la bibliothèque nltk. Nous utilisons ensuite la fonction nltk.word_tokenize() pour diviser le texte en mots et stocker les résultats dans la liste « mots ».
4. Supprimer les mots vides
Dans le traitement de texte, il est souvent nécessaire de supprimer les mots vides courants : "est", "a", "this", etc. La bibliothèque nltk et la bibliothèque spaCy en Python fournissent également de bonnes listes de mots vides. Vous trouverez ci-dessous un exemple utilisant la bibliothèque nltk.
import nltk nltk.download('stopwords') from nltk.corpus import stopwords text = "This is an example sentence." words = nltk.word_tokenize(text) filtered_words = [word for word in words if word.lower() not in stopwords.words('english')]
Dans cet exemple, nous avons d'abord téléchargé le package de mots vides de la bibliothèque nltk et en avons importé la liste de mots vides en anglais. Nous utilisons ensuite des compréhensions de liste pour supprimer les mots vides du texte de la liste de mots. Enfin, nous obtenons une liste de mots "filtered_words" qui n'inclut pas les mots vides.
5. Stemming
Le stemming est le processus de normalisation de différentes formes de mots (telles que le temps, le singulier et le pluriel, etc.) sous la même forme. La bibliothèque nltk et la bibliothèque spaCy en Python fournissent des outils de recherche de radicaux très utiles. Ici, nous prenons également la bibliothèque nltk comme exemple.
import nltk from nltk.stem import PorterStemmer stemmer = PorterStemmer() text = "This is an example sentence." words = nltk.word_tokenize(text) stemmed_words = [stemmer.stem(word) for word in words]
Dans cet exemple, nous avons d'abord importé la classe PorterStemmer de la bibliothèque nltk. Ensuite, nous instancions un objet PorterStemmer. Ensuite, nous utilisons des compréhensions de liste pour extraire les radicaux du texte et stocker les résultats dans la liste « stemmed_words ».
6. Marquage des parties du discours
Le balisage des parties du discours est le processus de marquage des mots dans le texte dans leurs parties du discours (telles que les noms, les verbes, les adjectifs, etc.). La bibliothèque nltk et la bibliothèque spaCy en Python fournissent également des outils de balisage de parties du discours très utiles. Ici, nous prenons également la bibliothèque nltk comme exemple.
import nltk nltk.download('averaged_perceptron_tagger') text = "This is an example sentence." words = nltk.word_tokenize(text) tagged_words = nltk.pos_tag(words)
Dans cet exemple, nous avons d'abord téléchargé le package Averaged_perceptron_tagger de la bibliothèque nltk. Nous utilisons ensuite la fonction nltk.word_tokenize() pour diviser le texte en mots et stocker les résultats dans la liste « mots ». Ensuite, nous utilisons la fonction nltk.pos_tag() pour baliser les mots avec leurs parties du discours et stocker les résultats dans la liste « tagged_words ».
Résumé
Cet article présente certaines techniques de prétraitement de texte couramment utilisées en Python, notamment la lecture de données textuelles, la suppression des signes de ponctuation et des chiffres, la segmentation des mots, la suppression des mots vides, la radicalisation et le marquage de parties du discours, etc. Ces techniques sont très utiles et largement utilisées en traitement de texte. Dans les applications pratiques, nous pouvons choisir des techniques appropriées de prétraitement de texte en fonction de nos besoins afin d'améliorer l'exactitude et l'effet de nos données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!