POS-taggning med NLTK och Chunking i NLP [EXEMPEL]

POS-taggning

POS-taggning (Parts of Speech Tagging) är en process för att märka upp ord i textformat för en viss del av talet baserat på dess definition och sammanhang. Den ansvarar för textläsning på ett språk och tilldelar varje ord en specifik token (Parts of Speech). Det kallas också för grammatisk taggning.

Låt oss lära oss med ett NLTK Part of Speech-exempel:

Input: Allt för att tillåta oss.

Output:

Steg som ingår i exemplet med POS-taggning:

  • Tokenisera texten (word_tokenize)
  • tillämpa pos_tag på ovanstående steg som är nltk.pos_tag(tokenize_text)

NLTK POS-taggningsexempel är som nedan:

Förkortning Betydelse
CC koordinerande konjunktion
CD kortsats
DT determiner
EX existentiellt där
FW främmande ord
IN preposition/underordnande konjunktion
JJJ Denna NLTK POS Tag är ett adjektiv (stor)
JJR adjektiv, komparativ (större)
JJS adjektiv, superlativ (störst)
LS listmarknad
MD modal (skulle kunna, kommer att)
NNN noun, singular (katt, träd)
NNS noun plural (skrivbord)
NNNP propert substantiv, singular (sarah)
NNNPS korrekt substantiv, plural (indianer eller amerikaner)
PDT predeterminer (all, båda, hälften)
POS possessiv ändelse (förälder\ ’s)
PRP personligt pronomen (hennes, själv, han, själv)
PRP$ possessivt pronomen (hennes, hans, min, min, vår )
RB adverb (ibland, snabbt)
RBR adverb, komparativ (större)
RBS adverb, superlativ (störst)
RP partikel (om)
TO infinit
UH interjektion (farväl)
VB verb (fråga)
VBG verb gerundium (döma)
VBD verb förfluten tid (vädjade)
VBN verb förflutet participium (återförenades)
VBP verb, presens utan 3:e person singular (wrap)
VBZ verb, presens med 3:e person singular (baser)
WDT wh-determiner (that, vad)
WP wh- pronomen (who)
WRB wh- adverb (hur)

Ovanstående NLTK POS tagg-lista innehåller alla NLTK POS Tags. NLTK POS tagger används för att tilldela grammatisk information för varje ord i meningen. Installation, import och nedladdning av alla paket av POS NLTK är klar.

Vad är Chunking i NLP?

Chunking i NLP är en process för att ta små bitar av information och gruppera dem till stora enheter. Den primära användningen av Chunking är att skapa grupper av ”substantivfraser”. Det används för att lägga till struktur till meningen genom att följa POS-taggning i kombination med reguljära uttryck. Den resulterande gruppen av ord kallas ”chunks”. Det kallas också shallow parsing.

I shallow parsing finns det högst en nivå mellan rötter och blad medan deep parsing omfattar mer än en nivå. Shallow parsing kallas också för light parsing eller chunking.

Regler för chunking:

Det finns inga fördefinierade regler, utan man kan kombinera dem efter behov och krav.

Till exempel måste du märka substantiv, verb (förfluten tid), adjektiv och samordningsled från meningen. Du kan använda regeln enligt nedan

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

Följande tabell visar vad de olika symbolerna betyder:

Namn på symbol Beskrivning
. Alla tecken utom ny rad
* Match 0 eller fler upprepningar
? Match 0 eller 1 upprepningar

Nu ska vi skriva koden för att förstå regeln bättre

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

Slutsatsen från ovanstående Python-exempel för taggning av taldelar: ”make” är ett verb som inte ingår i regeln, så det är inte taggat som mychunk

Användningsfall för chunking

Chunking används för att upptäcka enheter. En entitet är den del av meningen genom vilken maskinen får ett värde för en avsikt

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

Med andra ord används chunking för att välja delmängder av tokens. Följ nedanstående kod för att förstå hur chunking används för att välja tokens. I det här exemplet ser du grafen som motsvarar en del av en substantivfras. Vi kommer att skriva koden och rita grafen för bättre förståelse.

Kod för att demonstrera användningsfallet

 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

Grafik

Noun Phrase chunking Graph

Från grafen kan vi dra slutsatsen att ”learn” och ”guru99” är två olika tokens men kategoriseras som Noun Phrase medan token ”from” inte tillhör Noun Phrase.

Chunking används för att kategorisera olika tokens i samma chunk. Resultatet beror på den grammatik som har valts. Ytterligare Chunking NLTK används för att märka mönster och utforska textkorpusar.

Sammanfattning

  • POS-taggning i NLTK är en process för att markera orden i textformat för en viss del av ett tal baserat på dess definition och sammanhang.
  • Några exempel på POS-taggning i NLTK är: CC, CD, EX, JJ, MD, NNP, PDT, PRP$, TO, etc.
  • POS-taggare används för att tilldela grammatisk information för varje ord i meningen. Installation, import och nedladdning av alla paket för Part of Speech taggning med NLTK är komplett.
  • Chunking i NLP är en process för att ta små bitar av information och gruppera dem till stora enheter.
  • Det finns inga fördefinierade regler, utan du kan kombinera dem enligt behov och krav.
  • Chunking används för entitetsdetektering. En entitet är den del av meningen genom vilken maskinen får värdet för någon avsikt
  • Chunking används för att kategorisera olika tokens i samma chunk.

Lämna ett svar

Din e-postadress kommer inte publiceras.