Processamento de linguagem natural (NLP) é um subcampo da ciência da computação e da inteligência artificial (IA) que usa aprendizado de máquina para permitir que computadores entendam e se comuniquem com a linguagem humana.
O NLP permite que computadores e dispositivos digitais reconheçam, entendam e gerem texto e fala, ao combinar linguística computacional (a modelagem baseada em regras da linguagem humana) com modelagem estatística, aprendizado de máquina e deep learning.
A pesquisa em NLP ajudou a possibilitar a era da IA generativa, desde as habilidades de comunicação de grandes modelos de linguagem (LLMs) até a capacidade de modelos de geração de imagens de entender solicitações. O NLP já faz parte da vida cotidiana de muitos, alimentando mecanismos de busca, acionando chatbots para atendimento ao cliente com comandos falados, sistemas GPS operados por voz e assistentes digitais de resposta a perguntas em smartphones como a Alexa da Amazon, a Siri da Apple e a Cortana da Microsoft.
O PLN também desempenha um papel cada vez maior em soluções empresariais que ajudam a otimizar e automatizar operações de negócios, aumentar a produtividade dos funcionários e simplificar processos empresariais.
O PLN facilita para os humanos a comunicação e colaboração com máquinas, permitindo que eles o façam na linguagem natural humana que usam todos os dias. Isso oferece benefícios em muitos setores e aplicações.
O NLP é especialmente útil na automação total ou parcial de tarefas como suporte ao cliente, inserção de dados e manuseio de documentos. Por exemplo, chatbots alimentados por PLN podem lidar com consultas rotineiras de clientes, liberando agentes humanos para questões mais complexas. No processamento de documentos, as ferramentas de NLP podem classificar automaticamente, extrair informações fundamentais e resumir conteúdo, reduzindo o tempo e os erros associados ao manuseio manual de dados. O NLP facilita a tradução de idiomas, convertendo texto de um idioma para outro enquanto preserva o significado, o contexto e as nuances.
O NLP aprimora a análise de dados ao permitir a extração de insights de dados de texto não estruturados, como avaliações de clientes, postagens em redes sociais e artigos de notícias. Usando técnicas de mineração de texto, o NLP pode identificar padrões, tendências e sentimentos que não são imediatamente óbvios em grandes conjuntos de dados. A análise de sentimentos permite a extração de qualidades subjetivasdo texto, como atitudes, emoções, sarcasmo, confusão ou suspeita. Isso é frequentemente usado para encaminhar as comunicações ao sistema ou à pessoa mais provável de fornecer a próxima resposta.
Isso permite que as empresas entendam melhor as preferências dos clientes, condições de mercado e opinião pública. As ferramentas de PLN também podem realizar categorização e sumarização de vastas quantidades de texto, tornando mais fácil para os analistas identificar informações fundamentais e tomar decisões orientadas por dados de forma mais eficiente.
O NLP beneficia a busca ao permitir que os sistemas entendam a intenção por trás das consultas dos usuários, fornecendo resultados mais precisos e contextualmente relevantes. Em vez de depender apenas da correspondência de palavras-chave, os mecanismos de busca alimentados por NLP analisam o significado de palavras e frases, tornando mais fácil encontrar informações mesmo quando as consultas são vagas ou complexas. Isso melhora a experiência do usuário, seja em buscas na web, recuperação de documentos ou sistemas de dados empresariais.
O NLP alimenta modelos de linguagem avançados para criar texto semelhante ao humano para vários propósitos. Modelos pré-treinados, como o GPT-4, podem gerar artigos, relatórios, cópias de marketing, descrições de produtos e até escrita criativa com base em prompts fornecidos pelos usuários. As ferramentas alimentadas por NLP também podem ajudar a automatizar tarefas como redigir e-mails, escrever postagens em redes sociais ou documentação legal. Ao entender contexto, tom e estilo, o NLP assegura que o conteúdo gerado seja coerente, relevante e alinhado com a mensagem pretendida, economizando tempo e esforço na criação de conteúdo e, ao mesmo tempo, mantendo a qualidade.
O NLP combina o poder da linguística computacional com algoritmos de aprendizado de máquina e deep learning. A linguística computacional usa ciência de dados para analisar linguagem e fala. Inclui dois principais tipos de análise: análise sintática e análise semântica. A análise sintática determina o significado de uma palavra, frase ou sentença ao analisar a sintaxe das palavras e aplicar regras gramaticais programadas previamente. A análise semântica usa a produção sintática para extrair o sentido das palavras e interpretar seu significado dentro da estrutura da sentença.
A análise das palavras pode assumir uma de duas formas. A análise de dependência examina as relações entre palavras, como identificar substantivos e verbos, enquanto a análise de constituintes então constrói uma árvore de análise (ou árvore sintática): uma representação enraizada e ordenada da estrutura sintática da sentença ou sequência de palavras. As árvores de análise resultantes fundamentam as funções de tradutores de idiomas e reconhecimento de fala. Idealmente, essa análise torna o resultado (texto ou fala) compreensível tanto para os modelos de PLN quanto para as pessoas.
O aprendizado autossupervisionado (SSL) em particular é útil para apoiar o NLP porque requer grandes quantidades de dados rotulados para treinar modelos de IA. Como esses conjuntos de dados rotulados exigem anotações demoradas (um processo que envolve rotulagem manual por humanos), coletar dados suficientes pode ser proibitivamente difícil. As abordagens autossupervisionadas podem ser mais eficazes em termos de tempo e custo, pois substituem parte ou todo o treinamento de dados rotulados manualmente.
Três diferentes abordagens para o NLP incluem:
As primeiras aplicações do NLP eram simples decision trees que exigiam regras programadas previamente. Elas só eram capazes de fornecer respostas a partir de prompts específicos, como a versão original do Moviefone, que tinha recursos rudimentares de geração de linguagem natural (NLG). Como não há recursos de aprendizado de máquina ou IA no NLP baseado em regras, essa função é altamente limitada e não escalável.
Desenvolvido posteriormente, o NLP estatístico extrai, classifica e rotula automaticamente elementos de dados de texto e voz e, em seguida, atribui uma probabilidade estatística a cada possível significado desses elementos. Isso depende do aprendizado de máquina, permitindo uma análise sofisticada da linguística, como a marcação de partes do discurso.
O NLP estatístico introduziu a técnica essencial de mapear elementos da linguagem, como palavras e regras gramaticais, para uma representação vetorial, possibilitando que a linguagem seja modelada usando métodos matemáticos (estatísticos), incluindo regressão ou modelos de Markov. Isso influenciou os primeiros desenvolvimentos do NLP, como corretores ortográficos e a digitação T9 (texto em nove teclas, para ser usado em telefones de teclas).
Recentemente, modelos de deep learning tornaram-se o modo dominante do NLP, usando enormes volumes de dados não estruturados brutos (tanto texto quanto voz) para se tornarem cada vez mais precisos. O deep learning pode ser visto como uma evolução adicional do NLP estatístico, com a diferença de que utiliza modelos de redes neurais . Existem várias subcategorias de modelos:
Modelos sequence-to-sequence (seq2seq): baseados em redes neurais recorrentes (RNN), têm sido utilizados na maior parte para tradução automática, ao converter uma frase de um domínio (como a língua alemã) em uma frase de outro domínio (como o inglês).
Modelos de transformadores: utilizam tokenização da linguagem (a posição de cada token, palavras ou subpalavras) e autoatenção (capturando dependências e relacionamentos) para calcular a relação entre diferentes partes da linguagem. Os modelos de transformadores podem ser treinados de forma eficiente utilizando aprendizado autossupervisionado em grandes bancos de dados de texto. Um marco em modelos de transformadores foram as representações de codificadores bidirecionais do Google a partir de transformadores (BERT), que se tornaram e continuam sendo a base de como o mecanismo de busca do Google funciona.
Modelos autorregressivos: esse tipo de modelo de transformador é treinado especificamente para prever a próxima palavra em uma sequência, representando um enorme avanço na capacidade de gerar texto. Exemplos de LLMs autorregressivos incluem GPT, Llama, Claude e o Mistral de código aberto.
Modelos de base: modelos de base criados previamente e selecionados podem acelerar o lançamento de um esforço de NLP e aumentar a confiança em sua operação. Por exemplo, os modelos de base IBM Granite são amplamente aplicáveis em diversos setores. Eles são compatíveis com tarefas de NLP, incluindo geração de conteúdo e extração de insights. Além disso, facilitam a geração aumentada por recuperação, uma framework para melhorar a qualidade das respostas ao vincular o modelo a fontes externas de conhecimento. Os modelos também realizam o named entity recognition, o que envolve identificar e extrair informações-chave em um texto.
Várias tarefas de PLN tipicamente ajudam a processar dados de texto e voz humanos de maneiras que ajudam o computador a entender o que está ingerindo. Algumas dessas tarefas incluem:
Resolução de correferência
Reconhecimento de entidade nomeada
Marcação de partes do discurso
Desambiguação de sentido de palavra
Essa é a tarefa de identificar se e quando duas palavras se referem à mesma entidade. O exemplo mais comum é determinar a pessoa ou objeto ao qual um certo pronome se refere (como "ela" = "Maria"). Mas também pode identificar uma metáfora ou uma expressão no texto (como uma instância em que "urso" não é um animal, mas uma pessoa grande e peluda).
O NER identifica palavras ou frases como entidades úteis. O NER identifica "Londres" como um local ou "Maria" como o nome de uma pessoa.
Também chamada de rotulação gramatical, esse é o processo de determinar a qual parte do discurso uma palavra ou trecho de texto pertence, com base em seu uso e contexto. A análise gramatical identifica "dever" como um verbo em "Ele vai dever para o banco" e como um substantivo em "Eu preciso fazer meu dever de casa?".
Essa é a seleção do significado de uma palavra que possui múltiplos significados possíveis. Isso usa um processo de análisesemântica para examinar a palavra no contexto. Por exemplo, a desambiguação do sentido da palavra ajuda a distinguir o significado do verbo “make” em “make the grade” (alcançar) versus “make a bet” (colocar). Classificar “I will be merry when I marry Mary” requer um sistema de NLP sofisticado.
O PLN funciona combinando várias técnicas computacionais para analisar, entender e gerar linguagem humana de uma maneira que as máquinas possam processar. Aqui está uma visão geral de um pipeline típico de PLN e seus passos:
O pré-processamento de texto no NLP prepara o texto bruto para análise, ao transformá-lo em um formato que as máquinas podem entender mais facilmente. Começa com a tokenização, que envolve dividir o texto em unidades menores como palavras, frases ou sentenças. Isso ajuda a quebrar textos complexos em partes manejáveis. Em seguida, aplica-se a conversão para minúsculas, para padronizar o texto convertendo todos os caracteres para minúsculas, garantindo que palavras como "Maçã" e "maçã" sejam tratadas da mesma forma. A remoção de palavras irrelevantes é outro passo comum, onde palavras frequentemente usadas como "é" ou "o" são filtradas porque não agregam muito significado ao texto. Stemming ou lematização reduz as palavras à sua forma raiz (por exemplo, "correndo" se torna "correr"), facilitando a análise da linguagem ao agrupar diferentes formas da mesma palavra. Além disso, a limpeza de texto remove elementos indesejados, como pontuação, caracteres especiais e números, que podem atrapalhar a análise.
Após o pré-processamento, o texto fica limpo, padronizado e pronto para ser interpretado de maneira eficaz por modelos de aprendizado de máquina.
A extração de funcionalidades é o processo de converter texto bruto em representações numéricas que as máquinas podem analisar e interpretar. Isso envolve transformar o texto em dados estruturados usando técnicas de NLP como Bag of words e TF-IDF, que quantificam a presença e importância das palavras em um documento. Métodos mais avançados incluem incorporações de palavras como Word2Vec ou GloVe, que representam palavras como vetores densos em um espaço contínuo, capturando relações semânticas entre as palavras. Incorporações contextuais aprimoram isso ao considerar o contexto em que as palavras aparecem, permitindo representações mais ricas e sutis.
A análise de texto envolve a interpretação e extração de informações significativas de dados textuais por meio de várias técnicas computacionais. Esse processo inclui tarefas como marcação de partes da fala (POS), que identifica funções gramaticais de palavras e Named Entity Recognition (NER), que detecta entidades específicas como nomes, locais e datas. A análise de dependências examina as relações gramaticais entre as palavras para entender a estrutura das sentenças, enquanto a análise de sentimentos determina o tom emocional do texto, avaliando se é positivo, negativo ou neutro. A modelagem de tópicos identifica temas ou tópicos subjacentes dentro de um texto ou em um conjunto de documentos. O entendimento de linguagem natural (Natural Language Understanding, ou NLU) é um subconjunto do NLP que se concentra na análise do significado por trás das frases. O NLU permite que o software encontre significados semelhantes em frases diferentes ou processe palavras que têm significados distintos. Por meio dessas técnicas, a análise de texto do NLP transforma texto não estruturado em insights.
Então, os dados processados são usados para treinar modelos de aprendizado de máquina, que aprendem padrões e relações dentro dos dados. Durante o treinamento, o modelo ajusta seus parâmetros para minimizar erros e melhorar seu desempenho. Uma vez treinado, o modelo pode ser usado para fazer previsões ou gerar saídas em novos dados não vistos. A eficácia da modelagem do NLP é refinada continuamente por meio de avaliação, validação e ajuste fino para melhorar a precisão e relevância em aplicações do mundo real.
Diferentes ambientes de software são úteis ao longo desses processos. Por exemplo, o Natural Language Toolkit (NLTK) é um conjunto de bibliotecas e programas para o inglês, escrito na linguagem de programação Python. Ele é compatível com classificação de texto, tokenização, stemming, marcação, análise e funcionalidades de raciocínio semântico. O TensorFlow é uma biblioteca de software de código aberto e sem custo para aprendizado de máquina e IA, que pode ser usado para treinar modelos para aplicações de NLP. Há muitos tutoriais e certificações disponíveis para quem estiver interessado em se familiarizar com essas ferramentas.
Mesmo os modelos de PLN mais avançados não são perfeitos, assim como a fala humana está sujeita a erros. Como qualquer tecnologia de IA, o PLN vem com possíveis armadilhas. A linguagem humana é repleta de ambiguidades, o que torna difícil para os programadores escreverem softwares que determinem com precisão o significado pretendido de dados textuais ou de voz. A linguagem humana pode levar anos para ser aprendida, e muitos nunca param de aprender. Mas os programadores devem ensinar as aplicações com PLN a reconhecer e entender irregularidades para que suas aplicações possam ser precisas e úteis.Riscos associados podem incluir:
Como acontece com qualquer função de IA, dados tendenciosos usados no treinamento distorcem as respostas. Quanto mais diversificados forem os usuários de uma função do NLP, mais significativo esse risco se torna, como em serviços de governo, saúde e interações de RH. Conjuntos de dados de treinamento extraídos da web, por exemplo, são propensos a serem tendenciosos.
Assim como na programação, existe o risco de "garbage in, garbage out" (GIGO). Reconhecimento de voz, também conhecido como speech to text, é a tarefa de converter de forma confiável dados de voz em dados de texto. Mas as soluções de LP podem ficar confusas se a entrada estiver em um dialeto obscuro, resmungada, muito cheia de gírias, homônimos, gramática incorreta, expressões idiomáticas, fragmentos, pronúncias erradas, contrações ou gravada com muito ruído de fundo.
Novas palavras estão sendo continuamente inventadas ou importadas. As convenções gramaticais podem evoluir ou ser intencionalmente rompidas. Nesses casos, o NLP pode fazer a melhor suposição ou admitir que não tem certeza; de qualquer forma, isso gera uma complicação.
Quando as pessoas falam, a forma como elas expressam verbalmente ou até a linguagem corporal podem dar um significado completamente diferente das palavras sozinhas. Exagero para efeito, ênfase em palavras importantes ou sarcasmo podem confundir o NLP, tornando a análise semântica mais difícil e menos confiável.
Aplicações de NLP agora podem ser encontradas em praticamente todos os setores.
Nas transações financeiras, nanosegundos podem fazer a diferença entre sucesso e fracasso ao acessar dados, fazer negociações ou acordos. O NLP pode acelerar a mineração de informações de demonstrações financeiras, relatórios regulatórios e anuais, comunicados à imprensa ou até redes sociais.
Novos insights e descobertas médicos podem chegar mais rápido do que muitos profissionais de saúde conseguem acompanhar. Ferramentas baseadas em NLP e IA podem ajudar a acelerar a análise de registros de saúde e artigos de pesquisa médica, possibilitando decisões médicas mais informadas ou ajudando na detecção ou até prevenção de condições médicas.
O NLP pode analisar sinistros para buscar padrões que possam identificar áreas de preocupação e encontrar ineficiências no processamento de sinistros, levando a uma maior otimização do processamento e dos esforços dos funcionários.
Quase qualquer caso legal pode exigir a revisão de montanhas de documentos, informações prévias e precedentes legais. O NLP pode ajudar a automatizar a descoberta legal, auxiliando na organização das informações, acelerando a avaliação e garantindo que todos os detalhes relevantes sejam capturados para consideração.
Projete assistentes e agentes de IA escaláveis com facilidade, automatize tarefas repetitivas e simplifique processos complexos com o IBM® watsonx Orchestrate.
Acelere o valor comercial da inteligência artificial com um portfólio poderoso e flexível de bibliotecas, serviços e aplicativos.
Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.
O IBM Granite é nossa família de modelos de IA abertos, de alto desempenho e confiáveis, personalizados para a empresa e otimizados para escalar suas aplicações de IA. Explore as opções de linguagens, código, séries temporais e proteções.
Descubra como o processamento de linguagem natural pode ajudar você a conversar de forma mais natural com computadores.
Entrevistamos duas mil organizações a respeito de suas iniciativas de IA para descobrir o que está funcionando, o que não está e como se preparar.
Explore o site do desenvolvedor da IBM para acessar blogs, artigos, boletins informativos e saber mais sobre a IA incorporável da IBM.