POS-taggning med NLTK och Chunking i NLP (EXEMPEL)

Innehållsförteckning:

Anonim

POS-märkning

POS-taggning (Parts of Speech Tagging) är en process för att markera orden i textformat för en viss del av ett tal baserat på dess definition och sammanhang. Det är ansvarigt för textläsning på ett språk och tilldelar varje ord ett visst tecken (delar av tal). Det kallas också grammatisk taggning.

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

Ingång: Allt för att tillåta oss.

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

Steg involverade i POS-taggningsexemplet:

  • Tokenize text (word_tokenize)
  • tillämpa pos_tag till ovanstående steg som är nltk.pos_tag (tokenize_text)

NLTK POS-taggar Exempel är som nedan:

Förkortning Menande
CC samordnande konjunktion
CD kardinal siffra
DT bestämmande
EX existentiella där
FW främmande ord
I preposition / underordnad konjunktion
JJ Denna NLTK POS-tagg är ett adjektiv (stort)
JJR adjektiv, jämförande (större)
JJS adjektiv, superlativ (största)
LS listmarknad
MD modal (kunde, kommer)
NN substantiv, singular (katt, träd)
NNS substantiv plural (skrivbord)
NNP egennamn, singular (sarah)
NNPS substantiv, plural (indianer eller amerikaner)
PDT förbestämning (alla, båda, hälften)
POS besittande slut (föräldrar)
PRP personligt pronomen (hennes, hon själv, honom, sig själv)
PRP $ ägande pronomen (henne, hans, min, min, vår)
RB adverb (ibland, snabbt)
RBR adverb, jämförande (större)
RBS adverb, superlativ (största)
RP partikel (ca)
TILL oändlig markör (till)
UH interjection (adjö)
VB verb (fråga)
VBG verb gerund (bedöma)
VBD verb förflutna (vädjade)
VBN verb past particip (reunified)
VBP verb, nutid inte 3: e person singular (wrap)
VBZ verb, nutid med 3: e person entall (baser)
WDT wh-determiner (det, vad)
WP wh- pronomen (vem)
WRB wh- adverb (hur)

Ovanstående NLTK POS-tagglista innehåller alla NLTK POS-taggar. NLTK POS-tagger används för att tilldela grammatisk information om varje ord i meningen. Installationen, importen och nedladdningen av alla paket med POS NLTK är klar.

Vad är Chunking i NLP?

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

Vid grunt tolkning är det maximalt en nivå mellan rötter och löv medan djup tolkning består av mer än en nivå. Grunt tolkning kallas också lätt tolkning eller chunking.

Regler för chunking:

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

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

bit: {*** ?}

Följande tabell visar vad de olika symbolerna betyder:

Symbolens namn Beskrivning
. Alla karaktärer utom ny rad
* Matcha 0 eller fler repetitioner
? Matcha 0 eller 1 repetitioner

Låt oss nu skriva koden för att bättre förstå regeln

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)

Produktion

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

Slutsatsen från ovanstående del av talmärkning av Python-exempel: "make" är ett verb som inte ingår i regeln, så det är inte taggat som mychunk

Använd fall av chunking

Chunking används för entitetsdetektering. En enhet är den del av meningen som maskinen får värdet för varje 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 koden nedan för att förstå hur chunking används för att välja tokens. I det här exemplet ser du diagrammet som motsvarar en bit av en substantivfras. Vi skriver koden och ritar grafen för bättre förståelse.

Kod för att demonstrera användningsfall

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

Utgång :

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

Graf

Substantivfras chunking Graf

Från diagrammet kan vi dra slutsatsen att "lär" och "guru99" är två olika tokens men kategoriseras som Substantivfras medan token "från" inte tillhör Substantivfras.

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

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 NLTK POS-märkningsexempel är: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO, etc.
  • POS-tagger används för att tilldela grammatisk information om varje ord i meningen. Installation, import och nedladdning av alla paket med del av talmärkning med NLTK är klar.
  • Chunking i NLP är en process för att ta små informationsbitar och gruppera dem i stora enheter.
  • Det finns inga fördefinierade regler, men du kan kombinera dem efter behov och krav.
  • Chunking används för entitetsdetektering. En enhet är den del av meningen som maskinen får värdet för varje avsikt
  • Chunking används för att kategorisera olika tokens i samma bit.