Escolha uma estratégia de tokenização
Divida as frases de forma consistente e torne explícito o tratamento da pontuação.
- 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.
1import re
2text = "NLP is useful, isn't it?"
3tokens = re.findall(r"[a-z]+(?:'[a-z]+)?", text.lower())
4print(tokens)['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ãoisn'tpermanece um token.
Três tokenizadores, três respostas
Experimente
Até 15 XPQual 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.
“['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.
Extraia tokens de palavras
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
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.
Divida o texto em frases
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
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…