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.