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.