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.
Python
   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.
Python
   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.
Python
   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.
Python
   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