Às 7h da manhã, o relógio desperta para a pessoa ir trabalhar. Um sensor na cama detecta que ela se levantou, ativa a cafeteira e liga o chuveiro para ela tomar o banho. Enquanto toma café, ela pergunta para o celular qual a previsão do tempo e o resumo das notícias mais importantes da manhã. O smartphone conta tudo com a voz suave de sempre.
Ao sair de casa, ela liga o GPS que a guia pelas ruas da cidade. No trabalho, precisa fazer uma busca no Google e, logo em seguida, ler um documento escaneado por alguém. Durante o almoço, ela precisa ligar para o consultório médico e marcar uma consulta. É atendida por uma atendente automática que a guia por meio de opções até a marcação.
Ao chegar em casa, vê na caixa de correio uma multa em seu nome. Um radar detectou que ela avançou o sinal vermelho há 2 meses. Depois disso, só quer descansar. Acessa o Youtube e vai assistir a uns vídeos. Alguns estão inaudíveis, então liga a ferramenta de legenda automática para ajudá-la a entender. O dia termina. É hora de dormir. No outro dia, o cotidiano se repete.
A rotina descrita acima pode ser de qualquer pessoa nos dias de hoje. Ela está recheada de tarefas que são auxiliadas pelo uso de tecnologia. O que essas ocupações têm em comum? Todas elas utilizam diversas técnicas de processamento de linguagem natural, seja para ajudar o usuário, seja para fazer a comunicação entre tecnologias diferentes.
Então, é justamente sobre isso que falaremos no post de hoje. Nele, por meio de uma breve contextualização histórica, explicamos o que é processamento de linguagem natural, como ele funciona e quais são os principais exemplos de aplicações envolvendo essa tecnologia. Ficou curioso e quer saber mais? Basta acompanhar a leitura e conferir!
O que é processamento de linguagem natural?
Em termos gerais, processamento de linguagem natural, ou PLN (NPL em inglês para Neural Processor Language), é um método computacional de análise de textos feito por computadores que engloba um conjunto de teorias e tecnologias. Como é uma área muito dinâmica, não há um consenso sobre sua definição que agrade a todos.
Atualmente, a designação mais aceita é dada pela cientista Elizabeth Liddy, da Universidade de Siracusa, na Itália. Para ela, processamento de linguagem natural são teorias motivadas por uma série de técnicas computacionais para análise e representação de textos decorrentes da linguagem natural. Essas técnicas são utilizadas com o objetivo de processar linguagens humanas para diversas aplicações.
O processamento de linguagem natural é uma área de estudos que começou no campo da Ciência da Computação e depois se estendeu para outros domínios como Inteligência Artificial, Linguística e Ciência da Informação. Ela foca em pesquisar os problemas relacionados à geração e à compreensão de linguagens naturais como as faladas por nós, seres humanos.
Esse campo é muito pesquisado, pois há um grande desafio em fazer uma máquina entender a fala humana. Parece simples, mas não é. Com apenas alguns exemplos, percebe-se a dificuldade de interpretação devido às nuances que uma linguagem carrega.
Por exemplo, alguém pode dizer ao computador: “Aquela manga é bonita”. E fica a dúvida: a pessoa está falando da manga que é fruta ou da manga de uma camisa? Tem-se então um problema de ambiguidade com a palavra. Muitas vezes, o computador não será capaz de identificar o significado com apenas uma frase, sendo necessário compreender todo o contexto, seja pela análise do texto ou por uma conversa entre várias perguntas e respostas com o usuário.
Se a pessoa inverte a ordem da frase: “É bonita aquela manga”, o computador também deverá ser capaz de entender. Quando é feita a análise de voz, o computador deve detectar ainda expressões intencionais da voz. Se o usuário utiliza-se do sarcasmo para dizer que a manga é bonita, certamente o significado para aquela frase é que a manga, na verdade, é feia!
Assim sendo, essa é apenas uma pequena fração dos desafios encontrados no PLN. As principais metas dessa área são: conseguir parafrasear um texto; traduzir um texto para outra linguagem; responder questões sobre o conteúdo de um texto e extrair inferências de um texto. Todos esses objetivos englobam o que é chamado de entendimento da linguagem natural.
Uma breve contextualização histórica
O início dos estudos sobre processamento de linguagem natural data da década de 1940, a partir do surgimento da primeira máquina de tradução, chamada de Machine Translation (MT). Os cientistas Weaver e Booth começaram seus primeiros projetos com base nos conhecimentos em criptografia adquiridos na Segunda Guerra Mundial, quando tentavam interceptar comunicações inimigas.
A ideia inspirou muitos projetos posteriormente, mas tudo começou com o básico, até devido às limitações computacionais da época. As propostas iniciais eram para distinguir diferenças entre idiomas e detectar alguns problemas de sintaxe, como a colocação das palavras. Essa perspectiva de trabalho evoluiu para sistemas baseados em dicionários que eram capazes de fazer traduções simples.
Contudo, somente na década de 1950 que o estudo de PLN foi impulsionado. Graças a um cientista chamado Noam Chomsky, que publicou estudos acerca do conceito de gramática gerativa, os primeiros trabalhos de reconhecimento de fala surgiram. As pesquisas de processamento de linguagem natural que eram até então restritas ao campo da Computação começaram a ser feitas também na esfera da Linguística.
Os estudos de Chomsky criaram um alvoroço na comunidade científica, na medida em que se acreditava ser possível criar sistemas de tradução perfeitos visando substituir os tradutores humanos. No entanto, as expectativas da época foram frustradas pelo Comitê de Processamento de Linguagem, a ALPAC, que declarou que a meta de tradução completa ainda não era possível.
A ALPAC freou os ânimos de muitos pesquisadores, e a pesquisa em PLN deu uma arrefecida. Apenas no final dos anos 60 e início dos anos 70, novamente com Chomsky, é que os estudos em processamento de linguagem natural deram uma nova guinada, com seu trabalho em competências linguísticas.
Muitos métodos foram desenvolvidos em sequência, em sua maioria trabalhos teóricos. Eles se preocupavam em como tratar computacionalmente os modelos de representação do significado, pois os estudos de Chomsky não eram fáceis de ser implementados.
Porém, alguns cientistas ousaram e criaram trabalhos práticos para provar ao mundo que é possível, aos computadores, efetuar o processamento de linguagem natural. Prova disso é o ELIZA, um software responsável por replicar a conversa entre um psicólogo e um paciente.
No final dos anos 70, as atenções se voltaram para questões semânticas e metas de comunicação. Os pesquisadores dessa geração focaram em desenvolver sistemas orientados à retórica e aos diálogos orientados para tarefas.
Basicamente, eles queriam que o computador fosse capaz de se comunicar de forma simples usando PLN. Para tanto, davam uma tarefa, perguntando, por exemplo, o endereço de uma pessoa a fim de descobrir como fazer para chegar lá.
A década seguinte representou o começo de uma nova era para o PLN. Isso se deu devido aos avanços computacionais que foram marcados por melhorias significativas na capacidade de processamento.
Esse período foi pontuado por pesquisas que tentavam solucionar problemas específicos de processamento de linguagem natural e pela sua evolução como sistemas mais amplos capazes de interpretar contextos do mundo real. Estudos estatísticos surgiram como pesquisa complementar de processamento de linguagem natural.
Por fim, os últimos anos foram marcados por um impulsionamento do campo de pesquisa. E boa parte desse crescimento se deve ao advento da internet, que trouxe consigo benefícios inimagináveis para a comunidade, como, entre outros, a disponibilização de textos eletrônicos.
As pesquisas em PLN começaram a ter um caráter mais estatístico e passou-se a conseguir lidar com problemas de ambiguidade de palavras, de identificação da fala etc.
Como funcionam as técnicas de processamento de linguagem natural?
O funcionamento do PLN é dividido em níveis de processamento e tipos de abordagem. A seguir, veja mais detalhadamente como cada um deles acontece.
Níveis de processamento
Os níveis de processamento são definidos por níveis de linguagem que um idioma pode ter. São divididos em 7 diferentes, ordenados por dificuldade de implementação:
- fonologia;
- morfologia;
- léxico;
- sintático;
- semântico;
- discurso;
- pragmático.
Essa divisão é feita também para auxiliar os desenvolvedores, pois nem todas as aplicações precisam ser implementadas nos níveis mais altos de processamento. Pelo contrário, a maioria delas se concentra nos níveis mais baixos.
Dessa maneira, a fonologia lida com a interpretação dos sons dentro das palavras, preocupando-se com a pronúncia. Nesse estágio, aplicativos de fala são desenvolvidos. Já a morfologia lida com a composição das palavras e sua natureza, divididas em morfemas. Estes, por sua vez, são fragmentos mínimos que contêm significado, mas ainda não são palavras.
O processamento léxico interpreta o significado individual das palavras, enquanto o sintático foca na análise da composição da frase. A parte semântica lida com o significado da frase como um todo. Em um sentido mais amplo, o processamento do discurso faz uma análise total do significado do texto.
E, por último, o processamento pragmático faz uma interpretação que utiliza os conceitos extraídos do texto para entendimento. A meta desse nível de processamento é explicar como os textos carregam significados extras que não estão descritos de forma explícita nas palavras.
Tipos de abordagem
Os tipos de abordagens dizem respeito à forma como os níveis de processamento serão tratados pelos softwares. São divididos em 4 categorias distintas:
- simbólica;
- estatística;
- conexionista;
- híbrida.
A abordagem simbólica é baseada em regras linguísticas bem estruturadas e que não possuem ambiguidades. São construídos algoritmos em cima dessas regras e, por meio delas, processamentos simples de linguagem podem ser realizados.
A estatística emprega o uso de modelos matemáticos, como as cadeias de Markov, que conseguem deduzir, sem o emprego de regras linguísticas, o uso correto de vários níveis de implementação listados acima. Em contraste com a simbólica, a abordagem estatística utiliza o próprio texto como fonte primária de dados em suas deduções.
Por sua vez, a conexionista é similar à estatística e desenvolve modelos genéricos para a linguagem. A diferença entre as duas é que a abordagem conexionista combina aprendizado estatístico com teorias de representação do conhecimento. Dessa maneira, o conexionismo consegue fazer transformações, inferências e manipulação sobre os textos.
Já a abordagem híbrida mescla o uso das abordagens citadas. É utilizada para dar mais flexibilidade e tratar problemas de processamento de linguagem natural de forma mais ampla e efetiva.
Quais são as principais tecnologias e aplicações envolvendo PLN?
As aplicações que envolvem processamento de linguagem natural contemplam uma gama muito alta de assuntos. Praticamente qualquer aplicação que faz uso de processamento de textos é uma séria candidata a se encaixar como sendo PLN. Neste tópico, listamos as principais aplicações que usam processamento de linguagem natural.
Recuperação da informação
O campo de recuperação da informação é uma área de pesquisa à parte, mas que se utiliza de algumas técnicas de PLN. Trata-se de construir mecanismos de busca, como Google, Yahoo ou Bing, capazes de recuperar documentos relevantes para uma determinada consulta.
Técnicas de processamento de linguagem naturais relacionadas à recuperação de informação são: redução de ambiguidade de palavras; busca por sinônimos; stemização — que é a redução de palavras flexionadas, como “pedr” é a stemização de palavras como pedregulho, pedreira etc.; entre outros.
Atualmente, as pesquisas em recuperação da informação e processamento de linguagem natural andam em conjunto para preencher as lacunas deixadas por ambas.
Perguntas e respostas
Ao contrário da recuperação da informação, que fornece uma lista de potenciais documentos relevantes para o usuário, as aplicações de perguntas e respostas visam responder a uma pergunta específica, feita em linguagem natural.
Dada uma pergunta feita pelo usuário, uma aplicação de perguntas e respostas deve ser capaz de responder diretamente a pergunta feita ou fornecer uma série de passagens de textos que contenham a resposta solicitada.
Trabalhos iniciais focaram no desenvolvimento de perguntas simples como “Quem descobriu o Brasil?”. Porém, empregos mais recentes tentam desenvolver inteligência para perguntas complexas como “Qual o sentido da vida?”.
Já existem aplicações de perguntas e respostas acessíveis à maioria das pessoas. Qualquer indivíduo com acesso a um smartphone pode perguntar, seja para o Google, para a Siri ou para a Cortana, qual a idade do Barack Obama, por exemplo. Se você tem um celular, experimente agora e deixe nos comentários a resposta que obteve.
Extração de informação
Essa esfera de estudos foca em aplicações que são capazes de reconhecer, etiquetar e extrair informações de um texto de forma estruturada, contendo informações-chave e relevantes desse mesmo conteúdo.
As aplicações são capazes de extrair, em um curto espaço de tempo, informações de centenas de textos. Dados como autor, número de páginas, ano de publicação, editora, entre outros, são extraídos e armazenados de forma estruturada para uso em outras aplicações como mineração de dados, visualização e, até mesmo, perguntas e respostas.
Um exemplo de aplicação do dia a dia que utiliza técnica de PLN é o Mendeley. Em linhas gerais, ele funciona como uma biblioteca de referências, muito usado por pesquisadores científicos e estudantes. Nele, é possível adicionar e gerenciar artigos e livros. Quando um texto é adicionado à biblioteca, o software extrai automaticamente os dados para o usuário, como autor, revista etc.
Sumarização automática
Uma tarefa com uma proposta simples, mas difícil de ser executada: transformar textos longos em textos mais curtos. A sumarização automática requer alto nível de técnicas em processamento de linguagem natural. Isso porque ela deve ser capaz de entender o nível de discurso empregado em um texto e abreviá-lo, sem perder significado e narrativa apresentados no texto original.
Sites como o HUTSum, por exemplo, fazem sumarizações de textos online. O usuário copia uma fonte de texto no campo à esquerda, e ele é sumarizado no da direita. Essas aplicações são utilizadas para criar resumos de textos, principalmente para a imprensa, quando ela deseja abreviar entrevistas e matérias mais complexas a fim de transformá-las em chamadas simples.
Tradução de máquina
A mais antiga das aplicações PLN e, talvez por isso, a mais conhecida, a tradução de máquina se esforça para traduzir textos de um idioma para outro. Por envolvere diferentes tipos de conhecimento humano, muito deles complexos e difíceis de serem simulados por máquina, é considerada como um dos problemas de linguagem e de inteligência artificial mais difíceis de serem resolvidos. Um exemplo da dificuldade de tradução é visto na ferramenta Google Tradutor.
Sua performance para traduzir textos de português para inglês, ou vice-versa, chega entre os níveis de razoável a bom. Percebe-se algumas falhas de tradução, mas o sentido geral do texto continua conciso. Porém, quando mudamos para traduzir de japonês para inglês, por exemplo, o desempenho cai drasticamente.
Isso se dá porque cada idioma possui regras gramaticais diferentes e situações únicas, tornando essas variáveis extremamente difíceis de serem tratadas pelo computador.
Sistemas de diálogo
Tidos por muitos como a aplicação que será onipresente no futuro, os sistemas de diálogo são desenvolvidos com a intenção de produzir uma conversa com um ser humano, produzindo um diálogo fluido e coerente. Os sistemas de diálogo incluem vozes, textos e até gestos para se comunicar com uma pessoa.
O maior exemplo desse tipo de aplicação pode ser visto em aplicativos de celular que se comunicam com o usuário, como o GPS. Outro exemplo claro são as centrais automáticas de atendimento usadas por operadoras de telemarketing. A estrutura básica de comunicação usada nessas interações são programadas utilizando-se técnicas de PLN.
Reconhecimento ótico de caracteres (OCR)
Aplicação que ainda está em estágios iniciais de desenvolvimento, o OCR vem se mostrando muito importante para a sociedade, principalmente para tratar de assuntos como cidades inteligentes, preservação de documentos históricos e acessibilidade a portadores de deficiência.
O reconhecimento ótico de caracteres permite que uma imagem ou um vídeo que contenha textos possa ser decifrada por um computador. O radar de trânsito, por exemplo, tira uma foto do veículo que comete a infração. O computador tem como objetivo identificar, na foto, qual é a placa do veículo infrator e emitir a multa automaticamente.
Outra aplicação interessante é o processo de digitalização de livros, jornais e revistas antigos. Museus fazem o escaneamento das imagens de um texto e o computador transforma aquela imagem em caracteres que podem ser usados pelos usuários para fazer buscas por assunto, autor, data etc.
Reconhecimento de fala
Dada uma gravação de áudio contida em um vídeo, uma música ou apenas um discurso gravado ao vivo, uma aplicação de reconhecimento de fala deverá determinar o que foi dito. Em outras palavras, ela tem que ser capaz de transcrever o áudio em um texto legível para humanos.
Assim como a aplicação de tradução de máquina, o reconhecimento de fala figura entre os problemas mais difíceis de serem tratados por processamento de linguagem natural. Isso pelo fato de que a fala humana ocorre geralmente sem pausas e existem sotaques diferentes, o que contribui para que ela seja capaz de “engolir” letras inteiras, tornando extremamente difícil a identificação pelo computador.
No entanto, ainda assim é viável observar aplicações de uso dessa técnica. Entre os principais exemplos, podemos destacar o Youtube. Nele, há a ferramenta de legenda automática, que nada mais é do que o uso de técnicas de PLN para tentar identificar o que o vídeo está dizendo.
Entretanto, pode-se perceber que a ferramenta ainda é básica, principalmente devido à dificuldade de implementação, uma vez que, muitas vezes, o vídeo fala uma palavra, mas aparece outra na legenda.
Compreensão da linguagem natural
Essa parte do processamento de linguagem natural é responsável por transformar sentenças de um texto em estruturas lógicas, ou seja, é compreender uma frase que carrega um valor que pode ser verdadeiro ou falso.
A compreensão da linguagem natural tem como objetivo facilitar a manipulação de texto por computadores, além de identificar instruções recebidas por humanos e até por outras máquinas. É o processo de construção de uma base semântica formal da linguagem. O significado atribuído a sentenças pode ser interpretado pelo computador, da mesma forma que os humanos o fazem.
Essa é a base do conceito da internet das coisas. Para haver múltiplos dispositivos conversando entre si e entre humanos, é preciso existir uma linguagem que todos compreendam. Essa linguagem é modelada por meio de ontologias, isto é, estruturas de significados que podem ser construídas com ajuda de PLN.
Então, agora você já sabe o que é processamento de linguagem natural e por que ele é uma tecnologia tão importante nos dias de hoje.
Por estar presente em diversas áreas do nosso cotidiano, conhecê-lo é fundamental, pois ele será a base para muitas tecnologias que serão desenvolvidas e aperfeiçoadas no futuro. Suas ramificações são extensas e cada aplicação requer bastante conhecimento e estudo por parte dos desenvolvedores.
Para ficar por dentro de mais conteúdos exclusivos sobre o universo da transformação digital, siga a gente no Facebook, no LinkedIn, no Youtube e no Instagram. Até a próxima!
Continue aprendendo
- Realidade Virtual e Aumentada: quais as diferenças e onde se aplicam cada uma
- Você sabe o que é computação cognitiva?
- O que é IoT (internet das coisas)?
- Entendendo os principais conceitos da Inteligência Artificial