Tokenize tekst ved hjælp af NLTK i python
Teksttokenisering er en grundlæggende NLP-teknik (Natural Language Processing), og en sådan teknik er Tokenisering. Det er processen med at opdele tekst i mindre komponenter eller tokens. Disse kan være:
- Ord: Jeg elsker NLP → ['Jeg' 'elsker' 'NLP']
- Sætninger: Jeg elsker NLP. Python er fantastisk. → ['Jeg elsker NLP.' 'Python er fantastisk.']
Med Pythons populære bibliotek NLTK (Natural Language Toolkit) at opdele tekst i meningsfulde enheder bliver både simpelt og ekstremt effektivt.
Grundlæggende implementering
Lad os se implementeringen af Tokenization ved hjælp af NLTK i Python
Trin 1: Installation og opsætning
Installer punkt tokenizer-modeller, der er nødvendige for sætnings- og ordtokenisering.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Trin 2: Tokenize sætninger
sent_tokenize() opdeler en streng i en liste over sætninger, der håndterer tegnsætning 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 )
Produktion:
['NLTK er et fantastisk NLP-værktøjssæt.' 'Det gør det nemt at behandle tekst!']
Trin 3: Tokenize ord
- word_tokenize() opdeler en sætning i ord og tegnsætningstegn som separate tokens.
- Håndterer sammentrækninger tegnsætningsnumre og mere.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Produktion:
['Tokenization' 'er' 'let' 'med' 'NLTK' ''s' 'word_tokenize' '.']
Lad os se nogle flere eksempler
1. WordPunctTokenizer
Det Opdeler tekst i alfabetiske og ikke-alfabetiske tegn
- Adskiller alle sekvenser af ordtegn og tegnsætning i tokens.
- Især splittede sammentrækninger (Don't bliver Don ' t).
- Opdeler e-mails i e - mails.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Produktion:
['Don' ''' 't' 'split' 'sammentrækninger' '.' 'E' '-' 'mails' ':' 'hej' '@' 'eksempel' '.' 'com' '!']
2. TreebankWordTokenizer
Det er velegnet til sproglig analyse håndterer tegnsætning og sammentrækninger.
- Efterligner Penn Treebank-lignende tokenisering, som almindeligvis bruges til NLP-lingvistisk analyse.
- Håndterer visse engelske grammatiske strukturer mere intelligent.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Produktion:
['Har' 'et' 'kig' 'på' 'NLTK' 's' 'tokenizers' '.']
3. Regex Tokenizer
Det tilpasser mønsterbaseret opdeling.
- Tokeniserer baseret på et regulært udtryksmønster.
- w+ matcher ord og tal og udelader tegnsætning fuldstændigt.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Produktion:
['Tilpasset' 'regel' 'behold' 'kun' 'ord' 'tal' 'slip' 'tegnsætning']
NLTK giver et nyttigt og brugervenligt værktøjssæt til tokenisering af tekst i Python, der understøtter en række tokeniseringsbehov fra grundlæggende ord- og sætningsopdeling til avancerede brugerdefinerede mønstre.
Opret quiz