POS-tagging met NLTK en Chunking in NLP (VOORBEELDEN)

Inhoudsopgave:

Anonim

POS-tagging

POS-tagging (Parts of Speech Tagging) is een proces om de woorden in tekstformaat te markeren voor een bepaald deel van een toespraak op basis van de definitie en context. Het is verantwoordelijk voor het lezen van tekst in een taal en het toewijzen van een specifiek token (delen van spraak) aan elk woord. Het wordt ook wel grammaticale tagging genoemd.

Laten we leren met een NLTK-deel van spraak-voorbeeld:

Input: Alles om ons toe te laten.

Uitvoer : [('Alles', NN), ('naar', TO), ('vergunning', VB), ('ons', PRP)]

Stappen die zijn betrokken bij het voorbeeld van POS-tagging:

  • Tokenize-tekst (word_tokenize)
  • pas pos_tag toe op bovenstaande stap die nltk.pos_tag (tokenize_text) is

NLTK POS-tags Voorbeelden zijn zoals hieronder:

Afkorting Betekenis
CC coördinerende combinatie
CD kardinaal cijfer
DT bepaler
EX existentieel daar
FW vreemd woord
IN voorzetsel / ondergeschikte voegwoord
JJ Deze NLTK POS-tag is een bijvoeglijk naamwoord (groot)
JJR bijvoeglijk naamwoord, vergelijkend (groter)
JJS bijvoeglijk naamwoord, overtreffende trap (grootste)
LS lijst markt
MD modaal (zou, wil)
NN zelfstandig naamwoord, enkelvoud (kat, boom)
NNS zelfstandig naamwoord meervoud (bureaus)
NNP eigennaam, enkelvoud (sarah)
NNPS eigennaam, meervoud (indianen of amerikanen)
PDT voorbepaler (alles, beide, half)
POS bezittelijk einde (ouder)
PRP persoonlijk voornaamwoord (haar, zijzelf, hemzelf)
PRP $ bezittelijk voornaamwoord (haar, zijn, mijn, mijn, onze)
RB bijwoord (af en toe, snel)
RBR bijwoord, vergelijkend (groter)
RBS bijwoord, overtreffende trap (grootste)
RP deeltje (ongeveer)
NAAR oneindige marker (naar)
UH tussenwerpsel (tot ziens)
VB werkwoord (vraag)
VBG werkwoord gerund (judging)
VBD werkwoord verleden tijd (pleitte)
VBN werkwoord voltooid deelwoord (herenigd)
VBP werkwoord, tegenwoordige tijd niet 3e persoon enkelvoud (wikkel)
VBZ werkwoord, tegenwoordige tijd met 3e persoon enkelvoud (basen)
WDT wh-determiner (dat, wat)
WP wh- voornaamwoord (wie)
WRB wh- bijwoord (hoe)

De bovenstaande NLTK POS-taglijst bevat alle NLTK POS-tags. NLTK POS-tagger wordt gebruikt om grammaticale informatie van elk woord van de zin toe te wijzen. Het installeren, importeren en downloaden van alle pakketten van POS NLTK is voltooid.

Wat is chunking in NLP?

Chunking in NLP is een proces waarbij kleine stukjes informatie worden verzameld en in grote eenheden worden gegroepeerd. Het primaire gebruik van Chunking is het maken van groepen "naamwoordzinnen". Het wordt gebruikt om structuur aan de zin toe te voegen door POS-tagging te volgen in combinatie met reguliere expressies. De resulterende groep woorden wordt "chunks" genoemd. Het wordt ook ondiepe parsing genoemd.

Bij ondiep parseren is er maximaal één niveau tussen wortels en bladeren, terwijl diep parseren uit meer dan één niveau bestaat. Ondiepe parsing wordt ook wel lichte parsing of chunking genoemd.

Regels voor Chunking:

Er zijn geen voorgedefinieerde regels, maar u kunt ze naar behoefte en behoefte combineren.

U moet bijvoorbeeld zelfstandig naamwoord, werkwoord (verleden tijd), bijvoeglijk naamwoord en coördinerende kruising uit de zin taggen. U kunt de regel gebruiken zoals hieronder

brok: {*** ?}

De volgende tabel laat zien wat de verschillende symbolen betekenen:

Naam van symbool Omschrijving
Elk teken behalve een nieuwe regel
Match 0 of meer herhalingen
Match 0 of 1 herhalingen

Laten we nu de code schrijven om de regel beter te begrijpen

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)

Uitvoer

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))

De conclusie van het bovenstaande Python-voorbeeld van een deel van spraak: "make" is een werkwoord dat niet is opgenomen in de regel, dus het is niet getagd als mychunk

Gebruik het geval van chunking

Chunking wordt gebruikt voor het detecteren van entiteiten. Een entiteit is dat deel van de zin waarmee de machine de waarde krijgt voor elke intentie

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

Met andere woorden, chunking wordt gebruikt om de subsets van tokens te selecteren. Volg de onderstaande code om te begrijpen hoe chunking wordt gebruikt om de tokens te selecteren. In dit voorbeeld ziet u de grafiek die overeenkomt met een deel van een zelfstandig naamwoord. We zullen de code schrijven en de grafiek tekenen voor een beter begrip.

Code om use case te demonstreren

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

Uitgang :

['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

Grafiek

Zelfstandig naamwoord Phrase chunking Graph

Uit de grafiek kunnen we concluderen dat "leren" en "guru99" twee verschillende tokens zijn, maar gecategoriseerd zijn als zelfstandige zin, terwijl token "van" niet tot zelfstandige zin behoort.

Chunking wordt gebruikt om verschillende tokens in dezelfde chunk te categoriseren. Het resultaat is afhankelijk van de grammatica die is geselecteerd. Verder wordt Chunking NLTK gebruikt om patronen te taggen en tekstcorpora te verkennen.

Overzicht

  • POS-tagging in NLTK is een proces om de woorden in tekstformaat te markeren voor een bepaald deel van een toespraak op basis van de definitie en context.
  • Enkele voorbeelden van NLTK POS-tagging zijn: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO, etc.
  • POS-tagger wordt gebruikt om grammaticale informatie aan elk woord van de zin toe te wijzen. Het installeren, importeren en downloaden van alle pakketten van Part of Speech-tagging met NLTK is voltooid.
  • Chunking in NLP is een proces waarbij kleine stukjes informatie worden verzameld en in grote eenheden worden gegroepeerd.
  • Er zijn geen voorgedefinieerde regels, maar u kunt ze naar behoefte en behoefte combineren.
  • Chunking wordt gebruikt voor het detecteren van entiteiten. Een entiteit is dat deel van de zin waarmee de machine de waarde krijgt voor elke intentie
  • Chunking wordt gebruikt om verschillende tokens in dezelfde chunk te categoriseren.