Tagowanie POS z NLTK i Chunking w NLP (PRZYKŁADY)

Spisie treści:

Anonim

Tagowanie POS

Tagowanie POS (Parts of Speech Tagging) to proces oznaczania słów w formacie tekstowym dla określonej części wypowiedzi na podstawie jej definicji i kontekstu. Odpowiada za czytanie tekstu w języku i przypisywanie określonego tokenu (części mowy) do każdego słowa. Nazywa się to również tagowaniem gramatycznym.

Nauczmy się na przykładzie NLTK Part of Speech:

Wejście: wszystko, aby nam pozwolić.

Wynik : [('Wszystko', NN), ('do', DO), ('zezwolenie', VB), ('nas', PRP)]

Kroki związane z przykładem tagowania POS:

  • Tekst tokenizacji (word_tokenize)
  • zastosuj pos_tag do powyższego kroku, czyli nltk.pos_tag (tokenize_text)

Przykłady tagów NLTK POS są następujące:

Skrót Znaczenie
CC koniunkcja koordynująca
Płyta CD cyfra kardynalna
DT determinator
DAWNY egzystencjalny
FW słowo obce
W przyimek / spójnik podrzędny
JJ Ten tag NLTK POS to przymiotnik (duży)
JJR przymiotnik, stopień porównawczy (większy)
JJS przymiotnik, stopień najwyższy (największy)
LS rynek list
MD modalny (może, będzie)
NN rzeczownik, liczba pojedyncza (kot, drzewo)
NNS rzeczownik w liczbie mnogiej (biurka)
NNP rzeczownik właściwy, liczba pojedyncza (sarah)
NNPS rzeczownik właściwy, liczba mnoga (indianie lub amerykanie)
PDT predeterminer (wszyscy, obie, połowa)
POS zakończenie dzierżawcze (rodzica)
PRP zaimek osobowy (jej, ona, on, on)
PRP $ zaimek dzierżawczy (jej, jego, moje, moje, nasze)
RB przysłówek (okazjonalnie, szybko)
RBR przysłówek porównawczy (większy)
RBS przysłówek, stopień najwyższy (największy)
RP cząstka (o)
DO nieskończony marker (do)
UH wykrzyknik (do widzenia)
VB czasownik (zapytaj)
VBG czasownik gerundium (ocenianie)
VBD czasownik czas przeszły (błagany)
VBN czasownik imiesłów bierny (reunified)
VBP czasownik, czas teraźniejszy, a nie trzecia osoba liczby pojedynczej (wrap)
VBZ czasownik, czas teraźniejszy z trzecią osobą liczby pojedynczej (podstawy)
WDT wh-determininer (to, co)
WP wh- zaimek (kto)
WRB wh- przysłówek (jak)

Powyższa lista tagów NLTK POS zawiera wszystkie tagi NLTK POS. Tagger NLTK POS służy do przypisywania informacji gramatycznych do każdego słowa w zdaniu. Instalowanie, importowanie i pobieranie wszystkich pakietów POS NLTK zostało zakończone.

Co to jest chunking w NLP?

Dzielenie NLP to proces polegający na zbieraniu małych fragmentów informacji i grupowaniu ich w duże jednostki. Podstawowym zastosowaniem Chunking jest tworzenie grup „fraz rzeczownikowych”. Służy do dodawania struktury do zdania poprzez śledzenie tagów POS w połączeniu z wyrażeniami regularnymi. Powstała grupa słów nazywana jest „kawałkami”. Nazywa się to również płytkim analizowaniem.

W przypadku płytkiego analizowania istnieje maksymalnie jeden poziom między korzeniami a liśćmi, podczas gdy głębokie analizowanie obejmuje więcej niż jeden poziom. Płytkie analizowanie jest również nazywane lekkim analizowaniem lub fragmentami.

Zasady dotyczące fragmentacji:

Nie ma predefiniowanych reguł, ale możesz je łączyć w zależności od potrzeb i wymagań.

Na przykład musisz otagować rzeczownik, czasownik (czas przeszły), przymiotnik i łącznik koordynacyjny w zdaniu. Możesz użyć reguły jak poniżej

fragment: {*** ?}

Poniższa tabela przedstawia znaczenie poszczególnych symboli:

Nazwa symbolu Opis
. Dowolny znak z wyjątkiem nowej linii
* Dopasuj 0 lub więcej powtórzeń
? Dopasuj 0 lub 1 powtórzeń

Teraz napiszmy kod, aby lepiej zrozumieć regułę

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)

Wynik

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

Wniosek z powyższej części przykładu oznaczania mowy w Pythonie: "make" to czasownik, który nie jest zawarty w regule, więc nie jest oznaczany jako mychunk

Przypadek użycia fragmentacji

Dzielenie jest używane do wykrywania jednostek. Istota to ta część zdania, za pomocą której maszyna uzyskuje wartość dla dowolnego zamiaru

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

Innymi słowy, fragmentacja służy do wybierania podzbiorów tokenów. Postępuj zgodnie z poniższym kodem, aby zrozumieć, w jaki sposób fragmentacja jest używana do wybierania tokenów. W tym przykładzie zobaczysz wykres, który będzie odpowiadał fragmentowi frazy rzeczownikowej. Napiszemy kod i narysujemy wykres dla lepszego zrozumienia.

Kod do zademonstrowania przypadku użycia

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

Dane wyjściowe :

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

Wykres

Wykres fragmentacji wyrażenia rzeczownik

Z wykresu możemy wywnioskować, że „uczenie się” i „guru99” to dwa różne tokeny, ale są one klasyfikowane jako wyrażenie rzeczownikowe, podczas gdy token „od” nie należy do wyrażenia rzeczownikowego.

Dzielenie służy do kategoryzowania różnych tokenów w ten sam fragment. Wynik będzie zależał od wybranej gramatyki. Dalszy podział NLTK jest używany do oznaczania wzorców i eksploracji korpusów tekstowych.

Podsumowanie

  • Tagowanie POS w NLTK to proces oznaczania słów w formacie tekstowym dla określonej części przemówienia na podstawie ich definicji i kontekstu.
  • Niektóre przykłady tagowania NLTK POS to: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO itp.
  • Tagger POS służy do przypisywania informacji gramatycznych do każdego słowa w zdaniu. Instalowanie, importowanie i pobieranie wszystkich pakietów części oznaczania mowy za pomocą NLTK zostało zakończone.
  • Dzielenie NLP to proces polegający na zbieraniu małych fragmentów informacji i grupowaniu ich w duże jednostki.
  • Nie ma predefiniowanych reguł, ale możesz je łączyć w zależności od potrzeb i wymagań.
  • Dzielenie jest używane do wykrywania jednostek. Istota to ta część zdania, za pomocą której maszyna uzyskuje wartość dla dowolnego zamiaru
  • Dzielenie służy do kategoryzowania różnych tokenów w ten sam fragment.