Natural Language Processing: Fundamentos da IA
Natural language processing, ou NLP (Processamento de Linguagem Natural), é a área da Inteligência Artificial que permite a um software interpretar textos e falas de forma natural e responder de acordo. Em outras palavras, é o que faz uma aplicação entender o que uma pessoa escreveu ou disse, em vez de apenas armazenar caracteres.
Neste artigo, você vai entender o que o NLP resolve, como ele funciona por baixo dos panos e quais serviços do Microsoft Azure entregam esses recursos prontos para uso.
Fundamentos da Inteligência Artificial
Esta publicação faz parte de uma série de artigos sobre os Fundamentos da Inteligência Artificial. Confira abaixo a série completa.
- Parte 1: O que é Inteligência Artificial
- Parte 2: Machine Learning
- Parte 3: Computer Vision
- Parte 4: Natural Language Processing (você está aqui)
- Parte 5: Document Intelligence
- Parte 6: Knowledge Mining
- Parte 7: Generative AI
A série segue o conteúdo da certificação Azure AI Fundamentals, por isso cada parte apresenta um conceito e, em seguida, os serviços do Azure ligados a ele.
O que é natural language processing
O natural language processing reúne técnicas que transformam linguagem humana em informação que um computador consegue processar. Afinal, um texto livre não tem colunas, tipos nem chaves, ao contrário de uma tabela no banco de dados.
Na prática, o NLP extrai sinais estruturados desse texto livre. Por exemplo, ele devolve rótulos, pontuações de confiança, trechos identificados e a estrutura sintática de uma frase.
Dessa forma, a aplicação consegue tomar decisões com base no conteúdo. Um e-mail vira uma categoria, um comentário vira uma nota de sentimento e uma frase falada vira um comando.
O que o NLP permite construir
Com natural language processing, conseguimos criar softwares que:
- Analisam e interpretam textos em documentos, e-mails e outras fontes
- Interpretam linguagem falada e sintetizam respostas em fala
- Traduzem falas ou textos para diversos idiomas
- Interpretam comandos e tomam ações apropriadas
Esses quatro grupos cobrem a maior parte dos cenários reais. Além disso, eles costumam aparecer combinados na mesma solução, como em um assistente que ouve, entende e responde por voz.
Como o natural language processing funciona
Antes de qualquer análise, o texto passa por etapas de preparação. A primeira delas costuma ser a tokenização, que quebra o texto em unidades menores, como palavras ou pedaços de palavras.
Em seguida, entram técnicas como a normalização e o stemming, que reduzem variações de uma mesma palavra a uma forma comum. Assim, "processar", "processando" e "processado" passam a ser tratados como o mesmo conceito.
Depois disso, o natural language processing aplica modelos para tarefas específicas. Alguns são baseados em regras, outros em estatística, como o TF-IDF, e os mais recentes usam redes neurais profundas.
Natural language processing e modelos de linguagem
Muita gente confunde NLP com os grandes modelos de linguagem, como o GPT. No entanto, a documentação de arquitetura do Azure deixa clara a diferença entre os dois.
O natural language processing é o domínio amplo, que inclui tokenização, reconhecimento de entidades, análise de sentimento e classificação de documentos. Por outro lado, os modelos de linguagem são um subconjunto baseado em deep learning, focado em compreensão e geração de texto em alto nível.
Em outras palavras, um modelo como o GPT é uma ferramenta dentro do NLP, e não um sinônimo dele. Se você quiser entender esse lado generativo em detalhes, leia o artigo sobre como funciona uma LLM.
A diferença também aparece na saída. Enquanto as técnicas clássicas devolvem rótulos e pontuações, os modelos de linguagem devolvem texto fluente, como resumos e respostas.
Tarefas comuns de natural language processing
Algumas tarefas aparecem em quase todo projeto que envolve texto. Por isso, vale conhecer cada uma antes de escolher um serviço.
A detecção de idioma identifica em qual língua um texto foi escrito. Ela costuma ser o primeiro passo, porque as demais análises dependem do idioma correto.
A análise de sentimento classifica um texto como positivo, negativo ou neutro. Além disso, a mineração de opinião liga esse sentimento a aspectos específicos, como "atendimento" ou "preço" em uma avaliação de produto.
A extração de frases-chave devolve os principais conceitos de um texto não estruturado. Com isso, fica fácil gerar tags e alimentar mecanismos de busca.
O reconhecimento de entidades nomeadas, conhecido como NER, encontra pessoas, organizações, locais, datas e outros tipos predefinidos. Já a detecção de PII identifica e mascara dados pessoais, o que ajuda em cenários de privacidade.
Por fim, a sumarização condensa documentos e conversas longas. Ela pode ser extrativa, quando seleciona frases do original, ou abstrativa, quando gera frases novas.
Natural language processing no Microsoft Azure
O Microsoft Azure fornece dois serviços principais para trabalhar com natural language processing. O primeiro cuida do texto, e o segundo cuida da fala.
Ambos fazem parte do que a Microsoft hoje chama de Foundry Tools, a família de serviços de IA prontos para uso. Portanto, você não precisa treinar modelos do zero para resolver os casos mais comuns.
Azure AI Language
O Azure AI Language é o serviço destinado ao trabalho com natural language processing sobre texto. A documentação atual o chama de Azure Language in Foundry Tools.
Entre suas funcionalidades estão entender e analisar textos e treinar modelos de linguagem conversacional, que podem entender comandos falados ou escritos. Além disso, ele oferece detecção de idioma, NER, detecção de PII, análise de sentimento, extração de frases-chave e sumarização.
O serviço também tem recursos personalizáveis. Com o NER personalizado e a classificação de texto personalizada, você treina modelos com seus próprios dados para categorias que os modelos prontos não cobrem.
Recentemente, a Microsoft passou a separar os recursos em dois grupos. Os recursos centrais, como detecção de idioma, PII, NER e análise de texto para saúde, continuam recebendo investimento.
Já recursos como análise de sentimento, extração de frases-chave, sumarização e CLU entraram no grupo legado. Segundo a documentação, eles terão fim de suporte em 31 de março de 2029, e a recomendação para projetos novos é usar modelos do Microsoft Foundry.
Azure AI Speech
O Azure AI Speech é outro serviço que pode ser utilizado para construir soluções de natural language processing. Nesse caso, a entrada ou a saída é a voz.
Entre as funcionalidades do Azure AI Speech estão o reconhecimento de fala e a síntese de fala, além de traduções em tempo real e transcrições de conversas. Ou seja, ele converte áudio em texto e texto em áudio.
A conversão de fala em texto aceita transcrição em tempo real, transcrição rápida de arquivos gravados e transcrição em lote para grandes volumes. Por outro lado, a conversão de texto em fala usa vozes neurais, ajustáveis com a linguagem de marcação SSML.
O serviço ainda identifica idiomas falados em um áudio e separa falantes em uma conversa, recurso chamado de diarização. Também é possível criar vozes personalizadas para uma marca, embora esse recurso tenha acesso limitado.
Vale notar que o Speech não faz análise de sentimento nem extração de entidades. Para isso, a própria documentação indica combinar a transcrição com o Azure AI Language.
Como explorar os recursos sem escrever código
Você pode explorar recursos do Azure AI Language no Azure Language Studio e recursos do Azure AI Speech no Azure Speech Studio. Ambos são portais visuais, com exemplos prontos e campos para testar seus próprios textos e áudios.
No entanto, a experiência está migrando para o portal do Microsoft Foundry. A documentação informa que o Language Studio deixará de existir em 20 de março de 2027, sem impacto nos projetos, dados ou endpoints já existentes.
No Foundry, os recursos de natural language processing aparecem em playgrounds. Neles, você escolhe um texto de exemplo, envia um arquivo ou digita seu próprio conteúdo e vê o resultado na hora.
O mesmo vale para a fala. A Microsoft recomenda levar os modelos personalizados do Speech Studio para o Foundry, conectando o recurso de Speech que você já possui.
Natural language processing com C# e .NET
Esses recursos também estão disponíveis através de diversas linguagens de programação. Há bibliotecas cliente para C#, Python, Java e JavaScript, além das APIs REST.
No .NET, o pacote Azure.AI.TextAnalytics dá acesso aos recursos de texto do Azure AI Language. Para começar, crie um recurso no portal do Azure e guarde a chave e o endpoint em variáveis de ambiente.
Análise de sentimento com o Azure AI Language
O exemplo a seguir cria um TextAnalyticsClient, detecta o idioma de uma avaliação e, em seguida, calcula o sentimento dela.
using Azure;
using Azure.AI.TextAnalytics;
// Lê a chave e o endpoint do recurso de Language
string languageKey = Environment.GetEnvironmentVariable("LANGUAGE_KEY")!;
string languageEndpoint = Environment.GetEnvironmentVariable("LANGUAGE_ENDPOINT")!;
var client = new TextAnalyticsClient(
new Uri(languageEndpoint),
new AzureKeyCredential(languageKey));
string review = "The food was great, but the delivery took too long.";
// Detecta o idioma do texto
DetectedLanguage language = client.DetectLanguage(review);
Console.WriteLine($"Language: {language.Name}");
// Analisa o sentimento do documento e de cada frase
DocumentSentiment sentiment = client.AnalyzeSentiment(review);
Console.WriteLine($"Sentiment: {sentiment.Sentiment}");
foreach (SentenceSentiment sentence in sentiment.Sentences)
{
Console.WriteLine($"{sentence.Text} => {sentence.Sentiment}");
}
O resultado traz o sentimento geral e o sentimento de cada frase. Nesse caso, a primeira parte da avaliação tende a sair positiva e a segunda, negativa.
Além disso, o objeto ConfidenceScores informa a confiança do modelo em cada classificação. Com isso, você define um limite mínimo antes de agir sobre o resultado.
Reconhecimento de fala com o Azure AI Speech
Para a fala, o pacote é o Microsoft.CognitiveServices.Speech. O exemplo abaixo captura uma frase do microfone padrão e a transforma em texto.
using Microsoft.CognitiveServices.Speech;
// Lê a chave e a região do recurso de Speech
string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY")!;
string speechRegion = Environment.GetEnvironmentVariable("SPEECH_REGION")!;
var config = SpeechConfig.FromSubscription(speechKey, speechRegion);
config.SpeechRecognitionLanguage = "pt-BR";
using var recognizer = new SpeechRecognizer(config);
Console.WriteLine("Speak into your microphone.");
SpeechRecognitionResult result = await recognizer.RecognizeOnceAsync();
if (result.Reason == ResultReason.RecognizedSpeech)
{
Console.WriteLine($"Recognized: {result.Text}");
}
A propriedade SpeechRecognitionLanguage define o idioma esperado. Por isso, ela precisa bater com a língua falada para que a transcrição tenha boa precisão.
Juntando os dois exemplos, você já tem um fluxo completo de natural language processing. Primeiro o Speech transcreve o áudio, e depois o Language analisa o texto transcrito.
Casos de uso de natural language processing
Um caso clássico é a análise de avaliações e redes sociais. A empresa coleta comentários, mede o sentimento e descobre quais aspectos do produto geram mais reclamações.
Outro cenário comum é o atendimento ao cliente. Nesse caso, a fala do cliente vira texto, o sistema identifica a intenção e direciona a chamada para o setor certo.
A própria Microsoft demonstra esse fluxo em um cenário de call center. Ali, as ligações são transcritas, os dados pessoais são mascarados e o sentimento de cada conversa é extraído.
Também há aplicações em conformidade e organização de documentos. O natural language processing classifica arquivos sensíveis, marca spam e gera palavras-chave para facilitar a busca.
Por fim, a tradução de texto e de fala remove barreiras de idioma entre equipes e clientes. Essa é uma das aplicações mais visíveis do NLP no dia a dia.
Cuidados ao adotar natural language processing
Todo modelo de natural language processing erra em alguma medida. Por isso, trate as pontuações de confiança como parte da regra de negócio, e não como detalhe.
O idioma também importa. Nem todo recurso tem a mesma qualidade em todas as línguas, então vale testar com textos reais em português antes de ir para produção.
Além disso, textos de usuários costumam conter dados pessoais. Nesse cenário, a detecção de PII ajuda a mascarar essas informações antes de armazenar ou enviar o conteúdo a outros sistemas.
Quando há exigências de conformidade ou de residência de dados, alguns recursos rodam em containers. Assim, o processamento acontece mais perto dos seus dados, inclusive em ambientes locais.
Por fim, acompanhe o ciclo de vida dos recursos que você escolher. Como vimos, parte do Azure AI Language já tem data de fim de suporte, e isso pesa na decisão de um projeto novo.
Conclusão
Natural language processing é um segmento da IA que nos permite analisar e interpretar textos e falas de forma natural. Ele vai das técnicas clássicas, como tokenização e NER, até os modelos de linguagem modernos.
No Azure, temos dois serviços que compõem esta área: o Azure AI Speech e o Azure AI Language. O primeiro cuida da voz, enquanto o segundo cuida da compreensão do texto.
Podemos testar essas funcionalidades pelos portais visuais, hoje concentrados no Microsoft Foundry, ou via código, com suporte a diferentes linguagens de programação. No próximo artigo da série, o assunto é Document Intelligence, que aplica IA à leitura de documentos.
FAQ
O que significa NLP?
NLP é a sigla de Natural Language Processing, ou Processamento de Linguagem Natural. É a área da IA que permite a um software interpretar e gerar linguagem humana.
Qual a diferença entre NLP e LLM?
O NLP é o campo amplo de processamento de texto. Uma LLM é um tipo de modelo de linguagem baseado em deep learning, que funciona como uma ferramenta dentro desse campo.
Quais serviços do Azure oferecem NLP?
Os principais são o Azure AI Language, para análise de texto, e o Azure AI Speech, para reconhecimento e síntese de fala. O Azure Translator complementa a parte de tradução.
Preciso saber programar para testar NLP no Azure?
Não. Os playgrounds do Microsoft Foundry permitem testar os recursos digitando textos ou enviando arquivos, sem escrever código.
Posso usar NLP do Azure com C#?
Sim. O pacote Azure.AI.TextAnalytics cobre os recursos de texto, e o pacote Microsoft.CognitiveServices.Speech cobre os recursos de fala.
O Language Studio vai deixar de existir?
Sim. Segundo a documentação, ele migra para o Microsoft Foundry em 20 de março de 2027, sem afetar projetos e endpoints existentes.