O Processamento de Linguagem Natural ainda é relevante?

Card com fundo claro e barra roxa no topo. Texto central diz “O Processamento de Linguagem Natural ainda é relevante?” em fonte pixelada roxa e preta. No canto inferior direito aparece o logotipo circular da Cumbuca Dev em tons de roxo e lilás.

|

3–5 minutos

Neste artigo decidi voltar ao tema da inteligência artificial, porém, agora pretendo falar de uma área em particular, o Processamento de Linguagem Natural (mais conhecida pela sua sigla em inglês NLP – Natural Language Processing). Este campo consiste na aplicação de técnicas de inteligência artificial que permitam o processamento, manipulação e análise de textos. Esta área de conhecimento é fundamental para entender as IAs generativas que temos atualmente.

Como já sabemos, a única linguagem que os computadores entendem é a linguagem binária de zeros e uns. Por isso, é preciso realizar diversas operações para que os textos possam ser processados e manipulados, dando a impressão de que o computador está compreendendo o que está escrito. Para isso, começamos realizando um tratamento inicial no texto onde diversas técnicas são aplicadas, pré processando o texto antes que seja analisado pelo computador. A primeira técnica que vamos falar é a remoção das stopwords, que são palavras que quando retiradas, não mudam o sentido da frase. Cada idioma possui as suas stopwords e no caso do português elas são os artigos definidos (“a”, “o”), os artigos indefinidos (“um”, “uns”, “uma”, “umas”) e as preposições (“de”, “da”, “das”, “do”, “dos”, “para”). Também são removidas as pontuações (se você usa pontuação quando conversa com a IA, pode parar de usar, você vai perceber que não faz diferença). Ainda nas remoções iniciais, dependendo do tipo de NLP que será aplicada, podemos também remover os emoticons, caracteres especiais e outros elementos como nomes e e-mails.

Após esta etapa inicial de “limpeza” do texto, podemos realizar ainda algumas transformações para simplificar o texto. Para realizar esta transformação existem duas técnicas comumente aplicadas: o stemming consiste na remoção do sufixo das palavras, onde a palavra “falando” seria reduzida para “fal”. O problema desta técnica é que o texto perde a legibilidade e pode gerar algumas confusões. Já o lemmatization busca não só remover o sufixo da palavra como transformá-la em uma forma normalizada (geralmente a forma infinitiva do verbo), neste caso a palavra “falando” seria transformada em “falar”.

Agora que já realizamos uma “limpeza”, podemos aplicar um processo de tokenização das palavras. Isso porque, como já dito no início do artigo, o computador não entende realmente as palavras que são escritas. Então podemos transformar cada palavra em um token (muitas vezes um número), o que facilitaria muito o processamento pelo computador. O conjunto desses tokens gerados por esse processo é chamado de embaddings. Talvez você tenha percebido que isso pode gerar um problema (se você percebeu, você é realmente uma pessoa genial!), em casos onde a mesma palavra pode ter diferentes significados dependendo do contexto, um mesmo token seria utilizado, gerando “ruído” para o computador. A palavra “banco”, por exemplo, pode se referir a uma instituição bancária ou a um banco de uma praça ou mesmo a um banco de dados. Lembre-se sempre, os computadores não são capazes de interpretar textos, como nós somos. Por isso, com o tempo, percebeu-se que técnicas de deep learning que levavam o contexto onde o elemento está inserido em consideração, como o RNN (Recurrent Neural Network), eram mais eficientes. Assim, os processos de tokenização passaram a focar em transformar as frases em vetores de tokens e não apenas tokenizar cada palavra individualmente.

Com isso, chegamos às técnicas mais modernas de Processamento de Linguagem Natural. Com o surgimento da arquitetura Transformers em 2017, diversos avanços começaram a surgir e os modelos começaram a ficar cada vez mais precisos. O framework BERT (Bidirectional Encoder Representations from Transformers) de 2018 foi revolucionário e possibilitou gerar modelos que conseguiam executar atividades nunca antes vistas. Isso tudo foi o alicerce para a criação das atuais IAs Generativas, que são capazes de realizar vastos diálogos com a interação humana, além de muitas outras atividades.

Para citar algumas das principais bibliotecas Python para NLP, temos a NLTK e o Spacy. Ambos são toolkits, o que significa que são bibliotecas que possuem um conjunto de funções úteis para os processos de NLP. Dentre as duas, o Spacy é amplamente a biblioteca mais atual e mais poderosa para projetos profissionais. Para o treinamento de modelos de IA temos a biblioteca Transformers que implementa a arquitetura atualmente considerada como a mais eficiente para modelos de NLP, porém as bibliotecas Tensorflow e PyTorch também são amplamente utilizadas. Todas estas bibliotecas são projetos open source.

Embora a GenAI seja a nova moda do momento, a NLP ainda continua muito relevante, afinal ela é a base para a IA Generativa. Por isso, considero que, caso você tenha planos para se especializar em GenAI (ou ao menos estudar mais a fundo), é importante que você tenha domínio sobre as principais técnicas de NLP e os principais conceitos envolvidos.

Referências

SACASH, Brian; SRINIVASA-DESIKAN, Bhargav; KUMAR, Reddy Anil. Natural Language Processing and Computational Linguistics: A practical guide to text analysis with Python, Gensim, spaCy, and Keras. 1. ed. Birmingham / Mumbai: Packt Publishing Limited, 2018. ISBN 978-1-78883-703-3.


Deixe um comentário

Assinar

Digite seu e-mail abaixo e fique por dentro das nossas novidades e atualizações!