Tokenizați text folosind NLTK în python
Tokenizarea textului este o tehnică fundamentală de procesare a limbajului natural (NLP) și una dintre aceste tehnici este Tokenizare. Este procesul de împărțire a textului în componente sau jetoane mai mici. Acestea pot fi:
- Cuvinte: Iubesc NLP → [„Iubesc” „NLP”]
- Propoziții: Iubesc NLP. Python este grozav. → [„Îmi place NLP”. „Python este grozav.”]
Cu populara bibliotecă Python NLTK (Setul de instrumente Natural Language) împărțirea textului în unități înțelese devine și simplă și extrem de eficientă.
Implementarea de bază
Să vedem implementarea Tokenizării folosind NLTK în Python
Pasul 1: Instalați și configurați
Instalați punct modele de tokenizer necesare pentru tokenizarea propozițiilor și a cuvintelor.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Pasul 2: Tokenizați propozițiile
sent_tokenize() împarte un șir într-o listă de propoziții care gestionează semnele de punctuație și abrevierile.
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 )
Ieșire:
['NLTK este un set de instrumente NLP grozav.' „Ușurează procesarea textului!”]
Pasul 3: Tokenizați cuvintele
- word_tokenize() împarte o propoziție în cuvinte și semne de punctuație ca simboluri separate.
- Se ocupă de numerele de punctuație ale contracțiilor și multe altele.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Ieșire:
[„Tokenizarea” „este” „ușoară” „cu” „NLTK” „„word_tokenize” „.’]
Să vedem mai multe exemple
1. WordPunctTokenizer
Ea Împarte textul în caractere alfabetice și non-alfabetice
- Separă toate secvențele de caractere ale cuvintelor și semnele de punctuație în simboluri.
- În special contracțiile despart (Don’t devine Don ' t).
- Împarte e-mailurile în e-mail-uri.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Ieșire:
['Nu' ''' 'nu' 'divizați' 'contracții' '.' 'E' '-' 'e-mailuri' ':' 'bună ziua' '@' 'exemplu' '.' 'com' '!']
2. TreebankWordTokenizer
Este potrivit pentru analiza lingvistică, se ocupă de punctuația și contracțiile.
- Imită tokenizarea în stilul Penn Treebank, care este folosită în mod obișnuit pentru analiza lingvistică NLP.
- Gestionează mai inteligent anumite structuri gramaticale engleze.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Ieșire:
[„Aveți” „o” „uitați” „la” „NLTK” „„tokenizer” „.’]
3. Regex Tokenizer
Personalizează divizarea bazată pe modele.
- Tokenizări pe baza unui model de expresie regulată.
- w+ potrivește cuvintele și numerele, omițând complet semnele de punctuație.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Ieșire:
[„Personalizat” „regulă” „păstrare” „doar” „cuvinte” „numere” „scădere” „punctuație”]
NLTK oferă un set de instrumente util și ușor de utilizat pentru tokenizarea textului în Python, care acceptă o serie de nevoi de tokenizare, de la împărțirea de bază a cuvintelor și a propozițiilor până la modele personalizate avansate.
Creați un test