POS-koodaus NLTK: lla ja chunking NLP: ssä (ESIMERKIT)

Sisällysluettelo:

Anonim

POS-koodaus

POS-koodaus (osiot puheen merkinnästä) on prosessi sanojen merkitsemiseksi tekstimuodossa tietylle puheen osalle sen määritelmän ja kontekstin perusteella. Se on vastuussa tekstin lukemisesta kielellä ja tiettyjen tunnusten (Puheen osat) osoittamisesta jokaiselle sanalle. Sitä kutsutaan myös kieliopilliseksi merkinnäksi.

Opitaan NLTK: n puheen osa -esimerkillä:

Input: Kaikki, jotta voimme.

Tuotos : [('kaikki', NN), ('vastaan', TO), ('lupa', VB), ('meille', PRP)]

Vaiheet, jotka liittyvät POS-koodausesimerkkiin:

  • Tunnista teksti (word_tokenize)
  • käytä pos_tag yllä olevaan vaiheeseen, joka on nltk.pos_tag (tokenize_text)

NLTK POS -tunnisteiden esimerkit ovat seuraavat:

Lyhenne Tarkoitus
CC rinnastuskonjunktio
CD kardinaali
DT määrittelijä
EX eksistentiaalinen siellä
FW vieras sana
SISÄÄN prepositio / toissijainen konjunktio
JJ Tämä NLTK POS -tunniste on adjektiivi (suuri)
JJR adjektiivi, vertaileva (suurempi)
JJS adjektiivi, superlatiivi (suurin)
LS listamarkkinat
MD modaalinen (voisi, tulee)
NN substantiivi, yksikkö (kissa, puu)
NNS substantiivi monikko (desks)
NNP substantiivi, yksikkö (sarah)
NNPS substantiivi, monikko (intiaanit tai amerikkalaiset)
PDT ennalta määrittelijä (kaikki, molemmat, puolet)
POS omistava loppu (vanhemmat)
PRP henkilökohtainen pronomini (hänen, itsensä, hänen, itsensä)
PRP $ omistava pronomini (hän, hänen, minun, minun, meidän)
RB adverbi (toisinaan, nopeasti)
RBR adverbi, vertaileva (suurempi)
RBS adverbi, superlatiivi (suurin)
RP hiukkanen (noin)
TO ääretön merkki (-)
UH väliintulo (hyvästi)
VB verbi (kysy)
VBG verbi gerund (tuomitseva)
VBD verbi menneisyydessä (vetosi)
VBN verbi menneisyyden partisiippi (yhdistetty)
VBP verbi, nykyinen aika, ei 3. persoonan yksikkö (kääri)
VBZ verbi, nykyaika 3. yksikön persoonalla (emäkset)
WDT wh-determineri (se, mitä)
WP wh- pronomini (kuka)
WRB wh- adverbi (miten)

Yllä oleva NLTK POS -tunnisteluettelo sisältää kaikki NLTK POS -tagit. NLTK POS -merkintää käytetään osoittamaan kieliopilliset tiedot lauseen jokaisesta sanasta. Kaikkien POS NLTK -pakettien asentaminen, tuominen ja lataaminen on valmis.

Mitä Chunking on NLP: ssä?

NLP: n halkaisu on prosessi, jossa otetaan pieniä tietoja ja ryhmitellään ne suuriksi yksiköiksi. Chunkingin ensisijainen käyttö on "substantiivilausekkeiden" ryhmien tekeminen. Sitä käytetään lisäämään lauseeseen rakennetta seuraamalla POS-tunnisteita yhdistettynä säännöllisiin lausekkeisiin. Tuloksena olevaa sanaryhmää kutsutaan "paloiksi". Sitä kutsutaan myös matalaksi jäseneksi.

Matalassa jäsentelyssä juurien ja lehtien välillä on enintään yksi taso, kun taas syvässä jäsentämisessä on enemmän kuin yksi taso. Matalaa jäsentämistä kutsutaan myös kevyeksi jäsentelyksi tai paloiksi.

Chunkingin säännöt:

Etukäteen määriteltyjä sääntöjä ei ole, mutta voit yhdistää ne tarpeen ja tarpeen mukaan.

Esimerkiksi sinun on merkittävä lauseesta substantiivi, verbi (menneisyys), adjektiivi ja koordinoiva risteys. Voit käyttää sääntöä alla

osa: {*** ?}

Seuraava taulukko osoittaa, mitä eri symboli tarkoittaa:

Symbolin nimi Kuvaus
. Mikä tahansa merkki paitsi uusi rivi
* Yhdistä vähintään 0 toistoa
? Ottele 0 tai 1 toistoa

Kirjoita nyt koodi ymmärtämään sääntöä paremmin

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)

Tuotos

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

Edellä mainitun Python-koodausesimerkin osan johtopäätös: "make" on verbi, jota ei sisälly sääntöön, joten sitä ei ole merkitty nimellä mychunk

Käytä chunking-tapausta

Paloittelua käytetään entiteettien havaitsemiseen. Entiteetti on lauseen osa, jolla kone saa arvon mille tahansa aikomukselle

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

Toisin sanoen halkeamista käytetään valitsemaan alaryhmien merkkejä. Noudata alla olevaa koodia ymmärtääksesi kuinka chunkia käytetään rahakkeiden valitsemiseen. Tässä esimerkissä näet kaavion, joka vastaa substantiivilauseen osaa. Kirjoitamme koodin ja piirrämme kaavion ymmärtämisen helpottamiseksi.

Koodi käyttötapauksen osoittamiseksi

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

Tuotos :

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

Kaavio

Substantiivilauseke

Kaaviosta voidaan päätellä, että "oppia" ja "guru99" ovat kaksi erilaista tunnusta, mutta ne luokitellaan substantiivilauseiksi, kun taas tunniste "alkaen" ei kuulu substantiivilausekkeeseen.

Paloittelua käytetään luokittelemaan eri tunnukset samaan osaan. Tulos riippuu valitusta kieliopista. Lisää Chunking NLTK: tä käytetään kuvioiden merkitsemiseen ja tekstikorpusten tutkimiseen.

Yhteenveto

  • POS-koodaus NLTK: ssa on prosessi sanojen merkitsemiseksi tekstimuodossa tietylle puheen osalle sen määritelmän ja kontekstin perusteella.
  • Joitakin NLTK POS -merkintäesimerkkejä ovat: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO jne.
  • POS-tunnisteella käytetään kielioppitietojen antamista lauseen jokaiselle sanalle. Kaikkien Part of Speech tagging with NLTK -pakettien asentaminen, tuominen ja lataaminen on valmis.
  • NLP: n halkaisu on prosessi, jossa otetaan pieniä tietoja ja ryhmitellään ne suuriksi yksiköiksi.
  • Etukäteen määriteltyjä sääntöjä ei ole, mutta voit yhdistää ne tarpeen ja tarpeen mukaan.
  • Paloittelua käytetään entiteettien havaitsemiseen. Entiteetti on lauseen osa, jolla kone saa arvon mille tahansa aikomukselle
  • Paloittelua käytetään luokittelemaan eri tunnukset samaan osaan.