3  Pré-processamento de Texto

O pré-processamento de texto é uma etapa crucial na análise de dados textuais e no aprendizado de máquina. Antes de aplicar técnicas de vetorização, é essencial transformar e limpar os dados de texto para que possam ser processados eficientemente pelos algoritmos. Neste capítulo, abordaremos as principais técnicas de pré-processamento de texto, incluindo limpeza, tokenização, lematização e stemming.

3.1 Limpeza de Texto

A limpeza de texto envolve a remoção de elementos indesejados, como stopwords, pontuação, números e caracteres especiais, que não contribuem para a análise. Abaixo está um exemplo em Python de como realizar a limpeza básica de texto usando a biblioteca re para expressões regulares e NLTK para remoção de stopwords.

3.1.1 Exemplo em Python: Limpeza de Texto

O código a seguir remove as stopwords e pontuação de determinado texto.

Código Python

import re
import nltk
from nltk.corpus import stopwords

# Certifique-se de baixar as stopwords
nltk.download('stopwords')

# Exemplo de texto
texto = 'O processo de vetorização \de texto envolve várias etapas, como a limpeza do texto!'

# Convertendo para minúsculas
texto = texto.lower()

# Removendo pontuação e caracteres especiais
texto = re.sub(r'[^\w\s]', '', texto)
print('Texto sem pontuação:', texto)

# Removendo stopwords
stop_words = set(stopwords.words('portuguese'))
texto_limpo = ' '.join([palavra for palavra in texto.split() if palavra not in stop_words])
print('Texto limpo:', texto_limpo)

Saída do Console

Texto sem pontuação: o processo de vetorização de texto envolve várias etapas como a limpeza do texto
Texto limpo: processo vetorização texto envolve várias etapas limpeza texto

Este código converte o texto para minúsculas, remove pontuação e palavras que não trazem sentido semântico, tais como stopwords, resultando em uma versão limpa do texto pronta para vetorização.

3.2 Tokenização

A tokenização é o processo de dividir o texto em unidades menores, como palavras ou frases. Essas unidades são chamadas de tokens. A tokenização pode ser feita de várias formas, dependendo da granularidade desejada. A seguir, mostramos como tokenizar um texto usando a biblioteca NLTK.

3.2.1 Exemplo em Python: Tokenização

Código Python

import nltk

# Certifique-se de baixar o tokenizer
nltk.download('punkt')

from nltk.tokenize import word_tokenize

# Exemplo de texto
texto = 'Tokenização é o processo de dividir o texto em palavras ou frases.'

# Tokenizando o texto
tokens = word_tokenize(texto)

print('Tokens:', tokens)

Console

Tokens: ['Tokenização', 'é', 'o', 'processo', 'de', 'dividir', 'o', 'texto', 'em', 'palavras', 'ou', 'frases', '.']

Neste exemplo, o texto é dividido em tokens individuais, que podem ser utilizados para análise posterior, como vetorização.

3.3 Lematização e Stemming

Lematização e stemming são técnicas para reduzir as palavras às suas formas base ou raízes. A lematização considera o contexto e reduz as palavras ao seu lema, enquanto o stemming simplesmente corta os sufixos para encontrar a raiz.

3.3.1 Exemplo em Python: Lematização e Stemming

Este código demonstra como aplicar stemming e lematização em um conjunto de palavras, resultando em suas formas raiz e lema, respectivamente.

Código Python

from nltk.stem import PorterStemmer, WordNetLemmatizer

# Certifique-se de baixar o WordNet
nltk.download('wordnet')
nltk.download('omw-1.4')

# Exemplo de texto
palavras = ['running', 'jumps', 'easily', 'fairly']

# Inicializando Stemmer e Lemmatizer
stemmer = PorterStemmer()
lemmatizer = WordNetLemmatizer()

# Aplicando Stemming e Lematização
stems = [stemmer.stem(palavra) for palavra in palavras]
lemmas = [lemmatizer.lemmatize(palavra) for palavra in palavras]

print('Stemming:', stems)
print('Lematização:', lemmas)

Saída do Console

Stemming: ['run', 'jump', 'easili', 'fairli']
Lematização: ['running', 'jump', 'easily', 'fairly']

Em resumo, o pré-processamento de texto é uma etapa essencial para garantir que os dados textuais estejam em uma forma adequada para a vetorização e para o aprendizado de máquina. Técnicas como limpeza, tokenização, lematização e stemming são fundamentais para preparar o texto para análise.

Exercícios

Versão on-line destes exercícios

https://forms.gle/FFGEvmi1zmrQ5Npk9

  1. Qual é o objetivo principal do pré-processamento de texto?

    1. Melhorar a legibilidade do texto.

    2. Transformar o texto em uma forma que possa ser processada por algoritmos de aprendizado de máquina.

    3. Corrigir erros ortográficos no texto.

    4. Aumentar o tamanho do corpus de dados.

  2. Qual das seguintes etapas faz parte do pré-processamento de texto?

    1. Tokenização.

    2. Treinamento do modelo.

    3. Avaliação do desempenho do modelo.

    4. Geração de dados sintéticos.

  3. O que é tokenização no contexto do pré-processamento de texto?

    1. O processo de corrigir erros ortográficos em um texto.

    2. O processo de dividir um texto em palavras, frases ou outros elementos significativos.

    3. O processo de remover palavras irrelevantes de um texto.

    4. O processo de transformar texto em vetores numéricos.

  4. Qual técnica de pré-processamento reduz palavras às suas formas base ou raízes

    1. Tokenização.

    2. Lematização e Stemming.

    3. Vetorização.

    4. Filtragem de stopwords.

  5. Qual biblioteca Python é comumente usada para realizar a tokenização e outras tarefas de pré-processamento de texto?

    1. NumPy.

    2. Pandas.

    3. NLTK.

    4. Matplotlib.