Tokenizirajte besedilo z uporabo NLTK v pythonu
Tokenizacija besedila je temeljna tehnika obdelave naravnega jezika (NLP) in ena taka tehnika je Tokenizacija. Je postopek delitve besedila na manjše komponente ali žetone. To so lahko:
- Besede: I love NLP → ['I' 'love' 'NLP']
- Stavki: Obožujem NLP. Python je odličen. → ['Obožujem NLP.' 'Python je odličen.']
S priljubljeno knjižnico Python NLTK (Natural Language Toolkit) razdelitev besedila na smiselne enote postane enostavna in izjemno učinkovita.
Osnovna izvedba
Oglejmo si izvedbo tokenizacije z uporabo NLTK v Pythonu
1. korak: namestitev in nastavitev
Namestite točka modeli tokenizerja, potrebni za tokenizacijo stavkov in besed.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
2. korak: Tokenizirajte stavke
sent_tokenize() razdeli niz na seznam stavkov, ki obravnavajo ločila in okrajšave.
Python from nltk.tokenize import sent_tokenize text = 'NLTK is a great NLP toolkit. It makes processing text easy!' sentences = sent_tokenize ( text ) print ( sentences )
Izhod:
['NLTK je odličen komplet orodij za NLP.' 'Olajša obdelavo besedila!']
3. korak: Tokenizirajte besede
- word_tokenize() razdeli stavek na besede in ločila kot ločene žetone.
- Obravnava kontrakcije, ločila in še več.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Izhod:
['Tokenizacija' 'je' 'enostavna' 'z' 'NLTK' ''s' 'word_tokenize' '.']
Oglejmo si še nekaj primerov
1. WordPunctTokenizer
To Besedilo razdeli na abecedne in neabecedne znake
- Loči vsa zaporedja besednih znakov in ločil v žetone.
- Še posebej razcepi kontrakcije (Don't postane Don't).
- E-poštna sporočila razdeli na e-poštna sporočila.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Izhod:
['Ne' ''' 't' 'split' 'kontrakcije' '.' 'E' '-' 'mails' ':' 'hello' '@' 'example' '.' 'com' '!']
2. TreebankWordTokenizer
Primeren je za jezikovno analizo, obravnava ločila in kontrakcije.
- Posnema tokenizacijo v slogu Penn Treebank, ki se običajno uporablja za NLP jezikovno analizo.
- Bolj inteligentno obravnava določene angleške slovnične strukture.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Izhod:
['Oglejte si' 'NLTK' ''s' 'tokenizatorje' '.']
3. Regex Tokenizer
Prilagodi razdelitev na podlagi vzorcev.
- Tokenizira na podlagi vzorca regularnega izraza.
- w+ se ujema z besedami in številkami, ki popolnoma izpustijo ločila.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Izhod:
['Po meri' 'pravilo' 'ohrani' 'samo' 'besede' 'številke' 'spusti' 'ločila']
NLTK ponuja uporaben in uporabniku prijazen nabor orodij za tokenizacijo besedila v Pythonu, ki podpira vrsto potreb po tokenizaciji od osnovnega razdeljevanja besed in stavkov do naprednih vzorcev po meri.
Ustvari kviz