Tokenisera text med NLTK i python
Texttokenisering är en grundläggande NLP-teknik (Natural Language Processing) och en sådan teknik är Tokenisering. Det är processen att dela upp text i mindre komponenter eller tokens. Dessa kan vara:
- Ord: Jag älskar NLP → ['Jag' 'älskar' 'NLP']
- Meningar: Jag älskar NLP. Python är bra. → ['Jag älskar NLP.' 'Python är bra.']
Med Pythons populära bibliotek NLTK (Natural Language Toolkit) att dela upp text i meningsfulla enheter blir både enkelt och extremt effektivt.
Grundläggande implementering
Låt oss se implementeringen av Tokenization med NLTK i Python
Steg 1: Installera och konfigurera
Installera punkt tokenizer-modeller som behövs för menings- och ordtokenisering.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Steg 2: Tokenize meningar
sent_tokenize() delar en sträng i en lista med meningar som hanterar skiljetecken och förkortningar.
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 är en fantastisk NLP-verktygslåda.' 'Det gör det enkelt att bearbeta text!']
Steg 3: Tokenisera ord
- word_tokenize() delar upp en mening i ord och skiljetecken som separata tokens.
- Hanterar sammandragningar skiljetecken och mer.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Produktion:
['Tokenization' 'är' 'lätt' 'med' 'NLTK' 's' 'word_tokenize' '.']
Låt oss se några fler exempel
1. WordPunctTokenizer
Det Delar upp text i alfabetiska och icke-alfabetiska tecken
- Separerar alla sekvenser av ordtecken och skiljetecken i tokens.
- Särskilt delade sammandragningar (Don't blir Don ' t).
- Delar upp e-postmeddelanden i e-postmeddelanden.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Produktion:
['Don' ''' 't' 'split' 'sammandragningar' '.' 'E' '-' 'mails' ':' 'hej' '@' 'exempel' '.' 'com' '!']
2. TreebankWordTokenizer
Den är lämplig för språklig analys hanterar interpunktion och sammandragningar.
- Efterliknar Penn Treebank-liknande tokenisering som vanligtvis används för NLP-lingvistisk analys.
- Hanterar vissa engelska grammatiska strukturer mer intelligent.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Produktion:
['Ta' 'en' 'titta' 'på' 'NLTK' 's' 'tokenizers' '.']
3. Regex Tokenizer
Den anpassar mönsterbaserad delning.
- Tokeniserar baserat på ett reguljärt uttrycksmönster.
- w+ matchar ord och siffror och utelämnar skiljetecken helt.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Produktion:
['Anpassad' 'regel' 'behåll' 'bara' 'ord' 'siffror' 'släpp' 'interpunktion']
NLTK tillhandahåller en användbar och användarvänlig verktygslåda för tokenisering av text i Python som stöder en rad tokeniseringsbehov från grundläggande ord- och meningsdelning till avancerade anpassade mönster.
Skapa frågesport