Carregando
0x10Lição 2 de 18

Escolha uma estratégia de tokenização

Divida as frases de forma consistente e torne explícito o tratamento da pontuação.

18 min Questionário com 7 perguntas 2 exercícios de código
Ao final desta lição, você saberá
  • Extraia tokens de palavras com uma expressão regular
  • Compare o que diferentes tokenizadores mantêm e descartam
  • Divida o texto em frases e identifique as armadilhas clássicas

A tokenização divide o texto em unidades. A divisão de espaços em branco é rápida, mas deixa a pontuação anexada ("hello,"). Uma expressão regular - um padrão para correspondência de texto - pode escolher exatamente os intervalos que você deseja. Os tokenizers reais também lidam com contrações, outros sistemas de escrita e subpalavras; não existe um único limite melhor para cada tarefa.

regex_tokens.py
1import re
2text = "NLP is useful, isn't it?"
3tokens = re.findall(r"[a-z]+(?:'[a-z]+)?", text.lower())
4print(tokens)
Saída
['nlp', 'is', 'useful', "isn't", 'it']

Lendo o padrão [a-z]+(?:'[a-z]+)? da esquerda para a direita:

  • [a-z]+ - uma ou mais letras minúsculas (uma palavra),
  • (?:'[a-z]+)? - opcionalmente, um apóstrofo seguido por mais letras, então isn't permanece um token.

Três tokenizadores, três respostas

Experimente

Até 15 XP

Qual tokenizer fez isso?

Cada lista de tokens veio de um dos três tokenizadores. Combine-os. Preste atenção ao que acontece com a pontuação e as letras maiúsculas.

0 de 6 classificadosPontuação 0/0
  • “['Olá', 'mundo!']”

  • “['Olá', ',', 'mundo', '!']”

  • “['olá', 'mundo']”

  • “['E-mail', 'eu']”

  • “['E', '-', 'correio', 'eu']”

  • “['e', 'correio', 'eu']”

Frases também são tokens

Muitas tarefas primeiro dividem o texto em frases. Dividir em . parece fácil até você conhecer "Dr. Smith chegou às 15h30." - três desses períodos não terminam uma frase.

Outros idiomas trazem outros quebra-cabeças: chinês, japonês e tailandês são geralmente escritos sem espaços entre as palavras, portanto, mesmo para encontrar os limites das palavras, é necessário um modelo aprendido ou um dicionário.

Principais conclusões

  • Expressões regulares permitem dizer exatamente o que é um token.

  • Diferentes tokenizadores fazem escolhas diferentes sobre pontuação, maiúsculas e minúsculas e hifens - escolha um para sua tarefa e aplique-o de forma consistente.

  • A divisão de frases é mais difícil do que “dividir em pontos”, e alguns idiomas precisam de ajuda até para encontrar palavras.

Quiz da aula

7 perguntas · aprovação com 5 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: aplique NLP com Python

Experimente cada ideia de processamento de texto em Python, execute com entradas de exemplo e use os resultados para ver onde o método funciona ou falha.

Exercício 1

Extraia tokens de palavras

+25 XP

Leia uma linha, coloque-a em minúscula, extraia palavras com re.findall(r"[a-z]+", text) e imprima-as separadas por um espaço. Ignore a pontuação.

  • Pontuação
  • Espaços repetidos
main.py
Carregando editor…

O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.

Exercício 2

Divida o texto em frases

+25 XP

Leia uma linha e divida-a em frases ., ! ou ? (uma ou mais seguidas). Imprima cada frase não vazia em sua própria linha, com os espaços adjacentes removidos.

  • Três frases
  • Pontuação animada
  • Sem marca de final
main.py
Carregando editor…

O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…