Natural Language Processing (NLP)
O processamento de linguagem natural (NLP) é o campo da IA que permite que computadores analisem, compreendam e gerem linguagem humana, de tokens a LLMs.
O processamento de linguagem natural (NLP) é o ramo da inteligência artificial (AI) que permite aos computadores analisar, compreender e gerar linguagem humana em texto e fala. As tarefas vão desde encontrar nomes numa frase até traduzir um livro ou manter uma conversa, e o campo combina linguística computacional com aprendizagem automática e aprendizagem profunda. A pesquisa na Web, os filtros de spam, os assistentes de voz, as sugestões do teclado do telemóvel e os chatbots baseados em modelos de linguagem de grande escala (LLMs) funcionam todos com NLP.
Das regras aos modelos de linguagem de grande escala#
A experiência Georgetown-IBM de 1954 traduziu mais de sessenta frases em russo para inglês com um vocabulário de 250 palavras e seis regras gramaticais, e ELIZA (1966), de Joseph Weizenbaum, imitava um psicoterapeuta associando palavras-chave a respostas predefinidas. As regras escritas à mão falhavam perante a ambiguidade e a variedade do texto real; por isso, a partir do final da década de 1980, o processamento estatístico de linguagem natural passou a aprender probabilidades com texto anotado: os modelos ocultos de Markov etiquetavam classes gramaticais, e a tradução automática estatística aprendia com milhões de pares de frases traduzidas.
As redes neuronais assumiram o protagonismo na década de 2010. O Word2vec (2013) aprendeu embeddings que posicionam palavras relacionadas perto umas das outras, e as redes neuronais recorrentes (RNNs) liam frases uma palavra de cada vez. O transformador (2017) substituiu a recorrência pela autoatenção, que relaciona cada palavra com todas as outras em paralelo. Transformadores pré-treinados, como o BERT e o GPT, aprenderam linguagem a partir de texto não rotulado e passaram a precisar apenas de pequenos conjuntos de dados rotulados para cada tarefa; desde o lançamento do ChatGPT, em novembro de 2022, os LLMs executam muitas tarefas de NLP apenas com uma instrução escrita.
Como os sistemas de NLP representam texto#
Um sistema moderno de NLP começa por dividir o texto em tokens — palavras completas ou partes de palavras produzidas pela tokenização — e associa cada token a um vetor de embedding. Uma rede neuronal, geralmente um transformador, converte essa sequência em vetores contextuais, nos quais o vetor de cada token reflete os seus vizinhos; uma saída específica da tarefa lê-os: um rótulo para o texto inteiro, uma etiqueta por token, o início e o fim de um excerto de resposta ou novos tokens gerados. Como o significado está nos vetores, frases com palavras diferentes podem ficar próximas, como demonstra o codificador de frases all-MiniLM-L6-v2:
from sentence_transformers import SentenceTransformer
# A small sentence encoder maps each text to a 384-dimensional vector
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
query = "How do I reset my password?"
candidates = ["I forgot my login credentials", "How do I reset my router?"]
# Encode all texts, then compare the query with each candidate by cosine similarity
embeddings = model.encode([query, *candidates])
scores = model.similarity(embeddings[0], embeddings[1:])[0]
for text, score in zip(candidates, scores):
print(f"{score:.2f} {text}")A paráfrase «Esqueci-me das minhas credenciais de início de sessão» obtém 0,68 em relação à pergunta, enquanto «Como reinicio o meu router?», que repete cinco das seis palavras da pergunta, obtém 0,53. A pesquisa semântica e a etapa de recuperação da geração aumentada por recuperação (RAG) classificam documentos com a mesma comparação.
Tarefas comuns de NLP#
- Análise de sentimento: Classifica a opinião expressa numa avaliação, publicação ou resposta a um inquérito como positiva, negativa ou neutra.
- Reconhecimento de entidades nomeadas (NER): Etiqueta cada menção a uma pessoa, organização, local ou data.
- Resposta a perguntas: Devolve a resposta a uma pergunta, em vez de uma lista de documentos.
- Resumo de texto: Condensa um documento num texto mais curto que mantém os seus pontos principais.
- Geração de texto: Escreve texto novo, um token de cada vez; esta é a tarefa subjacente aos chatbots e assistentes de programação.
NLP na visão computacional#
A linguagem também permite às pessoas dizer aos modelos de visão computacional o que procurar, e a combinação de NLP com visão deu origem a modelos que leem e escrevem sobre imagens. Os modelos de visão e linguagem (VLMs) respondem a perguntas sobre fotografias e escrevem legendas para imagens, e o CLIP aprendeu um espaço de embeddings partilhado para imagens e texto a partir de 400 milhões de pares de imagens e legendas. Os detetores de vocabulário aberto recebem a lista de classes como texto: chamar set_classes(["double-decker bus", "person"]) num modelo Ultralytics YOLOE-26 tokeniza cada nome com o tokenizador CLIP e codifica-o com o codificador de texto MobileCLIP2 da Apple; o detetor compara esses embeddings de texto com regiões da imagem para encontrar e segmentar categorias com as quais nunca foi treinado.
NLP e termos relacionados#
- Compreensão da linguagem natural (NLU): A parte do NLP que trata do significado, como a intenção de um utilizador ou aquilo a que um pronome se refere. A geração de linguagem natural (NLG), que produz texto, é a outra parte principal.
- Modelos de linguagem de grande escala: Modelos de linguagem Transformer com milhares de milhões de parâmetros que executam muitas tarefas de NLP por meio de instruções, a um custo por pedido superior ao de um modelo pequeno treinado para uma única tarefa.
- Reconhecimento de fala: Converte áudio falado em texto, que os modelos de NLP interpretam depois.
- Reconhecimento ótico de caracteres (OCR): Converte imagens de texto impresso ou manuscrito em caracteres, a primeira etapa antes de o NLP poder ler um documento digitalizado.










