POS Tagging med NLTK og Chunking i NLP [EKSEMPLER]

POS Tagging

POS Tagging (Parts of Speech Tagging) er en proces til at markere ord i tekstformat for en bestemt del af en tale baseret på dens definition og kontekst. Den er ansvarlig for tekstlæsning i et sprog og tildeler et bestemt token (Parts of Speech) til hvert ord. Det kaldes også grammatisk mærkning.

Lad os lære det med et NLTK Part of Speech-eksempel:

Input: Alt for at tillade os.

Output:

Strin involveret i POS-tagging eksemplet:

  • Tokenize tekst (word_tokenize)
  • anvend pos_tag på ovenstående trin, der er nltk.pos_tag(tokenize_text)

NLTK POS Tags Eksempler er som nedenfor:

Abkortning Begreb
CC koordinerende konjunktion
CD kardinalciffer
DT determiner
EX eksistentiel der
FW fremmedord
IN præposition/underordnende konjunktion
JJ Dette NLTK POS-tag er et adjektiv (stort)
JJJR adjektiv, komparativ (større)
JJJS adjektiv, superlativ (størst)
LS liste marked
MD modal (kunne, vil)
NNN nomen, ental (kat, træ)
NNS nonum plural (skriveborde)
NNNNP proper substantiv, ental (sarah)
NNNPS korrekt navneord, flertal (indianere eller amerikanere)
PDT forudsætningsord (alle, begge, halvdelen)
POS possessiv endelse (forældre\ ‘s)
PRP personligt pronomen (hendes, sig selv, ham,sig selv)
PRP$ possessive pronomen (hende, hans, min, min, vores )
RB ordsprog (lejlighedsvis, hurtigt)
RBR adverb, komparativ (større)
RBS adverb, superlativ (størst)
RP partikel (om)
TO infinitiv markør (til)
UH interjektion (farvel)
VB verbum (spørge)
VBG verbum gerundium (dømme)
VBD verbum fortidsform (bønfaldt)
VBN verb past participle (genforenet)
VBP verb, nutid ikke 3. person ental (wrap)
VBZ verbum, nutid med 3. person ental (baser)
WDT hv-determiner (at, hvad)
WP wh-pronomen (who)
WRB wh- adverbium (hvordan)

Overstående NLTK POS-tag-liste indeholder alle NLTK POS-tags. NLTK POS-tagger bruges til at tildele grammatiske oplysninger om hvert ord i sætningen. Installation, import og downloading af alle pakker af POS NLTK er afsluttet.

Hvad er Chunking i NLP?

Chunking i NLP er en proces til at tage små stykker information og gruppere dem i store enheder. Den primære anvendelse af Chunking er at lave grupper af “substantivfraser”. Det bruges til at tilføje struktur til sætningen ved at følge POS-tagging kombineret med regulære udtryk. Den resulterende gruppe af ord kaldes “chunks”. Det kaldes også shallow parsing (overfladisk parsing).

I shallow parsing er der højst ét niveau mellem rødder og blade, mens deep parsing består af mere end ét niveau. Shallow parsing kaldes også for light parsing eller chunking.

Regler for chunking:

Der er ingen foruddefinerede regler, men du kan kombinere dem alt efter behov og krav.

For eksempel skal du markere navneord, udsagnsord (fortid), adjektiv og koordinerende forbindelsesled fra sætningen. Du kan bruge reglen som nedenfor

chunk:{<NNN.?>*<VBD.?>*<JJJ.?>*<CC>?}

Følgende tabel viser, hvad de forskellige symboler betyder:

Navn på symbol Beskrivelse
. Alle tegn undtagen ny linje
* Match 0 eller flere gentagelser
? Match 0 eller 1 gentagelser

Nu Lad os skrive koden for at forstå reglen bedre

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)

Output

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

Konklusionen fra ovenstående Python-eksempel for Part of Speech-markering: “make” er et verbum, som ikke er medtaget i reglen, så det er ikke tagget som mychunk

Use Case of Chunking

Chunking bruges til at opdage enheder. En enhed er den del af sætningen, hvormed maskinen får værdien for enhver hensigt

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

Med andre ord bruges chunking som udvælgelse af delmængder af tokens. Følg venligst nedenstående kode for at forstå, hvordan chunking bruges til at vælge tokens. I dette eksempel vil du se den graf, der svarer til en chunk af en navneordsfrase. Vi vil skrive koden og tegne grafen for bedre at forstå den.

Kode til demonstration af Use Case

 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 

Output:

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

Graph

Noun Phrase chunking Graph

Af grafen kan vi konkludere, at “learn” og “guru99” er to forskellige tokens, men er kategoriseret som Noun Phrase, mens token “from” ikke hører til Noun Phrase.

Chunking bruges til at kategorisere forskellige tokens i den samme chunk. Resultatet vil afhænge af den grammatik, der er blevet valgt. Yderligere Chunking NLTK bruges til at mærke mønstre og til at udforske tekstkorpora.

Summary

    • POS Tagging i NLTK er en proces til at markere ord i tekstformat for en bestemt del af en tale baseret på dens definition og kontekst.
    • Som NLTK POS tagging eksempler er: CC, CD, EX, JJ, MD, NNP, PDT, PRP$, TO osv.
    • POS-tagger bruges til at tildele grammatiske oplysninger om hvert ord i en sætning. Installation, import og downloading af alle pakker af Part of Speech tagging med NLTK er komplet.
    • Chunking i NLP er en proces til at tage små stykker information og gruppere dem i store enheder.
    • Der er ingen foruddefinerede regler, men du kan kombinere dem efter behov og krav.
    • Chunking bruges til detektion af enheder. En entitet er den del af sætningen, hvormed maskinen får værdien for en hensigt
    • Chunking bruges til at kategorisere forskellige tokens i samme chunk.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.