Tokenizujte text pomocí NLTK v pythonu
Tokenizace textu je základní technika zpracování přirozeného jazyka (NLP) a jednou takovou technikou je Tokenizace. Je to proces rozdělování textu na menší součásti nebo tokeny. Mohou to být:
- Slova: Miluji NLP → ['I' 'love' 'NLP']
- Věty: Miluji NLP. Python je skvělý. → ['Miluji NLP.' 'Python je skvělý.']
S populární knihovnou Pythonu NLTK (Natural Language Toolkit) rozdělování textu na smysluplné jednotky se stává jednoduchým a extrémně efektivním.
Základní implementace
Podívejme se na implementaci tokenizace pomocí NLTK v Pythonu
Krok 1: Instalace a nastavení
Nainstalujte bod modely tokenizerů potřebné pro tokenizaci vět a slov.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Krok 2: Tokenizace vět
sent_tokenize() rozdělí řetězec na seznam vět, které pracují s interpunkcí a zkratkami.
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 skvělá sada nástrojů NLP.' 'Zpracování textu je snadné!']
Krok 3: Tokenizujte slova
- word_tokenize() rozdělí větu na slova a interpunkční znaménka jako samostatné tokeny.
- Zvládá kontrakce interpunkční čísla a další.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
výstup:
['Tokenizace' 'je' 'snadná' 'pomocí' 'NLTK' ''s' 'word_tokenize' '.']
Podívejme se na další příklady
1. WordPunctTokenizer
To Rozdělí text na abecední a neabecední znaky
- Odděluje všechny sekvence slovních znaků a interpunkce do tokenů.
- Obzvláště rozdělí kontrakce (Don't Stane Don ' t).
- Rozdělí 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:
['Ne' ''' 't' 'rozdělit' 'kontrakce' '." 'E' '-' 'maily' ':' 'ahoj' '@' 'příklad' '.' 'com' '!']
2. TreebankWordTokenizer
Je vhodný pro lingvistickou analýzu zpracovává interpunkci a kontrakce.
- Napodobuje tokenizaci ve stylu Penn Treebank, která se běžně používá pro lingvistickou analýzu NLP.
- Zvládá určité anglické gramatické struktury inteligentněji.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
výstup:
['Podívejte se' 'a' 'podívejte se' 'na' 'NLTK' ''s' 'tokenizery' '.']
3. Regex Tokenizer
Přizpůsobuje rozdělení založené na vzoru.
- Tokenizuje na základě vzoru regulárního výrazu.
- w+ odpovídá slovům a číslům bez úplného vynechání interpunkce.
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' 'ponechat' 'pouze' 'slova' 'čísla' 'vypustit' 'interpunkce']
NLTK poskytuje užitečnou a uživatelsky přívětivou sadu nástrojů pro tokenizaci textu v Pythonu, která podporuje řadu potřeb tokenizace od základního dělení slov a vět až po pokročilé vlastní vzory.
Vytvořit kvíz