3 najbardziej popularne tokenizatory z biblioteki NLTK
SpaceTokenizer¶
- w odróżnieniu od spaCy dzieli wyłącznie po spacji
In [1]:
from nltk.tokenize import SpaceTokenizer
space_tokenizer = SpaceTokenizer()
text = "Budynek powstawał w latach 2008-2015."
space_tokenizer.tokenize(text)
Out[1]:
['Budynek', 'powstawał', 'w', 'latach', '2008-2015.']
WordPunctTokenizer¶
- w odróżnieniu od spaCy obsługuje białe znaki
In [2]:
from nltk.tokenize import WordPunctTokenizer
punct_tokenizer = WordPunctTokenizer()
In [3]:
punct_tokenizer.tokenize(text)
Out[3]:
['Budynek', 'powstawał', 'w', 'latach', '2008', '-', '2015', '.']
In [4]:
punct_tokenizer.tokenize("Budynek powstawał w latach 2008-2015.")
Out[4]:
['Budynek', 'powstawał', 'w', 'latach', '2008', '-', '2015', '.']
TweetTokenizer¶
- w odróżnieniu od spaCy segmenty zaczynające się od #, @ zostaną potraktowane jako pojedynczy token
In [5]:
from nltk.tokenize import TweetTokenizer
tweet_tokenizer = TweetTokenizer()
In [6]:
tweet_tokenizer.tokenize("22:00 imie.nazwisko@gmail.com #hashtag @user01 :-) adres.pl")
Out[6]:
['22:00', 'imie.nazwisko@gmail.com', '#hashtag', '@user01', ':-)', 'adres.pl']
Stemming polega na wydrębnieniu ze słowa jego rdzenia poprzez odcięcie końcówki fleksyjnej¶
In [7]:
from nltk.stem import SnowballStemmer
stemmer = SnowballStemmer("english")
SnowballStemmer (Porter2)- dostępny dla 15 języków, nie obsługuje języka polskiego.
In [8]:
words = ["seek", "seeking", "seeks"]
print([stemmer.stem(word) for word in words])
['seek', 'seek', 'seek']