POS Tagging az NLTK-val és Chunking az NLP-ben [PÉLDÁK]

POS Tagging

A POS Tagging (Parts of Speech Tagging) egy olyan folyamat, amely a szavak szöveges formátumban történő megjelölését jelenti a beszéd egy adott részének meghatározása és kontextusa alapján. Egy nyelvben a szövegolvasásért felelős, és minden egyes szóhoz hozzárendel egy bizonyos jelet (beszédrészek). Ezt nyelvtani címkézésnek is nevezik.

Tanuljunk egy NLTK Part of Speech példán keresztül:

Bemenet: Mindent, hogy megengedhessük magunknak.

Kimenet:

A POS tagging példában szereplő lépések:

  • Tokenizálja a szöveget (word_tokenize)
  • alkalmazza a pos_tagot a fenti lépésre, ami nltk.pos_tag(tokenize_text)

NLTK POS tagek példái az alábbiak:

Abbreviáció Megjelölés
CC koordinációs kötőszó
CD kardinális számjegy
DT meghatározó
EX lényeges. ott
FW idegen szó
IN prepozíció/alárendelő kötőszó.
JJ Ez az NLTK POS Tag egy melléknév (nagy)
JJR melléknév, Komparatív (nagyobb)
JJS melléknév, szuperlatívusz (legnagyobb)
LS listás piac
MD modális (lehetne, lesz)
NN főnév, Egyes szám (macska, fa)
NNS főnév többes szám (asztalok)
NNP tulajdonnév, egyes szám (sarah)
NNPS prope noun, plural (indians or americans)
PDT predetermininer (all, both, half)
POS birtokos végződés (parent\ ‘s)
PRP személyes névmás (hers, herself, him,himself)
PRP$ possessive pronoun (her, his, mine, my, my, our )
RB adverb (occasionally, gyorsan)
RBR jelző, összehasonlító (nagyobb)
RBS jelző, szuperlatívusz (legnagyobb)
RP partikuláris (körülbelül)
TO infinit. marker (to)
UH interjekció (búcsú)
VB verb (kérdezni)
VBG verb gerundium (ítélkezik)
VBD verb múlt idő. (kérte)
VBN verb múlt idő (újraegyesült)
VBP verb, jelen idő nem egyes szám 3. személyben (wrap)
VBZ verb, jelen idő egyes szám 3. személyben (bases)
WDT wh-meghatározó (that, what)
WP wh- névmás (who)
WRB wh- határozószó (how)

A fenti NLTK POS tag lista tartalmazza az összes NLTK POS taget. Az NLTK POS tagger a mondat egyes szavainak nyelvtani információinak hozzárendelésére szolgál. Az NLTK POS összes csomagjának telepítése, importálása és letöltése befejeződött.

Mi a Chunking az NLP-ben?

A Chunking az NLP-ben egy olyan folyamat, amelynek során kis információdarabokat veszünk és nagy egységekbe csoportosítjuk őket. A Chunking elsődleges felhasználási területe a “főnévi mondatok” csoportosítása. Arra használják, hogy a mondatnak struktúrát adjanak a reguláris kifejezésekkel kombinált POS tagging követésével. Az így kapott szócsoportot “chunks”-nak nevezzük. Ezt sekély elemzésnek is nevezik.

A sekély tagolásban a gyökerek és a levelek között legfeljebb egy szint van, míg a mély tagolás egynél több szintből áll. A sekély tagolást könnyű tagolásnak vagy chunkingnak is nevezik.

A chunking szabályai:

Nincsenek előre meghatározott szabályok, de szükség és követelmény szerint kombinálhatjuk őket.

Egy mondatból például főnevet, igét (múlt idejű), melléknevet és koordináló kötőszót kell megjelölni. Használhatja az alábbi szabályt

chunk:{<NN.?>*<VBD.?>*<JJ.?>*<CC>?}

Az alábbi táblázat mutatja, hogy mit jelentenek a különböző szimbólumok:

Szimbólum neve Megnevezés
. Minden karakter, kivéve új sor
* Találat 0 vagy több ismétlés
? Match 0 vagy 1 ismétlés

Most írjuk meg a kódot, hogy jobban megértsük a szabályt

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)

Kimenet

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

A fenti Part of Speech tagging Python példa következtetése: A “make” egy olyan ige, amely nem szerepel a szabályban, ezért nem címkézzük mychunknak

A chunking használati esete

A chunkingot az entitások felismerésére használjuk. Az entitás a mondatnak az a része, amellyel a gép bármely szándékhoz értéket kap

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

Más szóval a chunkingot a tokenek részhalmazainak kiválasztására használják. Kérjük, kövesse az alábbi kódot, hogy megértse, hogyan használják a chunkingot a tokenek kiválasztására. Ebben a példában azt a grafikont fogja látni, amely egy főnévi kifejezés egy darabkájának felel meg. A jobb megértés érdekében megírjuk a kódot és megrajzoljuk a grafikont.

Kód a használati eset bemutatásához

 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 

Kimenet:

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

Gráf

Noun Phrase chunking Graph

A grafikonból megállapíthatjuk, hogy a “learn” és a “guru99” két különböző token, de a Noun Phrase kategóriába tartoznak, míg a “from” token nem tartozik a Noun Phrase-hoz.

A chunkingot arra használjuk, hogy a különböző tokeneket ugyanabba a chunkba kategorizáljuk. Az eredmény a kiválasztott nyelvtantól függ. A további Chunking NLTK-t a minták címkézésére és a szövegkorpuszok feltárására használják.

Összefoglaló

  • A POS tagging az NLTK-ban egy olyan folyamat, amely a szavakat szöveges formátumban a beszéd egy adott részének jelölésére szolgál annak meghatározása és kontextusa alapján.
  • Az NLTK POS tagging néhány példája:
  • A POS-tagger a mondat egyes szavaihoz nyelvtani információk hozzárendelésére szolgál. A Part of Speech tagging összes csomagjának telepítése, importálása és letöltése az NLTK-val befejeződött.
  • A chunking az NLP-ben egy olyan folyamat, amelynek során kis információdarabokat veszünk és nagy egységekbe csoportosítjuk őket.
  • Nincsenek előre meghatározott szabályok, de szükség és követelmény szerint kombinálhatjuk őket.
  • A chunkingot az entitások felismerésére használjuk. Az entitás a mondatnak az a része, amellyel a gép bármilyen szándékra értéket kap
  • A chunkingot arra használják, hogy a különböző tokeneket ugyanabba a chunkba kategorizálják.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.