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