POS-tagging med NLTK og Chunking i NLP (EKSEMPLER)

Indholdsfortegnelse:

Anonim

POS-tagging

POS-tagging (Parts of Speech Tagging) er en proces til at markere ordene i tekstformat til en bestemt del af en tale baseret på dens definition og kontekst. Det er ansvarligt for tekstlæsning på et sprog og tildele et bestemt token (dele af tale) til hvert ord. Det kaldes også grammatisk tagging.

Lad os lære med et NLTK del af taleeksempel:

Input: Alt for at tillade os.

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

Trin involveret i POS-taggingeksemplet:

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

NLTK POS-tags Eksempler er som nedenfor:

Forkortelse Betyder
CC koordinerende sammenhæng
CD hovedtal
DT bestemmende
EX eksistentiel der
FW fremmed ord
I præposition / underordnet konjunktion
JJ Dette NLTK POS-tag er et adjektiv (stort)
JJR adjektiv, komparativ (større)
JJS adjektiv, superlativ (største)
LS liste marked
MD modal (kunne, vil)
NN substantiv, ental (kat, træ)
NNS substantiv flertal (skriveborde)
NNP egennavn, ental (sarah)
NNPS substantiv, flertal (indianere eller amerikanere)
PDT forudbestemmer (alle, begge, halvdelen)
POS besiddende afslutning (forældres)
PRP personlig pronomen (hendes, sig selv, ham, sig selv)
PRP $ besiddende pronomen (hende, hans, min, min, vores)
RB adverb (lejlighedsvis, hurtigt)
RBR adverb, komparativ (større)
RBS adverb, superlativ (største)
RP partikel (ca.)
TIL uendelig markør (til)
UH interjection (farvel)
VB verb (spørg)
VBG verb gerund (at dømme)
VBD verb fortid (påstået)
VBN verb past participle (genforenet)
VBP verb, nutid ikke 3. person ental (wrap)
VBZ verb, nutid med 3. person ental (baser)
WDT wh-determiner (det, hvad)
WP wh- pronomen (hvem)
WRB wh- adverb (hvordan)

Ovenstående NLTK POS-tagliste indeholder alle NLTK POS-tags. NLTK POS-tagger bruges til at tildele grammatiske oplysninger om hvert ord i sætningen. Installation, import og download af alle pakkerne med POS NLTK er færdig.

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 "navneordssætninger." Det bruges til at tilføje struktur til sætningen ved at følge POS-tagging kombineret med regulære udtryk. Den resulterede gruppe af ord kaldes "bidder". Det kaldes også lavt analysering.

Ved overfladisk parsing er der maksimalt et niveau mellem rødder og blade, mens dyb parsing består af mere end et niveau. Flad parsing kaldes også let parsing eller chunking.

Regler for Chunking:

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

For eksempel skal du tagge substantiv, verb (fortid), adjektiv og koordinerende vejkryds fra sætningen. Du kan bruge reglen som nedenfor

klump: {*** ?}

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

Symbolets navn Beskrivelse
. Enhver karakter undtagen ny linje
* Match 0 eller flere gentagelser
? Match 0 eller 1 gentagelser

Lad os nu skrive koden for at forstå regel 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:{***?}"""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))

Konklusionen fra ovenstående del af talemærkning af Python-eksempel: "make" er et verbum, der ikke er inkluderet i reglen, så det er ikke mærket som mychunk

Brug tilfælde af klumpning

Chunking bruges til detektion af 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 valg af undersæt af tokens. Følg nedenstående kode for at forstå, hvordan chunking bruges til at vælge tokens. I dette eksempel vil du se grafen, der svarer til en del af en substantivudsætning. Vi skriver koden og tegner grafen for bedre forståelse.

Kode til demonstration af brugssag

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

Output :

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

Kurve

Substantiv sætning chunking Graf

Fra grafen kan vi konkludere, at "lære" og "guru99" er to forskellige tokens, men er kategoriseret som substantivfrase, mens token "fra" ikke tilhører substantivfrase.

Chunking bruges til at kategorisere forskellige tokens i det samme stykke. Resultatet afhænger af den valgte grammatik. Yderligere Chunking NLTK bruges til at tagge mønstre og udforske tekstkorporaer.

Resumé

  • POS-tagging i NLTK er en proces til at markere ordene i tekstformat til en bestemt del af en tale baseret på dens definition og kontekst.
  • Nogle NLTK POS-taggingeksempler er: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO osv.
  • POS-tagger bruges til at tildele grammatiske oplysninger om hvert ord i sætningen. Installation, import og download af alle pakkerne med del af tale-tagging med NLTK er færdig.
  • 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 enhed er den del af sætningen, hvormed maskinen får værdien for enhver hensigt
  • Chunking bruges til at kategorisere forskellige tokens i det samme stykke.