Tokeniser tekst ved å bruke NLTK i python
Teksttokenisering er en grunnleggende NLP-teknikk (Natural Language Processing), og en slik teknikk er Tokenisering. Det er prosessen med å dele opp tekst i mindre komponenter eller tokens. Disse kan være:
- Ord: Jeg elsker NLP → ['Jeg' 'elsker' 'NLP']
- Setninger: Jeg elsker NLP. Python er flott. → ['Jeg elsker NLP.' 'Python er flott.']
Med Pythons populære bibliotek NLTK (Natural Language Toolkit) å dele opp tekst i meningsfulle enheter blir både enkelt og ekstremt effektivt.
Grunnleggende implementering
La oss se implementeringen av Tokenization ved å bruke NLTK i Python
Trinn 1: Installer og konfigurer
Installer punkt tokenizer-modeller som trengs for setnings- og ordtokenisering.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Trinn 2: Tokenize setninger
sent_tokenize() deler en streng i en liste over setninger som håndterer tegnsetting og forkortelser.
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 )
Produksjon:
['NLTK er et flott NLP-verktøysett.' 'Det gjør det enkelt å behandle tekst!']
Trinn 3: Tokenize Words
- word_tokenize() deler en setning i ord og skilletegn som separate symboler.
- Håndterer sammentrekninger tegnsettingstall og mer.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Produksjon:
['Tokenisering' 'er' 'lett' 'med' 'NLTK' 's' 'word_tokenize' '.']
La oss se noen flere eksempler
1. WordPunctTokenizer
Den Deler opp tekst i alfabetiske og ikke-alfabetiske tegn
- Separerer alle sekvenser av ordtegn og tegnsetting i tokens.
- Spesielt deler sammentrekninger (Ikke blir Don ' t).
- Deler e-poster i e-poster.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Produksjon:
['Don' ''' 't' 'splitte' 'sammentrekninger' '.' 'E' '-' 'mails' ':' 'hei' '@' 'eksempel' '.' 'com' '!']
2. TreebankWordTokenizer
Den er egnet for lingvistisk analyse håndterer tegnsetting og sammentrekninger.
- Etterligner tokenisering i Penn Treebank-stil som ofte brukes til NLP-språklig analyse.
- Håndterer visse engelske grammatiske strukturer mer intelligent.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Produksjon:
['Ta' 'en' 'se' 'på' 'NLTK' 's' 'tokenizers' '.']
3. Regex Tokenizer
Den tilpasser mønsterbasert splitting.
- Tokener basert på et regulært uttrykksmønster.
- w+ matcher ord og tall og utelater tegnsetting helt.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Produksjon:
['Egendefinert' 'regel' 'behold' 'bare' 'ord' 'tall' 'slipp' 'tegnsetting']
NLTK gir et nyttig og brukervennlig verktøysett for tokenisering av tekst i Python som støtter en rekke tokeniseringsbehov fra grunnleggende ord- og setningsdeling til avanserte tilpassede mønstre.
Lag quiz