Tokenizujte text pomocou NLTK v pythone
Tokenizácia textu je základná technika spracovania prirodzeného jazyka (NLP) a jednou z týchto techník je Tokenizácia. Je to proces rozdelenia textu na menšie komponenty alebo tokeny. Môžu to byť:
- Slová: Milujem NLP → ['I' 'love' 'NLP']
- Vety: Milujem NLP. Python je skvelý. → ['Milujem NLP.' 'Python je skvelý.']
S populárnou knižnicou Pythonu NLTK (Natural Language Toolkit) rozdelenie textu na zmysluplné jednotky sa stáva jednoduchým a extrémne efektívnym.
Základná implementácia
Pozrime sa na implementáciu tokenizácie pomocou NLTK v Pythone
Krok 1: Inštalácia a nastavenie
Nainštalujte bod modely tokenizérov potrebné na tokenizáciu viet a slov.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Krok 2: Tokenizujte vety
sent_tokenize() rozdelí reťazec na zoznam viet, ktoré spracovávajú interpunkciu a skratky.
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 )
výstup:
['NLTK je skvelá súprava nástrojov NLP.' 'Uľahčuje to spracovanie textu!']
Krok 3: Tokenizujte slová
- word_tokenize() rozdelí vetu na slová a interpunkčné znamienka ako samostatné tokeny.
- Zvláda kontrakcie interpunkčné čísla a ďalšie.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
výstup:
['Tokenizácia' 'je' 'ľahká' 'pomocou' 'NLTK' ''s' 'word_tokenize' '.']
Pozrime sa na ďalšie príklady
1. WordPunctTokenizer
to Rozdeľuje text na abecedné a neabecedné znaky
- Rozdeľuje všetky sekvencie slovných znakov a interpunkcie do tokenov.
- Predovšetkým rozdelí kontrakcie (Nestáva sa Don ' t).
- Rozdeľuje e-maily na e-maily.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
výstup:
['Nerozdeľuj' ''' 'nerozdeľuj' 'kontrakcie' '." 'E' '-' 'maily' ':' 'ahoj' '@' 'príklad' '.' 'com' '!']
2. TreebankWordTokenizer
Je vhodný na lingvistickú analýzu, zvláda interpunkciu a kontrakcie.
- Napodobňuje tokenizáciu v štýle Penn Treebank, ktorá sa bežne používa na lingvistickú analýzu NLP.
- Inteligentnejšie zvláda určité anglické gramatické štruktúry.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
výstup:
['Pozrite si' 'a' 'pozrite' 'NLTK' ''s' 'tokenizers' '.']
3. Regex Tokenizer
Prispôsobuje delenie na základe vzoru.
- Tokenizuje na základe vzoru regulárneho výrazu.
- w+ zhoduje sa so slovami a číslami a úplne vynecháva interpunkciu.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
výstup:
['Vlastné' 'pravidlo' 'ponechať' 'iba' 'slová' 'čísla' 'vynechať' 'interpunkciu']
NLTK poskytuje užitočnú a užívateľsky prívetivú súpravu nástrojov na tokenizáciu textu v Pythone, ktorá podporuje celý rad potrieb tokenizácie od základného delenia slov a viet až po pokročilé vlastné vzory.
Vytvoriť kvíz