Otimização do processamento e a filtragem de Cease Phrases: Meus estudos em spaCy e NLP — Parte 3
Nas análises de NLP, certas palavras ou caracteres podem não ter tanta relevância para a interpretação da IA. Essas tokens são chamadas de cease phrases, “palavras vazias”, e são desconsideradas dos dados ainda no pré-processamento. Neste publish, explico o que são as cease phrases e como é sua aplicação, além de trazer algumas variações em stoplists do português através do tempo.
Além da pontuação e de outros caracteres não gramaticais, palavras como “de”, “para”, “um” são tão frequentes nos dados textuais em geral que não precisam ser processadas da mesma forma que palavras com uma carga semântica mais destacada, como é o caso da maioria dos verbos, substantivos e adjetivos. O conjunto de cease phrases é chamado de stoplist, e a eliminação desse conjunto de tokens é importante porque reduz significativamente a quantidade de termos a ser processada, diminuindo o custo computacional nas próximas etapas.
Para entender melhor, usei o modelo de linguagem médio de português do spaCy pt_core_news_sm, e executei o comando que mostra a lista das cease phrases nele contidas:
Aplicando este filtro padrão a um dado textual em português, temos como resultado um conjunto de tokens simplificado.
Pode parecer que a mensagem perde parte importante, ou até essencial do seu conteúdo após a remoção das cease phrases. Para a comunicação humana isto é verdade, mas o que acontece é que o texto filtrado satisfaz a maioria das análises feita por NLP hoje em dia, como modelagem de tópicos, a classificação de textos e análise de sentimentos. Nesses tipos de processamento, o que importa são as palavras que são menos comuns na maioria dos contextos.
Ainda assim, como é de se imaginar, é prático recorrente customizar as listas de cease phrases, seja com a remoção de termos que podem vir a ser relevantes para algumas análises; ou, do contrário, pela adição de novos termos que, em um caso específico, são irrelevantes.
Para ilustrar sua potencialidade de mudança, resolvi trazer uma diferença interessante que percebi entre a lista de cease phrases do pt_core_news_sm com o passar do tempo.
O materials que estou usando para estudar é baseado na versão da biblioteca spaCy de 2021, e mostra uma cease record de 305 tokens. Executando os comandos no meu computador com a versão mais atual da mesma biblioteca, temos uma lista com 326 palavras (do print acima).
A explicação para isso é a evolução e o refinamento contínuo das técnicas da área de NLP, que buscam cada vez maior precisão e relevância dos modelos, excluindo como o tempo palavras que se mostram não tão relevantes para a análise semântica dos textos. As técnicas de processamento de linguagem não são imutáveis nem correspondem a uma verdade absoluta, elas podem ser configuradas pelo desenvolvedor para diversos fins, e mesmo aquilo que é considerado como o padrão pelos desenvolvedores das ferramentas, é constantemente revisto e melhorado.
No publish desta semana, falei sobre as cease phrases e sua importância para o processamento de linguagem pure. Mostrei como se dá a filtragem inicial, algumas variações nas listas de cease phrases em português e dei exemplos de sua aplicação prática. Além disso, ilustrei como as técnicas de NLP não são estáticas, mas mudam a cada dia. Em resumo, a remoção de cease phrases faz o modelo focar nas palavras que são mais relevantes, melhorando assim sua eficiência. E essa etapa se integra no pipeline de NLP, facilitando as operações das próximas etapas, que veremos nos próximos posts aqui.