POS Tagging with NLTK and Chunking in NLP [EXAMPLES]

POS Tagging

POS Tagging (Parts of Speech Tagging) on prosessi, jossa sanat merkitään tekstimuodossa tiettyyn puheen osaan sen määritelmän ja asiayhteyden perusteella. Se vastaa tekstin lukemisesta kielessä ja määrittää jokaiselle sanalle tietyn merkin (Parts of Speech). Sitä kutsutaan myös kieliopilliseksi merkinnäksi.

Oppikaamme NLTK:n Part of Speech -esimerkin avulla:

Syöttö: Kaikkea sallia meille.

Output:

Steps Involved in the POS tagging example:

  • Tokenize text (word_tokenize)
  • apply pos_tag to above step that is nltk.pos_tag(tokenize_text)

NLTK:n POS-tunnisteiden esimerkit ovat seuraavat:

Lyhenne Merkitys
CC koordinoiva konjunktio
CD kardinaaliluku
DT determinaali
EX eksistentiaali siellä
FW vieras sana
IN prepositio/subordinoiva konjunktio
JJ Tämä NLTK POS Tag on adjektiivi (suuri)
JJR adjektiivi, komparatiivi (suurempi)
JJS adjektiivi, superlatiivi (suurin)
LS listamarkkinat
MD modaalinen (voisi, tulee)
NN subst, yksikössä (kissa, puu)
NNS substantiivi monikossa (pöydät)
NNP substantiivi, yksikössä (sarah)
NNPS substantiivi, monikko (intiaanit tai amerikkalaiset)
PDT predeterminer (all, molemmat, puolet)
POS posessiivipääte (parent\ ’s)
PRP persoonapronomini (hers, herself, him,himself)
PRP$ posessiivipronomini (her, his, mine, my, my, our )
RB adverbiaali (toisinaan, nopeasti)
RBR adverbi, komparatiivi (suurempi)
RBS adverb, superlatiivi (suurin)
RP partikkeli (noin)
TO infinitiivi. marker (to)
UH interjektio (goodbye)
VB verbi (ask)
VBG verbi gerundi (tuomitseminen)
VBD verbi mennyttä aikaa (vetosi)
VBN verbi menneen ajan partitiivi (yhdistyi)
VBP verbi, preesens ei 3. persoona yksikössä (wrap)
VBZ verbi, preesens 3. persoona yksikössä (emäkset)
WDT wh-määrite (that, what)
WP wh- pronomini (who)
WRB wh- adverbi (how)

Yllä oleva NLTK:n POS-tunnisteiden luettelo sisältää kaikki NLTK:n POS-tunnisteet. NLTK POS taggeria käytetään osoittamaan kieliopillista tietoa jokaiselle lauseen sanalle. Kaikkien POS NLTK:n pakettien asentaminen, tuonti ja lataaminen on valmis.

Mikä on Chunking NLP:ssä?

Chunking NLP:ssä on prosessi, jossa otetaan pieniä informaation palasia ja ryhmitellään ne suuriksi yksiköiksi. Chunkingin ensisijainen käyttö on ”substantiivilauseiden” ryhmien muodostaminen. Sitä käytetään lisäämään lauseeseen rakennetta noudattamalla POS-taggausta yhdistettynä säännöllisiin lausekkeisiin. Tuloksena syntyneitä sanaryhmiä kutsutaan ”chunkeiksi”. Sitä kutsutaan myös pinnalliseksi jäsennykseksi.

Matalassa jäsennyksessä juurten ja lehtien välillä on enintään yksi taso, kun taas syvä jäsennys käsittää useamman tason. Shallow parsingia kutsutaan myös kevyeksi parsingiksi tai chunkingiksi.

Säännöt pilkkomista varten:

Esimääriteltyjä sääntöjä ei ole, vaan niitä voi yhdistellä tarpeen ja vaatimuksen mukaan.

Esimerkiksi sinun täytyy merkitä lauseesta substantiivi, verbi (mennyt aika), adjektiivi ja koordinoiva yhdyssana. Voit käyttää sääntöä seuraavasti

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

Seuraavasta taulukosta selviää, mitä eri symbolit tarkoittavat:

Symbolin nimi Kuvaus
. Mikä tahansa merkki paitsi uusi rivi
* Match 0 tai useampia toistoja
? Match 0 or 1 repetitions

Now Let us write the code to understand rule better

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

Johtopäätös yllä olevasta Part of Speech tagging Python esimerkistä: ”make” on verbi, joka ei sisälly sääntöön, joten sitä ei merkitä mychunkiksi

Use Case of Chunking

Chunkingia käytetään entiteettien tunnistamiseen. Entiteetti on se lauseen osa, jonka avulla kone saa arvon jollekin aikomukselle

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

Toisin sanoen chunkingia käytetään merkkien osajoukkojen valintaan. Seuraa alla olevaa koodia ymmärtääksesi, miten chunkingia käytetään merkkien valintaan. Tässä esimerkissä näet kuvaajan, joka vastaa substantiivilauseen chunkia. Kirjoitamme koodin ja piirrämme kuvaajan paremman ymmärtämisen vuoksi.

Koodi käyttötapauksen havainnollistamiseksi

 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 

Tulos:

 -- These are the tokens -- These are the pos_tag(S (NP learn/JJ php/NN) from/IN (NP guru99/NN)) -- Noun Phrase Chunking

Graafi

Noun Phrase chunking Graph

Graafista voimme päätellä, että ”learn” ja ”guru99” ovat kaksi erilaista tokenia, mutta ne on kategorisoitu Noun Phrase -kategoriaan, kun taas tokeni ”from” ei kuulu Noun Phrase -kategoriaan.

Chunkingia käytetään luokittelemaan eri tokenit samaan chunkiin. Tulos riippuu valitusta kieliopista. Lisäksi Chunking NLTK:ta käytetään mallien merkitsemiseen ja tekstikorpusten tutkimiseen.

Yhteenveto

  • POS-tagaus NLTK:ssa on prosessi, jolla merkitään sanat tekstimuodossa tiettyyn puheen osaan sen määritelmän ja asiayhteyden perusteella.
  • Joitakin NLTK:n POS-tagaus esimerkkejä ovat:
  • POS-taggeria käytetään osoittamaan kieliopillista tietoa jokaiselle lauseen sanalle. Kaikkien Part of Speech tagging -pakettien asentaminen, tuonti ja lataaminen NLTK:lla on valmis.
  • Chunking NLP:ssä on prosessi, jossa otetaan pieniä informaation palasia ja ryhmitellään ne suuriksi kokonaisuuksiksi.
  • Ennalta määriteltyjä sääntöjä ei ole, vaan niitä voi yhdistellä tarpeen ja vaatimuksen mukaan.
  • Chunkingia käytetään entiteettien tunnistamiseen. Entiteetti on se lauseen osa, jonka avulla kone saa arvon jollekin aikomukselle
  • Chunkingia käytetään luokittelemaan erilaiset tokenit samaan chunkiin.

Vastaa

Sähköpostiosoitettasi ei julkaista.