Balisage POS avec NLTK et segmentation en PNL (EXEMPLES)

Table des matières:

Anonim

Étiquetage des points de vente

Le balisage POS (parties du balisage vocal) est un processus permettant de marquer les mots au format texte pour une partie particulière d'un discours en fonction de sa définition et de son contexte. Il est responsable de la lecture du texte dans une langue et de l'attribution d'un jeton spécifique (parties du discours) à chaque mot. Il est également appelé étiquetage grammatical.

Apprenons avec un exemple NLTK Part of Speech:

Entrée: Tout pour nous permettre.

Sortie : [('Everything', NN), ('to', TO), ('permit', VB), ('us', PRP)]

Étapes impliquées dans l'exemple d'étiquetage POS:

  • Tokenize texte (word_tokenize)
  • appliquer pos_tag à l'étape ci-dessus qui est nltk.pos_tag (tokenize_text)

Les exemples de balises NLTK POS sont les suivants:

Abréviation Sens
CC conjonction de coordination
CD chiffre cardinal
DT déterminant
EX existentiel là-bas
FW mot étranger
DANS préposition / conjonction subordonnée
JJ Cette étiquette NLTK POS est un adjectif (grand)
JJR adjectif, comparatif (plus grand)
JJS adjectif, superlatif (le plus grand)
LS marché de liste
MARYLAND modal (pourrait, sera)
NN nom, singulier (chat, arbre)
NNS nom pluriel (bureaux)
NNP nom propre, singulier (sarah)
NNPS nom propre, pluriel (indiens ou américains)
PDT prédéterminant (tous, les deux, la moitié)
POS fin possessive (parent \ 's)
PRP pronom personnel (le sien, elle-même, lui, lui-même)
PRP $ pronom possessif (elle, son, mien, mon, notre)
RB adverbe (occasionnellement, rapidement)
RBR adverbe, comparatif (supérieur)
RBS adverbe, superlatif (le plus grand)
RP particule (à propos)
À marqueur infini (à)
EUH interjection (au revoir)
VB verbe (demander)
VBG verbe gérondif (juger)
VBD verbe passé (plaidé)
VBN participe passé du verbe (réunifié)
VBP verbe, présent pas la 3e personne du singulier (wrap)
VBZ verbe, présent à la 3e personne du singulier (bases)
WDT wh-determiner (ça, quoi)
WP wh- pronom (qui)
WRB wh- adverbe (comment)

La liste de balises NLTK POS ci-dessus contient toutes les balises NLTK POS. Le tagger NLTK 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 packages de POS NLTK sont terminés.

Qu'est-ce que la segmentation en PNL?

Le découpage en PNL est un processus qui consiste à prendre de petites informations et à les regrouper en grandes unités. L'utilisation principale de Chunking consiste à créer des groupes de «phrases nominales». Il est utilisé pour ajouter de la structure à la phrase en suivant le balisage POS combiné avec des expressions régulières. Le groupe de mots qui en résulte est appelé «morceaux». Il est également appelé analyse superficielle.

Dans l'analyse superficielle, il y a au maximum un niveau entre les racines et les feuilles tandis que l'analyse approfondie comprend plus d'un niveau. L'analyse superficielle est également appelée analyse légère ou segmentation.

Règles de segmentation:

Il n'y a pas de règles prédéfinies, mais vous pouvez les combiner en fonction des besoins et des exigences.

Par exemple, vous devez baliser le nom, le verbe (passé), l'adjectif et la jonction de coordination à partir de la phrase. Vous pouvez utiliser la règle comme ci-dessous

bloc: {*** ?}

Le tableau suivant montre ce que signifient les différents symboles:

Nom du symbole Description
. Tout caractère sauf nouvelle ligne
* Correspond à 0 ou plusieurs 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:{***?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Production

After Split: ['learn', 'php', 'from', 'guru99', 'and', 'make', 'study', 'easy']After Token: [('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN'), ('and', 'CC'), ('make', 'VB'), ('study', 'NN'), ('easy', 'JJ')]After Regex: chunk.RegexpParser with 1 stages:RegexpChunkParser with 1 rules:***?'>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 la partie ci-dessus de l'exemple Python de balisage de la parole: "make" est un verbe qui n'est pas inclus dans la règle, il n'est donc pas marqué comme mychunk

Cas d'utilisation de la segmentation

La segmentation est utilisée pour la détection d'entités. Une entité est la partie de la phrase par laquelle la machine obtient la valeur de toute intention

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

En d'autres termes, la segmentation est utilisée pour sélectionner les sous-ensembles de jetons. Veuillez suivre le code ci-dessous pour comprendre comment la segmentation est utilisée pour sélectionner les jetons. Dans cet exemple, vous verrez le graphique qui correspondra à un morceau d'une phrase nominale. Nous allons écrire le code et dessiner le graphe pour une meilleure compréhension.

Code pour illustrer un 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: {
?*}"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 :

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

Graphique

Graphique de segmentation des phrases nominales

A partir du graphique, nous pouvons conclure que "learn" et "guru99" sont deux jetons différents mais sont catégorisés comme Noun Phrase alors que le token "from" n'appartient pas à Noun Phrase.

La segmentation est utilisée pour classer différents jetons dans le même bloc. Le résultat dépendra de la grammaire sélectionnée. En outre Chunking NLTK est utilisé pour baliser des modèles et pour explorer des corpus de texte.

Résumé

  • Le marquage POS en NLTK est un processus permettant de marquer les mots au format texte pour une partie particulière d'un discours en fonction de sa définition et de son contexte.
  • Quelques exemples d'étiquetage NLTK POS sont: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO, etc.
  • Le marqueur POS est utilisé pour attribuer des informations grammaticales à chaque mot de la phrase. L'installation, l'importation et le téléchargement de tous les packages de balisage Part of Speech avec NLTK sont terminés.
  • Le découpage en PNL est un processus qui consiste à prendre de petites informations et à les regrouper en grandes unités.
  • Il n'y a pas de règles prédéfinies, mais vous pouvez les combiner en fonction des besoins et des exigences.
  • La segmentation est utilisée pour la détection d'entités. Une entité est la partie de la phrase par laquelle la machine obtient la valeur de toute intention
  • La segmentation est utilisée pour classer différents jetons dans le même bloc.