Tokeniseer tekst met NLTK in Python
Teksttokenisatie is een fundamentele Natural Language Processing (NLP)-techniek en een van die technieken is Tokenisatie. Het is het proces waarbij tekst in kleinere componenten of tokens wordt verdeeld. Dit kunnen zijn:
- Woorden: Ik hou van NLP → ['Ik' 'hou van' 'NLP']
- Zinnen: Ik hou van NLP. Python is geweldig. → ['Ik hou van NLP.' 'Python is geweldig.']
Met de populaire bibliotheek van Python NLTK (Natural Language Toolkit) wordt het opsplitsen van tekst in betekenisvolle eenheden zowel eenvoudig als uiterst effectief.
Basisimplementatie
Laten we eens kijken naar de implementatie van tokenisatie met behulp van NLTK in Python
Stap 1: Installeren en instellen
Installeer de punt tokenizer-modellen die nodig zijn voor tokenisatie van zinnen en woorden.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Stap 2: Zinnen tokeniseren
sent_tokenize() splitst een tekenreeks op in een lijst met zinnen waarin interpunctie en afkortingen worden verwerkt.
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 )
Uitgang:
['NLTK is een geweldige NLP-toolkit.' 'Het maakt het verwerken van tekst gemakkelijk!']
Stap 3: Tokeniseer woorden
- word_tokenize() splitst een zin op in woorden en leestekens als afzonderlijke tokens.
- Verwerkt samentrekkingen, leestekens en meer.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Uitgang:
['Tokenisatie' 'is' 'gemakkelijk' 'met' 'NLTK' ''s' 'word_tokenize' '.']
Laten we nog wat voorbeelden bekijken
1. WordPunctTokenizer
Het Splitst tekst op in alfabetische en niet-alfabetische tekens
- Scheidt alle reeksen woordtekens en leestekens in tokens.
- Splitst vooral weeën (wordt niet Don't).
- Splitst e-mails op in e-mails.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Uitgang:
['Don' ''' 't' 'splitsen' 'weeën' '.' 'E' '-' 'mails' ':' 'hallo' '@' 'voorbeeld' '.' 'com' '!']
2. TreebankWordTokenizer
Het is geschikt voor taalkundige analyse van interpunctie en samentrekkingen.
- Bootst tokenisatie in Penn Treebank-stijl na, die vaak wordt gebruikt voor NLP-taalanalyse.
- Gaat intelligenter om met bepaalde Engelse grammaticale structuren.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Uitgang:
['Neem' 'een' 'kijkje' 'naar' 'NLTK' ''s' 'tokenizers' '.']
3. Regex-tokenizer
Het past patroongebaseerde splitsing aan.
- Tokeniseert op basis van een reguliere-expressiepatroon.
- w+ komt overeen met woorden en cijfers waarbij de interpunctie volledig wordt weggelaten.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Uitgang:
['Aangepast' 'regel' 'behouden' 'alleen' 'woorden' 'cijfers' 'laten vallen' 'interpunctie']
NLTK biedt een nuttige en gebruiksvriendelijke toolkit voor het tokeniseren van tekst in Python en ondersteunt een reeks tokenisatiebehoeften, van het standaard splitsen van woorden en zinnen tot geavanceerde aangepaste patronen.
Quiz maken