Označování POS s NLTK a Chunking v NLP (PŘÍKLADY)

Obsah:

Anonim

Označování POS

Označování POS ( označování částí řeči) je proces označování slov v textovém formátu pro konkrétní část řeči na základě její definice a kontextu. Je zodpovědný za čtení textu v jazyce a přiřazení konkrétního tokenu (části řeči) ke každému slovu. Také se tomu říká gramatické značkování.

Naučme se na příkladu řeči NLTK:

Vstup: Vše, co nám umožňuje.

Výstup : [('Všechno', NN), ('do', TO), ('povolení', VB), ('nás', PRP)]

Kroky zapojené do příkladu označování POS:

  • Tokenizovat text (word_tokenize)
  • použít pos_tag na výše uvedený krok, který je nltk.pos_tag (tokenize_text)

Příklady značek NLTK POS jsou uvedeny níže:

Zkratka Význam
CC koordinační spojení
CD hlavní číslice
DT určující
EX existenciální tam
FW cizí slovo
V předložková / podřízovací spojka
JJ Tato značka NLTK POS je přídavné jméno (velké)
JJR přídavné jméno, srovnávací (větší)
JJS přídavné jméno, superlativ (největší)
LS seznamový trh
MD modální (může, bude)
NN podstatné jméno, singulární (kočka, strom)
NNS podstatné jméno množné číslo (stoly)
NNP vlastní jméno, singulární (sarah)
NNPS vlastní podstatné jméno, množné číslo (indiáni nebo američané)
PDT předurčitel (všechny, oba, poloviční)
POS přivlastňovací konec (rodič)
PRP osobní zájmeno (její, ona, on, on sám)
PRP $ přivlastňovací zájmeno (její, jeho, moje, moje, naše)
RB příslovce (příležitostně, rychle)
RBR příslovce, srovnávací (větší)
RBS příslovce, superlativ (největší)
RP částice (asi)
NA nekonečná značka (do)
UH citoslovce (sbohem)
VB sloveso (zeptat se)
VBG sloveso gerund (soudě)
VBD sloveso minulý čas (prosil)
VBN sloveso minulé příčestí (znovu sjednoceno)
VBP sloveso, přítomný čas ne 3. osoba jednotného čísla (zabalit)
VBZ sloveso, přítomný čas s 3. osobou jednotného čísla (základy)
WDT wh-determinátor (to, co)
WP wh- zájmeno (kdo)
WRB wh- příslovce (jak)

Výše uvedený seznam značek NLTK POS obsahuje všechny značky NLTK POS. Označovač NLTK POS se používá k přiřazení gramatických informací ke každému slovu věty. Instalace, import a stahování všech balíků POS NLTK je dokončeno.

Co je to Chunking v NLP?

Chunking v NLP je proces, který bere malé kousky informací a seskupuje je do velkých jednotek. Primární použití funkce Chunking je vytváření skupin „podstatných frází“. Používá se k přidání struktury do věty sledováním označování POS v kombinaci s regulárními výrazy. Výsledná skupina slov se nazývá „kousky“. Také se tomu říká mělká analýza.

V mělké analýze je mezi kořeny a listy maximálně jedna úroveň, zatímco hluboká analýza zahrnuje více než jednu úroveň. Mělká syntaktická analýza se také nazývá lehká syntaktická analýza nebo chunking.

Pravidla pro blokování:

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

Například je třeba z věty označit podstatné jméno, sloveso (minulý čas), přídavné jméno a koordinační spojení. Můžete použít pravidlo uvedené níže

část: {*** ?}

Následující tabulka ukazuje, co různé symboly znamenají:

Název symbolu Popis
. Libovolný znak kromě nového řádku
* Porovnejte 0 nebo více opakování
? Porovnejte 0 nebo 1 opakování

Nyní napíšeme kód, abychom lépe porozuměli pravidlu

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)

Výstup

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

Závěr z výše uvedeného příkladu Pythonu značkování řeči: „make“ je sloveso, které není zahrnuto v pravidle, takže není označeno jako mychunk

Použít Chunking

Chunking se používá k detekci entit. Entita je ta část věty, pomocí které stroj získá hodnotu pro jakýkoli 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 kusu substantivní fráze. Pro lepší pochopení napíšeme kód a nakreslíme graf.

Kód k prokázání případu použití

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

Výstup :

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

Graf blokování podstatných jmen

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

Chunking se používá ke kategorizaci různých tokenů do stejného bloku. Výsledek bude záviset na vybrané gramatice. Další blokování NLTK se používá k označování vzorů a pro zkoumání textových korpusů.

souhrn

  • Označování POS v NLTK je proces označování slov v textovém formátu pro konkrétní část řeči na základě její definice a kontextu.
  • Některé příklady značení NLTK POS jsou: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO atd.
  • POS tagger se používá k přiřazení gramatických informací ke každému slovu věty. Instalace, import a stahování všech balíků značení části řeči pomocí NLTK je dokončeno.
  • Chunking v NLP je proces, který bere malé kousky informací a seskupuje je do velkých jednotek.
  • Neexistují žádná předdefinovaná pravidla, ale můžete je kombinovat podle potřeby a požadavku.
  • Chunking se používá k detekci entit. Entita je ta část věty, pomocí které stroj získá hodnotu pro jakýkoli záměr
  • Chunking se používá ke kategorizaci různých tokenů do stejného bloku.