Processamento de linguagem natural ou PLN
O processamento de linguagem natural (PLN) é a capacidade de um programa de computador de compreender a linguagem humana conforme ela é falada e escrita –conhecida como linguagem natural. É um componente da inteligência artificial (IA).
A PLN existe há mais de 50 anos e tem suas raízes no campo da linguística. Possui uma variedade de aplicações do mundo real em vários campos, incluindo pesquisa médica, mecanismos de pesquisa e inteligência de negócios.
Como funciona o processamento de linguagem natural?
A PLN permite que os computadores entendam a linguagem natural como os humanos. Quer a linguagem seja falada ou escrita, o processamento da linguagem natural utiliza inteligência artificial para receber informações do mundo real, processá-las e entendê-las de uma forma que um computador possa compreender. Assim como os humanos têm sensores diferentes –como ouvidos para ouvir e olhos para ver– os computadores têm programas para leitura e microfones para coletar áudio. E assim como os humanos têm um cérebro para processar essas informações, os computadores possuem um programa para processar suas respectivas entradas. Em algum momento durante o processamento, a entrada é convertida em código que o computador pode entender.
Existem duas fases principais no processamento de linguagem natural: pré-processamento de dados e desenvolvimento de algoritmos.
O pré-processamento de dados envolve preparar e “limpar” dados de texto para que as máquinas possam analisá-los. O pré-processamento coloca os dados em um formato viável e destaca recursos de texto com os quais um algoritmo pode trabalhar. Existem várias maneiras de fazer isso, incluindo:
- Tokenização. É quando o texto é dividido em unidades menores para trabalhar.
- Eliminação de palavras. É quando as palavras comuns são removidas do texto, para que permaneçam as palavras únicas que oferecem mais informações sobre o texto.
- Lematização e derivação. É quando as palavras são reduzidas às suas raízes para processamento.
- Rotulagem de parte do discurso. É quando as palavras são marcadas de acordo com a parte do discurso - como substantivos, verbos e adjetivos.
Depois que os dados foram pré-processados, um algoritmo é desenvolvido para processá-los. Existem muitos algoritmos diferentes de processamento de linguagem natural, mas dois tipos principais são comumente usados:
- Sistema baseado em regras. Este sistema utiliza regras linguísticas cuidadosamente concebidas. Essa abordagem foi usada no início do desenvolvimento do processamento de linguagem natural e ainda é usada hoje.
- Sistema baseado em aprendizado de máquina. Algoritmos de aprendizado de máquina usam métodos estatísticos. Eles aprendem a executar tarefas com base nos dados de treinamento que recebem e ajustam seus métodos à medida que mais dados são processados. Usando uma combinação de aprendizado de máquina, aprendizado profundo e redes neurais, os algoritmos de processamento de linguagem natural refinam suas próprias regras por meio de processamento e aprendizado repetidos.
Por que o processamento de linguagem natural é importante?
As empresas usam grandes quantidades de dados não estruturados e com muito texto e precisam de uma maneira de processá-los com eficiência. Grande parte da informação criada online e armazenada em bases de dados é linguagem humana natural e, até recentemente, as empresas não conseguiam analisar estes dados de forma eficaz. É aqui que o processamento de linguagem natural se torna útil.
A vantagem do processamento de linguagem natural pode ser vista considerando as duas afirmações a seguir: “o seguro de computação em nuvem deve fazer parte de todo acordo de nível de serviço” e “um bom SLA garante uma noite de sono mais agradável – mesmo na nuvem”. Si un usuario confía en el procesamiento del lenguaje natural para realizar búsquedas, el programa reconocerá que la computación en la nube es una entidad, que la nube es una forma abreviada de computación en la nube y que SLA es un acrónimo industrial de acuerdo de nivel de serviço.
Esses são os tipos de elementos vagos que aparecem com frequência na linguagem humana e que os algoritmos de aprendizado de máquina têm sido historicamente ruins na interpretação. Agora, com melhorias nos métodos de aprendizado profundo e de aprendizado de máquina, os algoritmos podem interpretá-los de maneira eficaz. Essas melhorias expandem a amplitude e a profundidade dos dados que podem ser analisados.
Técnicas e métodos de processamento de linguagem natural
A análise sintática e semântica são duas técnicas principais usadas no processamento de linguagem natural.
Sintaxe é a disposição das palavras em uma frase para que façam sentido gramatical. A PLN usa sintaxe para avaliar o significado de uma linguagem com base em regras gramaticais. As técnicas de sintaxe incluem:
- Análise. Esta é a análise gramatical de uma frase. Exemplo : Um algoritmo de processamento de linguagem natural recebe a frase “O cachorro latiu”. A análise envolve dividir esta frase em partes da frase - ou seja, cachorro = substantivo, latido = verbo. Isso é útil para tarefas de pós-processamento mais complexas.
- Segmentação de palavras. Este é o ato de pegar uma sequência de texto e derivar dela formas de palavras. Exemplo: Uma pessoa digitaliza um documento manuscrito em um computador. O algoritmo seria capaz de analisar a página e reconhecer que as palavras estão divididas por espaços em branco.
- Quebra de sentença. Isso coloca limites de frase em textos grandes. Exemplo: Um algoritmo de processamento de linguagem natural recebe o texto "O cachorro latiu. Acordei". O algoritmo pode reconhecer o período que divide as sentenças separando as sentenças.
- Segmentação morfológica. Isso divide as palavras em partes menores chamadas morfemas. Exemplo: a palavra untestably (ineverificável) seria dividida em [[un[[test]able]]ly], onde o algoritmo reconhece "un", "test", "able" e "ly" como morfemas. Isto é especialmente útil em tradução automática e reconhecimento de fala.
- Derivados. Isso divide as palavras flexionadas em formas de raiz. Exemplo: Na frase “O cachorro latiu”, o algoritmo pode reconhecer que a raiz da palavra “latiu” é “latir”. Isso seria útil se um usuário estivesse analisando um texto para todas as instâncias da palavra latido, bem como todas as suas conjugações. O algoritmo pode ver que são essencialmente a mesma palavra, embora as letras sejam diferentes.
A semântica envolve o uso e o significado por trás das palavras. O processamento de linguagem natural aplica algoritmos para compreender o significado e a estrutura das frases. As técnicas semânticas incluem:
- Desambiguação do significado da palavra. Isso deriva o significado de uma palavra com base no contexto. Exemplo: Considere a frase “O porco está no curral”. A palavra caneta tem significados diferentes. Um algoritmo que utiliza este método pode entender que o uso da palavra caneta aqui se refere a uma área cercada, não a um instrumento de escrita.
- Reconhecimento de entidade nomeada. Isso determina as palavras que podem ser classificadas em grupos. Exemplo: Um algoritmo que utiliza este método poderia analisar uma notícia e identificar todas as menções a uma determinada empresa ou produto. Usando a semântica do texto, você seria capaz de diferenciar entidades que são visualmente iguais. Por exemplo, na frase “O filho de Daniel McDonald’s foi ao McDonald’s e pediu um McLanche Feliz”, o algoritmo foi capaz de reconhecer as duas instâncias de “McDonald’s” como duas entidades separadas – uma, um restaurante, e a outra, uma pessoa.
- Geração de linguagem natural. Ele usa um banco de dados para determinar a semântica por trás das palavras e gerar novo texto. Exemplo: Um algoritmo poderia escrever automaticamente um resumo das descobertas de uma plataforma de business intelligence, mapeando certas palavras e frases para características dos dados na plataforma de BI. Outro exemplo seria gerar automaticamente artigos de notícias ou tweets com base em um determinado corpo de texto utilizado para treinamento .
As abordagens atuais ao processamento de linguagem natural baseiam-se na aprendizagem profunda, um tipo de IA que examina e utiliza padrões em dados para melhorar a compreensão de um programa. Os modelos de aprendizagem profunda requerem grandes quantidades de dados rotulados para que o algoritmo de processamento de linguagem natural treine e identifique correlações relevantes, e a montagem deste tipo de conjunto de big data é um dos principais obstáculos para o processamento de linguagem natural.
As abordagens anteriores ao processamento de linguagem natural envolviam uma abordagem mais baseada em regras, na qual algoritmos de aprendizado de máquina mais simples eram informados sobre quais palavras e frases procurar no texto e davam respostas específicas quando essas frases apareciam. Mas a aprendizagem profunda é uma abordagem mais flexível e intuitiva na qual os algoritmos aprendem a identificar a intenção dos falantes a partir de muitos exemplos – da mesma forma que uma criança aprenderia a linguagem humana.
Três ferramentas comumente usadas para processamento de linguagem natural incluem Natural Language Toolkit (NLTK), Gensim e Intel Natural Language Processing Architect. NLTK é um módulo Python de código aberto com conjuntos de dados e tutoriais. Gensim é uma biblioteca Python para modelagem de tópicos e indexação de documentos. Intel NLP Architect é outra biblioteca Python para topologias e técnicas de aprendizado profundo.
Para que é usado o processamento de linguagem natural?
Algumas das principais funções executadas pelos algoritmos de processamento de linguagem natural são:
- Classificação de texto. Envolve atribuir rótulos aos textos para classificá-los em categorias. Isso pode ser útil para análise de sentimento, que ajuda o algoritmo de processamento de linguagem natural a determinar o sentimento ou emoção por trás de um texto. Por exemplo, quando a marca A é mencionada em um número X de textos, o algoritmo pode determinar quantas dessas menções foram positivas e quantas foram negativas. Também pode ser útil para detecção de intenções, o que ajuda a prever o que o orador ou escritor pode fazer com base no texto que está produzindo.
- Extração de texto. Isso envolve resumir automaticamente o texto e encontrar dados importantes. Um exemplo disso é a extração de palavras-chave, que extrai as palavras mais importantes do texto, o que pode ser útil para otimização de mecanismos de busca. Fazer isso com processamento de linguagem natural requer alguma programação – não é completamente automatizado. No entanto, existem muitas ferramentas simples de extração de palavras-chave que automatizam a maior parte do processo – o usuário só precisa definir parâmetros dentro do programa. Por exemplo, uma ferramenta poderia extrair as palavras usadas com mais frequência no texto. Outro exemplo é o reconhecimento de entidade nomeada, que extrai nomes de pessoas, lugares e outras entidades do texto.
- Tradução automática. Este é o processo pelo qual um computador traduz texto de um idioma, como o inglês, para outro idioma, como o francês, sem intervenção humana.
- Geração de linguagem natural. Isso envolve o uso de algoritmos de processamento de linguagem natural para analisar dados não estruturados e produzir conteúdo automaticamente com base nesses dados. Um exemplo disso são modelos de linguagem como o GPT3, que são capazes de analisar textos não estruturados e então gerar artigos confiáveis com base no texto.
As funções listadas acima são usadas em diversas aplicações do mundo real, incluindo:
- análise de feedback do cliente – a IA analisa análises de mídia social;
- automação do atendimento ao cliente – assistentes de voz do outro lado da linha telefônica de atendimento ao cliente podem usar o reconhecimento de fala para entender o que o cliente está dizendo para que possam direcionar a chamada de maneira adequada;
- tradução automática — utilizando ferramentas como Google Translate, Bing Translator e Translate Me;
- pesquisa e análise acadêmica — a IA é capaz de analisar enormes quantidades de material acadêmico e artigos de pesquisa não apenas com base nos metadados do texto, mas no próprio texto;
- análise e categorização de registros médicos — a IA usa insights para prever e, idealmente, prevenir doenças;
- processadores de texto usados para plágio e revisão — usando ferramentas como Grammarly e Microsoft Word;
- previsão de ações e insights de negociação financeira — uso de inteligência artificial para analisar o histórico do mercado e documentos 10-K, que contêm resumos abrangentes do desempenho financeiro de uma empresa;
- recrutamento de talentos em recursos humanos; e
- automação de tarefas rotineiras de litígio — um exemplo é a inteligência artificial dos advogados.
A pesquisa realizada sobre processamento de linguagem natural gira em torno da pesquisa, especialmente da pesquisa empresarial. Isso envolve que os usuários visualizem conjuntos de dados na forma de uma pergunta que poderiam fazer a outra pessoa. A máquina interpreta os elementos importantes da frase da linguagem humana, que correspondem a características específicas de um conjunto de dados, e retorna uma resposta.
A PLN pode ser usada para interpretar texto livre e não estruturado e torná-lo analisável. Há uma enorme quantidade de informações armazenadas em arquivos de texto livre, como prontuários médicos de pacientes. Antes dos modelos de PLN baseados em aprendizagem profunda, esta informação era inacessível à análise auxiliada por computador e não podia ser analisada de forma sistemática. Com a PLN, os analistas podem vasculhar grandes quantidades de texto livre para encontrar informações relevantes.
A análise de sentimento é outro caso de uso principal da PLN. Usando a análise de sentimento, os cientistas de dados podem avaliar comentários nas redes sociais para ver o desempenho da marca de sua empresa ou revisar notas das equipes de atendimento ao cliente para identificar áreas onde as pessoas desejam que a empresa trabalhe melhor.
Benefícios do processamento de linguagem natural
O principal benefício da PLN é que ela melhora a forma como humanos e computadores se comunicam. A maneira mais direta de manipular um computador é através do código – a linguagem do computador. Ao permitir que os computadores entendam a linguagem humana, a interação com os computadores se torna muito mais intuitiva para os humanos.
Outros benefícios incluem:
- maior precisão e eficiência da documentação;
- capacidade de fazer automaticamente um resumo legível de um texto original maior e mais complexo;
- útil para assistentes pessoais como Alexa, permitindo compreender a palavra falada;
- permite que uma organização use chatbots para atendimento ao cliente;
- mais fácil realizar análises de sentimento; e
- fornece insights avançados de análises que antes eram inatingíveis devido ao volume de dados.
Desafios de processamento de linguagem natural
Existem vários desafios no processamento da linguagem natural e a maioria deles se resume ao fato de que a linguagem natural está em constante evolução e é sempre um tanto ambígua. Eles incluem:
- Precisão. Os computadores tradicionalmente exigem que os humanos “falem” com eles numa linguagem de programação precisa, inequívoca e altamente estruturada – ou através de um número limitado de comandos de voz claramente enunciados. Contudo, a fala humana nem sempre é precisa; Muitas vezes é ambíguo e a estrutura linguística pode depender de muitas variáveis complexas, incluindo gírias, dialetos regionais e contexto social.
- Tom de voz e inflexão. O processamento da linguagem natural ainda não foi aperfeiçoado. Por exemplo, a análise semântica ainda pode ser um desafio. Outras dificuldades incluem o fato de que o uso de linguagem abstrata é muitas vezes difícil de ser compreendido pelos programas. Por exemplo, o processamento de linguagem natural não capta facilmente o sarcasmo. Esses tópicos geralmente exigem a compreensão das palavras usadas e de seu contexto em uma conversa. Como outro exemplo, uma frase pode mudar de significado dependendo da palavra ou sílaba em que o falante dá ênfase. Os algoritmos de PLN podem perder mudanças sutis, mas importantes, no tom da voz de uma pessoa ao realizar o reconhecimento de fala. O tom e a inflexão da fala também podem variar entre diferentes sotaques, o que pode ser difícil de ser analisado por um algoritmo.
- Uso evoluído da linguagem. O processamento da linguagem natural também é desafiado pelo facto de a linguagem – e a forma como as pessoas a utilizam – mudar continuamente. Embora existam regras no idioma, nenhuma é imutável e está sujeita a alterações ao longo do tempo. Regras computacionais estritas que funcionam agora podem se tornar obsoletas à medida que os recursos da linguagem do mundo real mudam com o tempo.
A evolução do processamento de linguagem natural
A PLN baseia-se em uma variedade de disciplinas, incluindo ciência da computação e desenvolvimentos em linguística computacional que remontam a meados do século XX. Sua evolução incluiu os seguintes marcos importantes:
- Década de 1950. O processamento de linguagem natural tem suas raízes nesta década, quando Alan Turing desenvolveu o Teste de Turing para determinar se um computador é realmente inteligente ou não. O teste envolve interpretação automatizada e geração de linguagem natural como critério de inteligência.
- Décadas de 1950-1990. A PLN era amplamente baseada em regras e usava regras artesanais desenvolvidas por linguistas para determinar como os computadores processariam a linguagem.
- Década de 1990. A abordagem de cima para baixo, que prioriza a linguagem para o processamento de linguagem natural, foi substituída por uma abordagem mais estatística, porque os avanços na ciência da computação tornaram esta uma forma mais eficiente de desenvolver a tecnologia de PLN. Os computadores estavam se tornando mais rápidos e podiam ser usados para desenvolver regras baseadas em estatísticas linguísticas sem que um linguista criasse todas as regras. O processamento de linguagem natural baseado em dados tornou-se comum durante esta década. O processamento de linguagem natural passou de uma abordagem baseada em linguistas para uma abordagem baseada em engenheiros, recorrendo a uma gama mais ampla de disciplinas científicas, em vez de se aprofundar na linguística.
- Décadas 2000-2020. O processamento de linguagem natural teve um crescimento dramático em popularidade como termo. Com os avanços no poder da computação, o processamento de linguagem natural também ganhou inúmeras aplicações no mundo real. Hoje, as abordagens da PLN envolvem uma combinação de linguística clássica e métodos estatísticos.
O processamento de linguagem natural desempenha um papel vital na tecnologia e na forma como os humanos interagem com ela. Ele é usado em muitas aplicações do mundo real, tanto em ambientes empresariais quanto de consumo, incluindo chatbots, segurança cibernética, mecanismos de pesquisa e análise de big data. Embora não isenta de desafios, espera-se que a PLN continue a ser uma parte importante da indústria e da vida quotidiana.