POS Tagging s NLTK a chunking v NLP [PŘÍKLADY]

POS Tagging

POS Tagging (označování částí řeči) je proces označování slov v textovém formátu pro určitou část řeči na základě její definice a kontextu. Je zodpovědný za čtení textu v daném jazyce a přiřazení určitého specifického tokenu (Parts of Speech) ke každému slovu. Nazývá se také gramatické značkování.

Učme se na příkladu NLTK Part of Speech:

Vstup: Vše, co nám dovolí.

Kroky zapojené do příkladu POS tagování:

  • Tokenize textu (word_tokenize)
  • aplikovat pos_tag na výše uvedený krok, který je nltk.pos_tag(tokenize_text)

NLTK POS tagy Příklady jsou následující:

.

Zkratka Význam
CC souřadicí spojka
CD kartiční číslovka
DT determinátor
EX existenční tam
FW cizí slovo
IN předložka/podřadicí spojka
JJ Tento NLTK POS Tag je přídavné jméno (větné)
JJR přídavné jméno, komparativ (větší)
JJS adjektivum, superlativ (největší)
LS seznam tržní
MD modální (mohl, bude)
NN podstatné jméno, jednotné číslo (kočka, strom)
NNS podstatné jméno množné číslo (stoly)
NNP vlastní podstatné jméno, jednotné číslo (sarah)
NNPS vlastní podstatné jméno, množné číslo (indiáni nebo američané)
PDT předložka (all, both, half)
POS posesivní koncovka (parent\ ‚s)
PRP osobní zájmeno (hers, sebe, jeho, sebe)
PRP$ vlastní zájmeno (její, jeho, můj, můj, náš )
RB přídavné jméno (příležitostně, rychle)
RBR příslovce, komparativ (větší)
RBS příslovce, superlativ (největší)
RP částicový (o)
TO neurčitý marker (na)
UH interjekce (na rozloučenou)
VB sloveso (ptát se)
VBG sloveso gerundium (souzení)
VBD sloveso minulý čas (prosil)
VBN verb příčestí minulé (sjednotil)
VBP verb, přítomný čas ne 3. osoba jednotného čísla (obal)
VBZ sloveso, přítomný čas s 3. osobou jednotného čísla (základy)
WDT čl. určující (že, what)
WP wh- zájmeno (who)
WRB wh- příslovce (how)

Výše uvedený seznam NLTK POS značek obsahuje všechny NLTK POS značky. NLTK POS tagger se používá k přiřazení gramatické informace každého slova věty. Instalace, import a stažení všech balíčků POS NLTK je dokončeno.

Co je to Chunking v NLP?

Chunking v NLP je proces, při kterém se berou malé části informací a seskupují se do větších celků. Primárním použitím Chunkingu je vytváření skupin „podstatných jmen“. Používá se k přidání struktury do věty pomocí následného značkování POS v kombinaci s regulárními výrazy. Výsledné skupiny slov se nazývají „chunky“. Nazývá se také mělký parsing.

Při mělkém parsování je mezi kořeny a listy maximálně jedna úroveň, zatímco hloubkové parsování zahrnuje více než jednu úroveň. Mělkému parsování se také říká lehké parsování nebo chunking.

Pravidla pro chunking:

Neexistují žádná předem definovaná pravidla, ale můžete je kombinovat podle potřeby a požadavků.

Například je třeba označit podstatné jméno, sloveso (minulý čas), přídavné jméno a souřadicí spojku z věty. Můžete použít následující pravidlo

článek:{<NN.?>*<VBD.?>*<JJ.?>*<CC>?}

Následující tabulka ukazuje, co jednotlivé symboly znamenají:

Název symbolu Popis
. Jakýkoli znak kromě nového řádku
* Dosahuje 0 nebo více opakování
? Dodržet 0 nebo 1 opakování

Nyní napíšeme kód pro lepší pochopení pravidla

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)

Výstup

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

Závěr z výše uvedeného příkladu označování Part of Speech v jazyce Python: „make“ je sloveso, které není zahrnuto v pravidle, takže není označeno jako mychunk

Případ použití chunkingu

Chunking se používá pro detekci entit. Entita je ta část věty, pomocí které stroj získá hodnotu pro nějaký záměr

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

Jinými slovy, chunking se používá jako výběr podmnožin tokenů. Postupujte podle níže uvedeného kódu, abyste pochopili, jak se chunking používá k výběru tokenů. V tomto příkladu uvidíte graf, který bude odpovídat chunku podstatné fráze. Pro lepší pochopení napíšeme kód a nakreslíme graf.

Kód pro demonstraci případu užití

 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 

Výstup:

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

Graf

Graf členění podstatné fráze

Z grafu můžeme vyvodit, že „learn“ a „guru99“ jsou dva různé tokeny, ale jsou zařazeny do kategorie podstatné fráze, zatímco token „from“ do podstatné fráze nepatří.

Chunking se používá k zařazení různých tokenů do stejného chunku. Výsledek bude záviset na zvolené gramatice. Dále se Chunking NLTK používá k označování vzorů a ke zkoumání textových korpusů.

Souhrn

  • POS tagování v NLTK je proces označování slov v textovém formátu pro určitou část řeči na základě její definice a kontextu.
  • Několik příkladů POS tagování v NLTK:
  • POS tagger se používá k přiřazení gramatické informace každému slovu věty. Instalace, import a stažení všech balíčků značkovače Part of Speech pomocí NLTK je kompletní.
  • Členění v NLP je proces, při kterém se berou malé části informací a seskupují se do větších celků.
  • Neexistují žádná předem definovaná pravidla, ale můžete je kombinovat podle potřeby a požadavku.
  • Členění se používá pro detekci entit. Entita je ta část věty, podle které stroj získá hodnotu pro nějaký záměr
  • Chunking se používá pro kategorizaci různých tokenů do stejného chunku.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.