Tokenizar texto usando NLTK em python

A tokenização de texto é uma técnica fundamental de Processamento de Linguagem Natural (PNL) e uma dessas técnicas é Tokenização.  É o processo de dividir o texto em componentes ou tokens menores. Estes podem ser:

  • Palavras: Eu amo PNL → ['Eu' 'amo' 'PNL']
  • Frases: Eu amo PNL. Python é ótimo. → ['Eu amo PNL.' 'Python é ótimo.']

Com a popular biblioteca Python  NLTK (Natural Language Toolkit) dividir o texto em unidades significativas torna-se simples e extremamente eficaz.

Implementação Básica

Vamos ver a implementação da Tokenização usando NLTK em Python

Etapa 1: instalação e configuração

Instale o apontar modelos de tokenizer necessários para tokenização de frases e palavras.

Python
   !  pip   install   nltk   import   nltk   nltk  .  download  (  'punkt'  )   

Etapa 2: tokenizar sentenças

sent_tokenize() divide uma string em uma lista de frases que lidam com pontuação e abreviações.

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  )   

Saída:

['NLTK é um ótimo kit de ferramentas de PNL.' 'Isso facilita o processamento de texto!']

Etapa 3: tokenizar palavras

  • word_tokenize() divide uma frase em palavras e sinais de pontuação como tokens separados.
  • Lida com números de pontuação de contrações e muito mais.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Saída:

['Tokenização' 'é' ​​'fácil' 'com' 'NLTK' ''s' 'word_tokenize' '.']

Vamos ver mais alguns exemplos

1. WordPunctTokenizer

Isto Divide o texto em caracteres alfabéticos e não alfabéticos

  • Separa todas as sequências de caracteres de palavras e pontuação em tokens.
  • Especialmente contrações divididas (não se não ' ).
  • Divide E-mails em E - e-mails.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Saída:

['Não' ''' 't' 'dividir' 'contrações' '.' 'E' '-' 'e-mails' ':' 'olá' '@' 'exemplo' '.' 'com' '!']

2. TreebankWordTokenizer

É adequado para análise linguística que lida com pontuação e contrações.

  • Imita a tokenização no estilo Penn Treebank, que é comumente usada para análise linguística de PNL.
  • Lida com certas estruturas gramaticais do inglês de maneira mais inteligente.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Saída:

['Dê' 'uma' 'olha' 'nos' 'NLTK' ''s' 'tokenizers' '.']

3. Tokenizador Regex

Ele personaliza a divisão baseada em padrões.

  • Tokenizes com base em um padrão de expressão regular.
  • w+ corresponde a palavras e números, omitindo completamente a pontuação.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Saída:

['Personalizado' 'regra' 'manter' 'apenas' 'palavras' 'números' 'soltar' 'pontuação']

NLTK fornece um kit de ferramentas útil e fácil de usar para tokenizar texto em Python, suportando uma variedade de necessidades de tokenização, desde divisão básica de palavras e frases até padrões personalizados avançados.

Criar questionário