J'ai décidé d'écrire une série d'articles expliquant tous les concepts de base aux concepts avancés de la PNL en utilisant python. Donc, si vous voulez apprendre la PNL en la lisant et en la codant, ce sera une série d'articles parfaite pour vous.
Toute personne nouvelle ou nulle en PNL peut commencer avec nous et suivre cette série d'articles.
Bibliothèques utilisées: Keras, Tensorflow, Scikit learn, NLTK, Gant, etc.
Tous les sujets seront expliqués à l'aide de codes de python et de frameworks populaires d'apprentissage en profondeur et d'apprentissage automatique, tels que sci-kit learn, Keras et TensorFlow.
Qu'est-ce que la PNL?
Le traitement du langage naturel est une partie de l'informatique qui permet aux ordinateurs de comprendre le langage naturellement, comme le fait une personne. Cela signifie que l'ordinateur portable comprendra les sentiments, la parole, répondra aux questions, résumera le texte, etc. Nous ne parlerons pas beaucoup de son histoire et de son évolution. Si vous êtes intéressé, préférez ceci lien.
Étape 1 Nettoyage des données
Les données de texte brutes arrivent directement après que les différentes sources ne sont pas nettoyées. Nous appliquons plusieurs étapes pour nettoyer les données. Les données de texte non nettoyées contiennent des informations inutiles qui dévient des résultats, c'est donc toujours la première étape pour nettoyer les données. Certaines techniques de prétraitement standard doivent être appliquées pour rendre les données plus propres. Les données nettoyées empêchent également le surajustement des modèles.
Dans cet article, nous verrons les sujets suivants sous le traitement de texte et l'analyse exploratoire des données.
Je convertis les données textuelles brutes en une trame de données pandas et j'exécute diverses techniques de nettoyage des données.
import pandas as pd text = ['Ceci est l'ARTICLE SUR LES TÂCHES PNL écrit par ABhishek Jaiswal** ','Dans cet article, je vais vous expliquer diverses techniques de NETTOYAGE DE DONNÉES', 'Alors restez à l'écoute pour en savoir plus &&','Non Je ne pense pas qu'il aille à l'USF, il vit dans les environs'] df = pd.DataFrame({'text':text})
Sortie :
Minuscules
Procédé lower()
convertit tous les caractères majuscules en minuscules et renvoie.
Application lower()
méthode utilisant la fonction lambda
df['lower'] = df['text'].apply(lambda x: " ".join(x.lower() for x in x.split()))
Suppression de la ponctuation
Suppression de la ponctuation(*,&,%#@#()
) est une étape cruciale puisque la ponctuation n'ajoute aucune information ou valeur supplémentaire à nos données. Par conséquent, la suppression de la ponctuation réduit la taille des données ; par conséquent, il améliore l'efficacité de calcul.
Cette étape peut être effectuée à l'aide de la méthode Regex ou Replace.
string.punctuation
renvoie une chaîne contenant toutes les ponctuations.
Suppression de la ponctuation à l'aide de expressions régulières:
Suppression des mots d'arrêt
Mots qui apparaissent fréquemment dans les phrases et n'ont pas de sens significatif dans les phrases. Ceux-ci ne sont pas importants pour la prédiction, nous supprimons donc les mots vides pour réduire la taille des données et éviter le surapprentissage. Remarque : Avant de filtrer les mots vides, assurez-vous de mettre les données en minuscules, car nos mots vides sont en minuscules.
En utilisant la bibliothèque NLTK, nous pouvons filtrer nos mots vides de l'ensemble de données.
# !pip install nltk import nltk nltk.download('stopwords') from nltk.corpus import stopwords allstopwords = stopwords.words('english') df.lower.apply(lambda x: " ".join(i pour i in x .split() si je ne suis pas dans tous les mots vides))
La correction orthographique
La plupart des données textuelles extraites dans les avis des clients, les blogs ou les tweets présentent des risques de fautes d'orthographe.
La correction des fautes d'orthographe améliore la précision du modèle.
Il existe différentes bibliothèques pour corriger les fautes d'orthographe, mais la méthode la plus pratique consiste à utiliser un blob de texte.
Procédé correct()
fonctionne sur les objets blob de texte et corrige les fautes d'orthographe.
#Installer la bibliothèque textblob ! pip installer textblob à partir de textblob importer TextBlob
tokenization
La tokenisation consiste à diviser le texte en mots unitaires significatifs. Il existe des tokenizers de phrases ainsi que des tokenizers de mots.
Le tokenizer de phrase divise un paragraphe en phrases significatives, tandis que le tokenizer de mot divise une phrase en mots unitaires significatifs. De nombreuses bibliothèques peuvent effectuer la tokenisation comme SpaCy, NLTK et TextBlob.
Fractionner une phrase sur l'espace pour obtenir des mots unitaires individuels peut être compris comme une tokenisation.
import nltk mystring = "Mon animal préféré est le chat" nltk.word_tokenize(mystring)
machaîne.split(" ")
sortie:
['mon', 'favori', 'animal', 'est', 'chat']
Stemming
Le radicalisme consiste à convertir les mots en leur mot racine en utilisant un ensemble de règles quel que soit leur sens. C'est à dire,
- "poisson", "poissons" et "pêche" sont issus de "poisson".
- « jouer », « joué », « jouer » sont dérivées de « jouer ».
- La racine aide à réduire le vocabulaire, améliorant ainsi la précision.
Le moyen le plus simple d'effectuer un stemming est d'utiliser NLTK ou une bibliothèque TextBlob.
NLTK fournit diverses techniques de stemming, c'est-à-dire Snowball, PorterStemmer ; différentes techniques suivent différents ensembles de règles pour convertir les mots en leur mot racine.
importer nltk depuis nltk.stem importer PorterStemmer st = PorterStemmer() df['text'].apply(lambda x:" ".join([st.stem(word) pour mot dans x.split()]))
"article" est dérivé de "articl
","lives
" — -> "live
" .
Lemmatisation
La lemmatisation consiste à convertir les mots en leur racine en utilisant la cartographie du vocabulaire. La lemmatisation se fait à l'aide d'une partie du discours et de son sens ; par conséquent, il ne génère pas de mots racines dénués de sens. Mais la lemmatisation est plus lente que le stemming.
- "Bien», « mieux," ou "les meilleurs" est lemmatisé en "Bien" .
- La lemmatisation convertira tous les synonymes en un seul mot racine. c'est à dire "automobile","fournisseur"," camion"," véhicules» sont lemmatisés en « automobile ».
- La lemmatisation donne généralement de meilleurs résultats.
C'est à dire. leafs
Destiné à. feuilles tiges à leav
tout en leafs
, leaves
lemmatisé à leaf
La lemmatisation peut être effectuée à l'aide de NLTK, bibliothèque TextBlob.
Lemmatiser l'ensemble de données.
Étape 2 Analyse exploratoire des données
Jusqu'à présent, nous avons vu les différentes techniques de prétraitement de texte qui doivent être effectuées après avoir obtenu les données brutes. Après avoir nettoyé nos données, nous pouvons maintenant effectuer une analyse exploratoire des données et explorer et comprendre les données textuelles.
Fréquence des mots dans les données
Compter les mots uniques dans nos données donne une idée des termes les plus fréquents et les moins fréquents de nos données. Souvent, nous laissons tomber les commentaires les moins fréquents pour rendre notre formation de modèle plus généralisée.
nltk
fournit Freq_dist
class pour calculer la fréquence des mots, et il prend un sac de mots en entrée.
all_words = [] pour la phrase dans df['processed'] : all_words.extend(sentence.split())
all_words
Contient tous les mots disponibles dans notre ensemble de données. Nous l'appelons souvent vocabulaire.
importer nltk nltk.Freq_dist(all_words)
Cela montre le mot comme clé et le nombre d'occurrences dans nos données comme valeur.
Mot nuage
Wordcloud est la représentation picturale de la fréquence des mots de l'ensemble de données. WordCloud est plus facile à comprendre et donne une meilleure idée de nos données textuelles.
Les
bibliothèque wordcloud
Créons un nuage de mots en quelques lignes de code.
importation de bibliothèques :
à partir de wordcloud importer WordCloud à partir de wordcloud importer STOPWORDS importer matplotlib.pyplot en tant que plt
Nous pouvons dessiner un nuage de mots en utilisant du texte contenant tous les mots de nos données.
mots = [] pour le message dans df['processed'] : mots.extend([mot pour mot dans message.split() si le mot n'est pas dans STOPWORDS]) wordcloud = WordCloud(largeur = 1000, hauteur = 500).generate( " ".join(words)) plt.imshow(wordcloud, interpolation='bilinéaire') plt.axis("off") plt.show()
background_color = 'white'
en utilisant ce paramètre, nous pouvons changer la couleur de fond du nuage de mots.collocations = False
Le garder sur False ignorera les mots de collocation. Les collocations sont ces mots qui sont formés par ces mots qui se produisent ensemble. C'est-à-dire faire attention, devoirs, etc.- Nous pouvons ajuster la hauteur et la largeur en utilisant les paramètres.
Notes : Avant de créer le nuage de mots, supprimez toujours les mots vides.
Notes de fin
Dans cet article, nous avons vu diverses techniques nécessaires au prétraitement des données textuelles. Après le nettoyage des données, nous avons effectué une analyse exploratoire des données à l'aide d'un nuage de mots et créé une fréquence de mots.
Dans le deuxième article de cette série, nous aborderons les sujets suivants :
Source : https://www.analyticsvidhya.com/blog/2022/01/nlp-tutorials-part-i-from-basics-to-advance/
- "
- &
- Qui sommes-nous
- Tous
- selon une analyse de l’Université de Princeton
- autour
- article
- sur notre blog
- disponibles
- Sac de mots
- Basics
- blogue
- Appelez-nous
- chances
- Change
- Nettoyage
- le cloud
- code
- Codage
- commentaires
- Informatique
- ordinateurs
- données
- l'analyse des données
- l'apprentissage en profondeur
- différent
- Ne fait pas
- Goutte
- efficace
- Anglais
- etc
- évolution
- Prénom
- Fixer
- suivre
- générer
- obtention
- aider
- aide
- Histoire
- Accueil
- HTTPS
- idée
- important
- l'amélioration de
- individuel
- d'information
- IT
- en gardant
- keras
- ACTIVITES
- langue
- portatif
- APPRENTISSAGE
- apprentissage
- lemmatisation
- Bibliothèque
- machine learning
- Fabrication
- moyenne
- modèle
- PLUS
- nlp
- Payer
- Populaire
- prédiction
- fournit
- Python
- raw
- les données brutes
- en cours
- réduire
- remplacer
- Résultats
- Retours
- Avis
- Sciences
- Série
- set
- Taille
- So
- Space
- Commencer
- rester
- Potence
- parlant
- techniques
- tensorflow
- ensemble
- tokenization
- Les sujets
- Formation
- tutoriels
- us
- d'habitude
- Plus-value
- des mots
- vos contrats
- X
- zéro