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