Tutoriels PNL Partie -I des bases à l'avancement

Nœud source: 1581227

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 :

Nettoyage des données | Tutoriels PNL
                                                                                  Source : locale

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()))
minuscules | Tutoriels PNL
                                                                                           Source : locale

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.

Suppression de la ponctuation
                                                                                                 Source : locale

string.punctuation renvoie une chaîne contenant toutes les ponctuations.

Ponctuation | Tutoriels PNL
                                                                                               Source : locale

Suppression de la ponctuation à l'aide de expressions régulières:

Supprimer la ponctuation
                                                                                                 Source : locale

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))
Mots vides Suppression
                                                                                          Source : locale

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
La correction orthographique
                                                                        Source : locale

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()]))
Stemming
Source : locale

"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.

Lemmatisation
                                                                                                 Source : locale

Lemmatiser l'ensemble de données.

Lemmatisation 2 | Tutoriels PNL
                                                                                                   Source : locale

É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)
Fréquence des mots dans les données
                                                                                                 Source : locale

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()
Nuage de mots | Tutoriels PNL
                                                             Source : locale
  • 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/

Horodatage:

Plus de Analytique Vidhya