POS označevanje z NLTK in razrez v NLP (PRIMERI)

Kazalo:

Anonim

Označevanje POS

Označevanje POS ( Označevanje delov govora) je postopek označevanja besed v besedilni obliki za določen del govora na podlagi njegove definicije in konteksta. Odgovoren je za branje besedila v jeziku in vsaki besedi dodeli določen žeton (deli govora). Imenuje se tudi slovnično označevanje.

Naučimo se s primerom dela govora NLTK:

Vhod: Vse, kar nam omogoča.

Izhod : [('Vse', NN), ('do', TO), ('dovoljenje', VB), ('nas', PRP)]

Koraki, vključeni v primer označevanja POS:

  • Tokeniziranje besedila (word_tokenize)
  • uporabite pos_tag za zgornji korak, ki je nltk.pos_tag (tokenize_text)

Primeri oznak NLTK POS so spodaj:

Okrajšava Pomen
CC usklajevalna zveza
CD kardinalna številka
DT določevalnik
Npr eksistencialno tam
FW tuja beseda
IN predlog / podrejena veznik
JJ Ta NLTK POS oznaka je pridevnik (velik)
JJR pridevnik, primerjalni (večji)
JJS pridevnik, superlativ (največji)
LS seznam
Dr modalno (lahko, bo)
NN samostalnik, ednina (mačka, drevo)
NNS samostalnik množina (mize)
NNP lastno ime, ednina (sarah)
NNPS lastni samostalnik, množina (Indijanci ali Američani)
pacifiški čas predeterminer (vsi, oba, pol)
POS posesivni konec (nadrejeni)
PRP osebni zaimek (njen, ona sama, on, on sam)
PRP $ prisvojni zaimek (her, his, my, my, our)
RB prislov (občasno, hitro)
RBR prislov, primerjalni (večji)
RBS prislov, superlativ (največji)
RP delci (približno)
TO neskončni marker (do)
UH interjekcija (adijo)
VB glagol (vprašati)
VBG glagol gerund (soditi)
VBD glagol pretekli čas (prosil)
VBN glagol pretekli deležnik (združen)
VBP glagol, sedanjik ni 3. oseba ednine (zaviti)
VBZ glagol, sedanjik s 3. osebo ednine (osnove)
WDT določevalnik wh (to, kaj)
WP zaimek (kdo)
WRB wh- prislov (kako)

Zgornji seznam oznak NLTK POS vsebuje vse oznake NLTK POS. Označevalnik NLTK POS se uporablja za dodelitev slovničnih informacij vsaki besedi stavka. Namestitev, uvoz in prenos vseh paketov POS NLTK je končana.

Kaj je razbijanje v NLP?

Delitev NLP-ja je postopek za jemanje majhnih podatkov in njihovo združevanje v velike enote. Glavna uporaba Chunkinga je ustvarjanje skupin "samostalniških besednih zvez". Uporablja se za dodajanje strukture stavku z upoštevanjem označevanja POS v kombinaciji z regularnimi izrazi. Nastala skupina besed se imenuje "kosi". Imenuje se tudi plitko razčlenjevanje.

Pri plitkem razčlenjevanju je med koreninami in listi največ ena raven, medtem ko globoko razčlenitev obsega več kot eno raven. Plitkemu razčlenjevanju pravimo tudi razčlenjevanje lahkih kosov ali sekanje.

Pravila za razrez:

Vnaprej določenih pravil ni, lahko pa jih kombinirate glede na potrebe in zahteve.

Na primer, iz stavka morate označiti samostalnik, glagol (pretekli čas), pridevnik in koordinacijski spoj. Uporabite lahko pravilo, kot je prikazano spodaj

kos: {*** ?}

Naslednja tabela prikazuje, kaj pomeni različni simbol:

Ime simbola Opis
. Kateri koli znak, razen nove vrstice
* Ujemite 0 ali več ponovitev
? Ujemanje 0 ali 1 ponovitev

Zdaj zapišimo kodo, da bomo bolje razumeli pravilo

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)

Izhod

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

Zaključek iz zgornjega primera Python za označevanje dela govora: "make" je glagol, ki ni vključen v pravilo, zato ni označen kot mychunk

Uporabi primer odseka

Odsek se uporablja za zaznavanje entitet. Entiteta je tisti del stavka, s katerim stroj dobi vrednost za kakršen koli namen

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

Z drugimi besedami, sekanje se uporablja kot izbira podskupin žetonov. Sledite spodnji kodi, da boste razumeli, kako se za izbiro žetonov uporablja razrez. V tem primeru boste videli graf, ki bo ustrezal delu samostalniške fraze. Za boljše razumevanje bomo napisali kodo in narisali graf.

Koda za prikaz primera uporabe

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

Izhod :

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

Graf

Grafik, ki razdeli samostalniško besedno zvezo

Iz grafa lahko ugotovimo, da sta "learn" in "guru99" dva različna žetona, vendar sta kategorizirana kot samostalniški stavek, medtem ko žeton "from" ne spada v samostalniški stavek.

Razdeljevanje se uporablja za kategorizacijo različnih žetonov v isti kos. Rezultat bo odvisen od izbrane slovnice. Nadaljnje razdeljevanje NLTK se uporablja za označevanje vzorcev in raziskovanje besedilnih teles.

Povzetek

  • Označevanje POS v NLTK je postopek označevanja besed v besedilni obliki za določen del govora na podlagi njegove definicije in konteksta.
  • Nekateri primeri označevanja NLTK POS so: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO itd.
  • POS označevalnik se uporablja za dodelitev slovničnih informacij vsaki besedi stavka. Namestitev, uvoz in prenos vseh paketov označevanja dela govora z NLTK je končana.
  • Delitev NLP-ja je postopek za jemanje majhnih podatkov in njihovo združevanje v velike enote.
  • Vnaprej določenih pravil ni, lahko pa jih kombinirate glede na potrebe in zahteve.
  • Odsek se uporablja za zaznavanje entitet. Entiteta je tisti del stavka, s katerim stroj dobi vrednost za kakršen koli namen
  • Razdeljevanje se uporablja za kategorizacijo različnih žetonov v isti kos.