Le traitement du langage naturel est un aspect de l'apprentissage automatique qui vous permet de traiter des mots écrits dans un langage convivial. Ces textes deviennent alors modifiables et vous pouvez exécuter des algorithmes de calcul dessus à votre guise.

La logique derrière cette technologie captivante semble complexe mais ne l'est pas. Et même maintenant, avec une solide maîtrise de la programmation Python de base, vous pouvez créer un nouveau traitement de texte DIY avec la boîte à outils du langage naturel (NLTK).

Voici comment démarrer avec NLTK de Python.

Qu'est-ce que NLTK et comment ça marche ?

Écrit avec Python, NLTK propose une variété de fonctionnalités de manipulation de chaînes. Il s'agit d'une bibliothèque polyvalente en langage naturel avec un vaste référentiel de modèles pour diverses applications en langage naturel.

Avec NLTK, vous pouvez traiter des textes bruts et en extraire des caractéristiques significatives. Il propose également des modèles d'analyse de texte, des grammaires basées sur des fonctionnalités et de riches ressources lexicales pour créer un modèle de langage complet.

instagram viewer

Comment configurer NLTK

Tout d'abord, créez un dossier racine du projet n'importe où sur votre PC. Pour commencer à utiliser la bibliothèque NLTK, ouvrez votre terminal dans le dossier racine que vous avez créé précédemment et créer un environnement virtuel.

Ensuite, installez la boîte à outils du langage naturel dans cet environnement en utilisant pépin:

pip installer nltk

NLTK, cependant, propose une variété d'ensembles de données qui servent de base à de nouveaux modèles de langage naturel. Pour y accéder, vous devez lancer le téléchargeur de données intégré NLTK.

Ainsi, une fois que vous avez installé NLTK avec succès, ouvrez votre fichier Python à l'aide de n'importe quel éditeur de code.

Importez ensuite le nltk module et instanciez le téléchargeur de données à l'aide du code suivant:

pip installer nltk
nltk.download()

L'exécution du code ci-dessus via le terminal fait apparaître une interface utilisateur graphique pour sélectionner et télécharger des packages de données. Ici, vous devrez choisir un forfait et cliquer sur le bouton Télécharger bouton pour l'obtenir.

Tout paquet de données que vous téléchargez va dans le répertoire spécifié écrit dans le Télécharger le répertoire champ. Vous pouvez changer cela si vous le souhaitez. Mais essayez de conserver l'emplacement par défaut à ce niveau.

En rapport: Les meilleurs éditeurs de code gratuits pour écrire votre première application

Noter: Les packages de données sont ajoutés aux variables système par défaut. Ainsi, vous pouvez continuer à les utiliser pour des projets ultérieurs, quel que soit l'environnement Python que vous utilisez.

Comment utiliser les tokeniseurs NLTK

En fin de compte, NLTK propose des modèles de tokenisation entraînés pour les mots et les phrases. En utilisant ces outils, vous pouvez générer une liste de mots à partir d'une phrase. Ou transformez un paragraphe en un tableau de phrases sensé.

Voici un exemple d'utilisation du NLTK word_tokenizer:

importer nltk
de nltk.tokenize importer word_tokenize
word = "Ceci est un exemple de texte"
tokenWord = word_tokenizer (mot)
imprimer (tokenWord)
Sortir:
['Ceci', 'est', 'un', 'exemple', 'texte']

NLTK utilise également un tokenizer de phrase pré-entraîné appelé PunktSentenceTokenizer. Cela fonctionne en fragmentant un paragraphe dans une liste de phrases.

Voyons comment cela fonctionne avec un paragraphe de deux phrases:

importer nltk
de nltk.tokenize importer word_tokenize, PunktSentenceTokenizer
phrase = "Ceci est un exemple de texte. Ceci est un tutoriel pour NLTK"
jeton = PunktSentenceTokenizer()
tokenized_sentence = token.tokenize (phrase)
imprimer (tokenized_sentence)
Sortir:
['Ceci est un exemple de texte.', 'Ceci est un tutoriel pour NLTK']

Vous pouvez encore segmenter chaque phrase du tableau généré à partir du code ci-dessus en utilisant word_tokenizer et Python pour la boucle.

Exemples d'utilisation de NLTK

Ainsi, bien que nous ne puissions pas démontrer tous les cas d'utilisation possibles de NLTK, voici quelques exemples de la façon dont vous pouvez commencer à l'utiliser pour résoudre des problèmes réels.

Obtenez des définitions de mots et leurs parties du discours

NLTK propose des modèles pour déterminer les parties du discours, obtenir une sémantique détaillée et une éventuelle utilisation contextuelle de divers mots.

Vous pouvez utiliser le wordnet modèle pour générer des variables pour un texte. Déterminez ensuite sa signification et sa partie du discours.

Par exemple, vérifions les variables possibles pour "Monkey :"

importer nltk
de nltk.corpus importer wordnet en tant que wn
print (wn.synsets('singe'))
Sortir:
[Synset('monkey.n.01'), Synset('imp.n.02'), Synset('tamper.v.01'), Synset('putter.v.02')]

Le code ci-dessus génère des alternatives de mots ou des syntaxes et des parties du discours possibles pour "Singe".

Vérifiez maintenant la signification de "Singe" en utilisant le définition méthode:

Singe = wn.synset('monkey.n.01').definition()
Sortir:
l'un des divers primates à longue queue (à l'exception des prosimiens)

Vous pouvez remplacer la chaîne entre parenthèses par d'autres alternatives générées pour voir ce que NLTK génère.

Les pos_tag modèle, cependant, détermine les parties du discours d'un mot. Vous pouvez l'utiliser avec le word_tokenizer ou PunktSentenceTokenizer() si vous traitez des paragraphes plus longs.

Voici comment cela fonctionne:

importer nltk
de nltk.tokenize importer word_tokenize, PunktSentenceTokenizer
word = "Ceci est un exemple de texte. Ceci est un tutoriel sur NLTK"
jeton = PunktSentenceTokenizer()
tokenized_sentence = token.tokenize (mot)
pour i dans tokenized_sentence :
tokenWordArray = word_tokenize (i)
partsOfSpeech = nltk.pos_tag (tokenWordArray)
imprimer (partsOfSpeech)
Sortir:
[('Ceci', 'DT'), ('est', 'VBZ'), ('un', 'DT'), ('exemple', 'NN'), ('texte', 'NN'), ('.', '.')]
[('This', 'DT'), ('est', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]

Le code ci-dessus associe chaque mot tokenisé à son étiquette vocale dans un tuple. Vous pouvez vérifier la signification de ces balises sur Penn Treebank.

Pour un résultat plus net, vous pouvez supprimer les périodes dans la sortie en utilisant le remplacer() méthode:

pour i dans tokenized_sentence :
tokenWordArray = word_tokenize (i.replace('.', ''))
partsOfSpeech = nltk.pos_tag (tokenWordArray)
imprimer (partsOfSpeech)
Sortie du nettoyeur :
[('Ceci', 'DT'), ('est', 'VBZ'), ('un', 'DT'), ('exemple', 'NN'), ('texte', 'NN') ]
[('This', 'DT'), ('est', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]

Visualisation des tendances des caractéristiques à l'aide du tracé NLTK

L'extraction de caractéristiques à partir de textes bruts est souvent fastidieuse et chronophage. Mais vous pouvez afficher les déterminants de caractéristiques les plus puissants dans un texte à l'aide du tracé de tendance de distribution de fréquence NLTK.

NLTK, cependant, se synchronise avec matplotlib. Vous pouvez en tirer parti pour afficher une tendance spécifique dans vos données.

Le code ci-dessous, par exemple, compare un ensemble de mots positifs et négatifs sur un diagramme de distribution en utilisant leurs deux derniers alphabets:

importer nltk
à partir de nltk importer ConditionalFreqDist
Listes de mots négatifs et positifs:
négatifs = [
'anormal', 'abolir', 'abominable',
'abominablement', 'abominable', 'abomination'
]
positifs = [
'abonder', 'abonder', 'abonder',
'abondant', 'accessible', 'accessible'
]
# Divisez les éléments de chaque tableau en paires de tuples étiquetées
# et combinez les deux tableaux:
pos_negData = ([("négatif", neg) pour neg en négatifs]+[("positif", pos) pour pos en positifs])
# Extraire les deux derniers alphabets du tableau résultant:
f = ((pos, i[-2:],) pour (pos, i) dans pos_negData)
# Créer un diagramme de distribution de ces alphabets
cfd = ConditionalFreqDist (f)
cfd.plot()

Le diagramme de distribution de l'alphabet ressemble à ceci:

En regardant attentivement le graphique, les mots se terminant par ce, ds, le, sd, et NT ont plus de chances d'être des textes positifs. Mais ceux qui se terminent par Al, ment, au, et te sont plus probablement des mots négatifs.

Noter:Bien que nous ayons utilisé des données autogénérées ici, vous pouvez accéder à certains des ensembles de données intégrés du NLTK à l'aide de son lecteur Corpus en les appelant à partir du corpus une sorte de nltk. Vous voudrez peut-être regarder le documentation du paquet de corpus pour voir comment vous pouvez l'utiliser.

Avec l'émergence de technologies comme Alexa, la détection de spam, les chatbots, l'analyse des sentiments, etc., le traitement du langage naturel semble évoluer vers sa phase sous-humaine. Bien que nous n'ayons pris en compte que quelques exemples de ce que propose NLTK dans cet article, l'outil a des applications plus avancées que la portée de ce didacticiel.

Après avoir lu cet article, vous devriez avoir une bonne idée de la façon d'utiliser NLTK à un niveau de base. Il ne vous reste plus qu'à mettre ces connaissances en pratique vous-même!

PartagerTweeterE-mail
7 bibliothèques d'apprentissage automatique pour les experts en herbe

Intéressé par le domaine du Machine Learning? Commencez avec ces bibliothèques.

Lire la suite

Rubriques connexes
  • La programmation
  • Python
  • Langages de programmation
  • La programmation
A propos de l'auteur
Idowu Omisola (96 articles publiés)

Idowu est passionné par tout ce qui concerne les technologies intelligentes et la productivité. Pendant son temps libre, il s'amuse avec le codage et passe à l'échiquier quand il s'ennuie, mais il aime aussi de temps en temps rompre avec la routine. Sa passion pour montrer aux gens la voie à suivre avec la technologie moderne le motive à écrire davantage.

Plus de Idowu Omisola

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner