Balisage POS avec NLTK et Chunking en NLP [EXEMPLES]

Balisage POS

Le balisage POS (Parts of Speech Tagging) est un processus de marquage des mots au format texte pour une partie particulière d’un discours basé sur sa définition et son contexte. Il est responsable de la lecture du texte dans une langue et de l’attribution de certains jetons spécifiques (parties du discours) à chaque mot. Il est également appelé balisage grammatical.

Apprenons avec un exemple de parties du discours de NLTK :

Entrée : Tout pour nous permettre.

Sortie :

Étapes impliquées dans l’exemple de marquage POS :

  • Tokéniser le texte (word_tokenize)
  • appliquer le pos_tag à l’étape ci-dessus qui est nltk.pos_tag(tokenize_text)

Les exemples de tags POS NLTK sont les suivants :

.

Abréviation Message
CC conjonction de coordination
CD digital cardinal
DT déterminant
EX existentiel là
FW mot étranger
IN préposition/conjonction subordonnée
JJ Ce tag POS NLTK est un adjectif (grand)
JJR adjectif, comparatif (plus grand)
JJS adjectif, superlatif (plus grand)
LS marchand de listes
MD modal (pourrait, va)
NN nom, singulier (chat, arbre)
NNS nom pluriel (bureaux)
NNP nom propre, singulier (sarah)
NNPS nom propre, pluriel (indiens ou américains)
PDT prédicateur (tous, les deux, la moitié)
POS terminaison possessive (parent\’s)
PRP pronom personnel (hers, elle-même, lui, lui-même)
PRP$ pronom possessif (elle, son, ma, nos )
RB adverbe (occasionnellement, rapidement)
RBR adverbe, comparatif (plus grand)
RBS adverbe, superlatif (le plus grand)
RP particule (sur)
TO infini marqueur (vers)
UH interjection (au revoir)
VB verbe (demander)
VBG verbe gérondif (juger)
VBD verbe passé (plaidé)
VBN verb participe passé (réunifié)
VBP verb, présent non 3ème personne du singulier(enveloppement)
VBZ verbe, présent avec 3ème personne du singulier (bases)
WDT déterminant (que, quoi)
WP wh- pronom (qui)
WRB wh- adverbe (comment)

La liste de balises POS NLTK ci-dessus contient toutes les balises POS NLTK. Le tagueur NLTK POS est utilisé pour attribuer les informations grammaticales de chaque mot de la phrase. L’installation, l’importation et le téléchargement de tous les paquets de NLTK POS sont terminés.

Qu’est-ce que le Chunking en NLP ?

Le Chunking en NLP est un processus permettant de prendre de petits morceaux d’information et de les regrouper en grandes unités. L’utilisation principale du Chunking est de faire des groupes de « phrases nominales ». Il est utilisé pour ajouter une structure à la phrase en suivant le balisage POS combiné à des expressions régulières. Les groupes de mots résultants sont appelés « chunks ». Elle est également appelée analyse syntaxique superficielle.

Dans le parsing superficiel, il y a au maximum un niveau entre les racines et les feuilles alors que le parsing profond comprend plus d’un niveau. Le parsing peu profond est également appelé parsing léger ou chunking.

Règles pour le chunking :

Il n’y a pas de règles prédéfinies, mais vous pouvez les combiner selon le besoin et l’exigence.

Par exemple, vous devez marquer le Nom, le verbe (passé), l’adjectif et la jonction de coordination de la phrase. Vous pouvez utiliser la règle suivante

chunk:{<NN.?>*<VBD.?>*<JJ.?>*<CC>?}

Le tableau suivant indique la signification des différents symboles :

Nom du symbole Description
. Tout caractère sauf nouvelle ligne
* Match 0 ou plus répétitions
? Match 0 ou 1 répétitions

Maintenant, écrivons le code pour mieux comprendre la règle

from nltk import pos_tagfrom nltk import RegexpParsertext ="learn php from guru99 and make study easy".split()print("After Split:",text)tokens_tag = pos_tag(text)print("After Token:",tokens_tag)patterns= """mychunk:{<NN.?>*<VBD.?>*<JJ.?>*<CC>?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Sortie

After Split: After Token: After Regex: chunk.RegexpParser with 1 stages:RegexpChunkParser with 1 rules: <ChunkRule: '<NN.?>*<VBD.?>*<JJ.?>*<CC>?'>After Chunking (S (mychunk learn/JJ) (mychunk php/NN) from/IN (mychunk guru99/NN and/CC) make/VB (mychunk study/NN easy/JJ))

La conclusion de l’exemple Python de marquage de la partie du discours ci-dessus : « make » est un verbe qui n’est pas inclus dans la règle, il n’est donc pas balisé comme mychunk

Cas d’utilisation du chunking

Le chunking est utilisé pour la détection des entités. Une entité est la partie de la phrase par laquelle la machine obtient la valeur d’une intention quelconque

Example: Temperature of New York. Here Temperature is the intention and New York is an entity. 

En d’autres termes, le chunking est utilisé comme sélectionnant les sous-ensembles de tokens. Veuillez suivre le code ci-dessous pour comprendre comment le chunking est utilisé pour sélectionner les tokens. Dans cet exemple, vous verrez le graphique qui correspondra à un chunk d’une phrase nominale. Nous allons écrire le code et dessiner le graphique pour une meilleure compréhension.

Code pour démontrer le cas d’utilisation

 import nltktext = "learn php from guru99"tokens = nltk.word_tokenize(text)print(tokens)tag = nltk.pos_tag(tokens)print(tag)grammar = "NP: {<DT>?<JJ>*<NN>}"cp =nltk.RegexpParser(grammar)result = cp.parse(tag)print(result)result.draw() # It will draw the pattern graphically which can be seen in Noun Phrase chunking 

Sortie :

 -- These are the tokens -- These are the pos_tag(S (NP learn/JJ php/NN) from/IN (NP guru99/NN)) -- Noun Phrase Chunking

Graphe

Graphe de chunking des Phrases Nominales

D’après le graphique, nous pouvons conclure que « learn » et « guru99 » sont deux tokens différents mais sont catégorisés comme des Phrases Nominales alors que le token « from » n’appartient pas aux Phrases Nominales.

Le chunking est utilisé pour catégoriser différents tokens dans le même chunk. Le résultat dépendra de la grammaire qui a été sélectionnée. Plus loin, le Chunking NLTK est utilisé pour marquer des modèles et pour explorer des corpus de textes.

Summary

  • Le balisage POS dans NLTK est un processus pour marquer les mots en format texte pour une partie particulière d’un discours basé sur sa définition et son contexte.
  • Certains exemples de balisage POS de NLTK sont : CC, CD, EX, JJ, MD, NNP, PDT, PRP$, TO, etc.
  • Le tagueur POS est utilisé pour attribuer des informations grammaticales de chaque mot de la phrase. L’installation, l’importation et le téléchargement de tous les paquets de balisage Part of Speech avec NLTK sont terminés.
  • Le chunking en NLP est un processus pour prendre de petits morceaux d’information et les regrouper en grandes unités.
  • Il n’y a pas de règles prédéfinies, mais vous pouvez les combiner selon le besoin et l’exigence.
  • Le chunking est utilisé pour la détection des entités. Une entité est cette partie de la phrase par laquelle la machine obtient la valeur d’une intention quelconque
  • Le chunking est utilisé pour catégoriser différents tokens dans le même chunk.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.