Kaj je tokenizacija?
Tokenizacija je postopek, pri katerem se velika količina besedila razdeli na manjše dele, imenovane žetoni. Ti žetoni so zelo koristni za iskanje vzorcev in se štejejo za osnovni korak pri izhajanju in lematizaciji. Tokenizacija prav tako pomaga nadomestiti občutljive podatkovne elemente z neobčutljivimi podatkovnimi elementi.
Obdelava naravnega jezika se uporablja za izdelavo aplikacij, kot so klasifikacija besedil, inteligentni chatbot, sentimentalna analiza, prevajanje jezika itd. Za dosego zgoraj navedenega namena je bistveno razumeti vzorec v besedilu.
Zaenkrat ne skrbite za zajezitev in lematizacijo, temveč jih obravnavajte kot korake za čiščenje besedilnih podatkov z uporabo NLP (obdelava naravnega jezika). V nadaljevanju vaje bomo razpravljali o izhajanju in lematizaciji. Naloge, kot sta klasifikacija besedil ali filtriranje neželene pošte, uporabljajo NLP skupaj s knjižnicami za poglobljeno učenje, kot sta Keras in Tensorflow.
Orodje za naravni jezik ima zelo pomemben modul NLTK za označevanje stavkov, ki je nadalje sestavljen iz podmodulov
- beseda tokenize
- stavek tokenize
Tokenizacija besed
Za razdelitev stavka na besede uporabljamo metodo word_tokenize () . Rezultate tokenizacije besed lahko pretvorite v Data Frame za boljše razumevanje besedila v aplikacijah strojnega učenja. Lahko je tudi vhod za nadaljnje korake čiščenja besedila, kot so odstranjevanje ločil, odstranjevanje številskih znakov ali zarezovanje. Modeli strojnega učenja potrebujejo numerične podatke za usposabljanje in napovedovanje. Besedna tokenizacija postane ključni del pretvorbe besedila (niza) v številčne podatke. Prosimo, preberite o Bag of Words ali CountVectorizer. Za boljše razumevanje teorije si oglejte spodnjo besedo, ki označuje primer NLTK.
from nltk.tokenize import word_tokenizetext = "God is Great! I won a lottery."print(word_tokenize(text))Output: ['God', 'is', 'Great', '!', 'I', 'won', 'a', 'lottery', '.']
Razlaga kode
- modul word_tokenize je uvožen iz knjižnice NLTK.
- Spremenljivka "text" je inicializirana z dvema stavkoma.
- Besedilna spremenljivka se prenese v modul word_tokenize in natisne rezultat. Ta modul loči vsako besedo z ločili, ki jih lahko vidite v izhodu.
Tokenizacija stavkov
Podmodul, ki je na voljo za zgoraj, je sent_tokenize. Očitno vprašanje bi bilo, zakaj je tokenizacija stavkov potrebna, kadar imamo možnost besedne tokenizacije . Predstavljajte si, da morate na stavek prešteti povprečne besede, kako boste izračunali? Za izpolnitev takšne naloge potrebujete tako izrazek besednih zvez NLTK kot tudi besednjak NLTK za izračun razmerja. Takšen izhod je pomembna lastnost strojnega treninga, saj bi bil odgovor številčen.
Preverite spodnji primer tokenizerja NLTK, če želite izvedeti, kako se tokenizacija stavkov razlikuje od tokenizacije besed.
from nltk.tokenize import sent_tokenizetext = "God is Great! I won a lottery."print(sent_tokenize(text))Output: ['God is Great!', 'I won a lottery ']
Za isti vnos imamo 12 besed in dva stavka .
Pojasnilo programa:
- V vrstico kot prejšnji program je uvozil modul sent_tokenize.
- Sprejeli smo isti stavek. Nadaljnji tokenizer stavkov v modulu NLTK je te stavke razčlenil in pokazal rezultate. Jasno je, da ta funkcija lomi vsak stavek.
Primeri označevalnika besed Python so dobri nastavitveni kamni za razumevanje mehanike tokenizacije besed in stavkov.
Povzetek
- Tokenizacija v NLP je postopek, pri katerem je velika količina besedila razdeljena na manjše dele, imenovane žetoni.
- Obdelava naravnega jezika se uporablja za gradnjo aplikacij, kot so klasifikacija besedil, inteligentni chatbot, sentimentalna analiza, prevajanje jezika itd.
- Orodje za naravni jezik ima zelo pomemben modul NLTK za označevanje stavka, ki je nadalje sestavljen iz podmodulov
- Za razdelitev stavka na besede uporabljamo metodo word_tokenize (). Izhod besedilnega tokenizatorja v NLTK lahko pretvorite v podatkovni okvir za boljše razumevanje besedila v aplikacijah strojnega učenja.
- Podmodul, ki je na voljo za zgoraj, je sent_tokenize. Označevalni stavek v Pythonu NLTK je pomembna lastnost za strojno usposabljanje.