Co to jest tokenizacja?
Tokenizacja to proces, w którym duża ilość tekstu jest dzielona na mniejsze części zwane tokenami. Te tokeny są bardzo przydatne do znajdowania wzorców i są uważane za podstawowy krok do wyprowadzania i lematyzacji. Tokenizacja pomaga również zastąpić wrażliwe elementy danych niewrażliwymi elementami danych.
Przetwarzanie języka naturalnego jest wykorzystywane do budowania aplikacji, takich jak klasyfikacja tekstu, inteligentny chatbot, analiza sentymentalna, tłumaczenie języka itp. Aby osiągnąć wyżej wymieniony cel, konieczne jest zrozumienie wzoru w tekście.
Na razie nie martw się o wyprowadzanie i lematyzację, ale traktuj je jako kroki do czyszczenia danych tekstowych za pomocą NLP (przetwarzanie języka naturalnego). W dalszej części samouczka omówimy wyprowadzanie i lematyzację. Zadania, takie jak klasyfikacja tekstu lub filtrowanie spamu, wykorzystują NLP wraz z bibliotekami głębokiego uczenia, takimi jak Keras i Tensorflow.
Zestaw narzędzi języka naturalnego zawiera bardzo ważny moduł NLTK tokenizacji zdań, który dodatkowo składa się z podmodułów
- słowo tokenize
- zdanie tokenizacji
Tokenizacja słów
Używamy metody word_tokenize (), aby podzielić zdanie na słowa. Dane wyjściowe tokenizacji słów można przekonwertować na ramkę danych w celu lepszego zrozumienia tekstu w aplikacjach uczenia maszynowego. Może również służyć jako dane wejściowe do dalszych etapów czyszczenia tekstu, takich jak usuwanie znaków interpunkcyjnych, usuwanie znaków numerycznych lub znakowanie. Modele uczenia maszynowego wymagają danych liczbowych do trenowania i prognozowania. Tokenizacja słów staje się kluczową częścią tekstu (łańcucha) do konwersji danych liczbowych. Przeczytaj o Bag of Words lub CountVectorizer. Aby lepiej zrozumieć teorię, zapoznaj się z poniższym przykładem NLTK tokenizacji słów.
from nltk.tokenize import word_tokenizetext = "God is Great! I won a lottery."print(word_tokenize(text))Output: ['God', 'is', 'Great', '!', 'I', 'won', 'a', 'lottery', '.']
Objaśnienie kodu
- Moduł word_tokenize jest importowany z biblioteki NLTK.
- Zmienna „tekst” jest inicjowana dwoma zdaniami.
- Zmienna tekstowa jest przekazywana do modułu word_tokenize i drukowany wynik. Ten moduł dzieli każde słowo na znaki interpunkcyjne, które można zobaczyć na wyjściu.
Tokenizacja zdań
Moduł podrzędny dostępny dla powyższego to sent_tokenize. Oczywistym pytaniem byłoby, dlaczego potrzebna jest tokenizacja zdań, skoro mamy opcję tokenizacji słów . Wyobraź sobie, że musisz policzyć średnią słów w zdaniu, jak obliczysz? Aby wykonać takie zadanie, potrzebujesz zarówno tokenizatora zdań NLTK, jak i tokenizera słów NLTK do obliczenia współczynnika. Takie dane wyjściowe służą jako ważna funkcja dla uczenia maszynowego, ponieważ odpowiedź byłaby numeryczna.
Sprawdź poniższy przykład tokenizera NLTK, aby dowiedzieć się, czym tokenizacja zdań różni się od tokenizacji słów.
from nltk.tokenize import sent_tokenizetext = "God is Great! I won a lottery."print(sent_tokenize(text))Output: ['God is Great!', 'I won a lottery ']
Mamy 12 słów i dwa zdania dla tego samego wejścia.
Objaśnienie programu:
- W linii jak w poprzednim programie zaimportowałem moduł sent_tokenize.
- Podjęliśmy to samo zdanie. Dalszy tokenizer zdań w module NLTK przeanalizował te zdania i wyświetlił wynik. Oczywiste jest, że ta funkcja łamie każde zdanie.
Powyższe przykłady tokenizatora słów w Pythonie są dobrymi kamieniami ustawień pozwalającymi zrozumieć mechanikę tokenizacji słów i zdań.
Podsumowanie
- Tokenizacja w NLP to proces, w którym duża ilość tekstu jest dzielona na mniejsze części zwane tokenami.
- Przetwarzanie języka naturalnego służy do budowania aplikacji, takich jak klasyfikacja tekstu, inteligentny chatbot, analiza sentymentalna, tłumaczenie języka itp.
- Zestaw narzędzi języka naturalnego zawiera bardzo ważny moduł zdania tokenizacji NLTK, który dodatkowo składa się z podmodułów
- Używamy metody word_tokenize (), aby podzielić zdanie na słowa. Dane wyjściowe tokenizera słów w NLTK można przekonwertować na ramkę danych w celu lepszego zrozumienia tekstu w aplikacjach uczenia maszynowego.
- Moduł podrzędny dostępny dla powyższego to sent_tokenize. Tokenizer zdań w Pythonie NLTK jest ważną funkcją do uczenia maszynowego.