Szöveg tokenizálása NLTK használatával a pythonban
A szöveg tokenizálása egy alapvető természetes nyelvi feldolgozási (NLP) technika, és az egyik ilyen technika Tokenizálás. Ez a szöveg kisebb komponensekre vagy tokenekre való felosztásának folyamata. Ezek lehetnek:
- Szavak: Imádom az NLP-t → ['I' 'love' 'NLP']
- Mondatok: Imádom az NLP-t. A Python nagyszerű. → ['Imádom az NLP-t.' "A Python nagyszerű."]
A Python népszerű könyvtárával NLTK (Natural Language Toolkit) a szöveg értelmes egységekre bontása egyszerűvé és rendkívül hatékonyvá válik.
Alapvető megvalósítás
Lássuk a tokenizálás megvalósítását az NLTK használatával Pythonban
1. lépés: Telepítés és beállítás
Telepítse a pont A mondat- és szótokenizáláshoz szükséges tokenizáló modellek.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
2. lépés: Mondatok tokenizálása
A send_tokenize() egy karakterláncot az írásjeleket és a rövidítéseket kezelő mondatok listájára oszt fel.
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 )
Kimenet:
['Az NLTK egy nagyszerű NLP-eszköztár.' 'Ez megkönnyíti a szöveg feldolgozását!']
3. lépés: Szavak tokenizálása
- A word_tokenize() a mondatot szavakra és írásjelekre osztja fel külön tokenként.
- Kezeli az összehúzódásokat, az írásjeleket és egyebeket.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Kimenet:
[A "Tokenization" "egyszerű" "az" "NLTK" "s" "word_tokenize" ".']
Lássunk még néhány példát
1. WordPunctTokenizer
Azt A szöveget alfabetikus és nem alfabetikus karakterekre osztja fel
- A szókarakterek és írásjelek összes sorozatát tokenekre választja szét.
- Főleg az összehúzódásokat hasítja fel (ne nem lesz Don 't).
- Az e-maileket e-mailekre osztja fel.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Kimenet:
['Don' '' 'ne' 'split' 'contractions' '.' 'E' '-' 'levelek' ':' 'helló' '@' 'példa' '.' 'com' '!']
2. TreebankWordTokenizer
Alkalmas nyelvi elemzésre, kezeli az írásjeleket és a kontrakciókat.
- Utánozza a Penn Treebank-stílusú tokenizációt, amelyet általánosan használnak az NLP nyelvi elemzéséhez.
- Intelligensebben kezel bizonyos angol nyelvtani szerkezeteket.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Kimenet:
["Nézze meg" "NLTK" "tokenizerjeit".]
3. Regex Tokenizer
Testreszabhatja a minta alapú felosztást.
- Szabályos kifejezésminta alapján tokenizál.
- A w+ megfelel a szavaknak és a számoknak, teljesen kihagyva az írásjeleket.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Kimenet:
["Egyéni" "szabály" "megtartás" "csak" "szavak" "számok" "eldobás" "központozás"]
Az NLTK hasznos és felhasználóbarát eszközkészletet biztosít a Python szövegének tokenizálásához, amely számos tokenizálási igényt támogat az alapvető szó- és mondatfelosztástól a speciális egyéni mintákig.
Kvíz létrehozása