Tokenização: dividir o texto em unidades
Elisões, hifens, abreviações e subpalavras: como dividir corretamente textos em francês com spaCy, NLTK e os tokenizadores do CamemBERT.
A tokenização é a primeira operação de qualquer pipeline de processamento de linguagem natural, e a única cujos erros se propagam até o fim sem nunca se anunciar. Um modelo mal tokenizado não quebra: ele aprende um vocabulário ligeiramente errado e perde alguns pontos de desempenho que ninguém consegue explicar.
A palavra « token » não tem um equivalente satisfatório em português. Não é uma palavra: é a unidade que o seu sistema decide tratar como atômica. Dependendo da tarefa, pode ser uma palavra, uma pontuação, um fragmento de palavra ou até um caractere. A pergunta a fazer nunca é “como dividir um texto”, mas “qual é a unidade certa para o que eu quero fazer”.
O francês torna a questão particularmente espinhosa. O apóstrofo ali é um caractere gramatical, não um sinal de citação: em « l'État », o apóstrofo marca uma elisão e separa duas palavras; em « aujourd'hui », ele é interno a uma única palavra fossilizada. Nenhuma regra tipográfica distingue os dois casos. O hífen é ainda pior: ele une palavras compostas (« porte-monnaie »), pronomes pospostos (« donne-le-moi »), inversões interrogativas (« viens-tu »), e não se deve tratar todos esses casos da mesma forma.