Ana Paula Mendes - 05/02/2020

Processamento de Linguagem Natural (PLN) é uma subárea da Inteligência Artificial que trabalha ao lado da linguística. O objetivo do PLN consiste em gerar e compreender automaticamente a língua natural. Mas o que é língua natural? É qualquer linguagem desenvolvida naturalmente pelo ser humano, como a língua falada e língua de sinais, tendo como principal objetivo a comunicação. Existe, porém, a língua artificial, na computação temos as linguagens de programação. Construídas com lógica computacional, as linguagens de programação tem como principal objetivo a construção de sistemas.

O computador não é capaz de entender língua natural sem a implementação do PLN. Quando você fala um “Hey, Google” para ativar a pesquisa por voz em seu celular, quando usa o Google Tradutor ou faz buscas mesmo que escritas, por trás disso há um trabalho de Inteligência Artifical e PLN.

Temos algumas armadilhas da língua que nós como humanos entendemos, mas um computador não, por exemplo, ambiguidade. Na frase “A manga é laranja”, a palavra “manga” é a parte de uma camisa enquanto que “laranja” é a sua cor. No entanto, separadas, ambas as palavras podem ser consideradas frutas. Como o computador interpreta essa frase da forma correta? Resposta: com Processamento de Linguagem Natural! Isso exemplifica a dificuldade em fazer com que o computador processe a nossa língua da mesma maneira que nós interpretamos, levando em consideração o contexto, cultura e outros aspectos em que ela varia. Por essa razão, os estudos linguísticos são fundamentais para a estruturação e desenvolvimento em PLN. Sendo capaz de processar e manipular a língua em vários níveis, temos como resultado: análise sintática, semântica e pragmática; textos em linguagem natural ou artificial; e diferentes tipos de documentos estruturados. Temos três aspectos principais da língua natural: som (fonologia); estrutura (morfologia e sintaxe); e significado (semântica e pragmática).

As aplicações mais famosas do PLN são para sumarização automática, análise de discurso, tradução, compreensão da língua natural, análise sintática (parsing), respostas à perguntas (como por exemplo em bots), extração de relacionamentos, análise de subjetividade, reconhecimento de fala e extração de informação. Existem muitas outras aplicações e a tendência é que surjam cada vez mais com o desenvolvimento de PLN.

Onde pesquisar

A linguagem de programação Python tem uma biblioteca chamada NLTK (Natural Language Toolkit) que em português seria um conjunto de ferramentas de linguagem natural.

NLTK:

https://www.nltk.org/

Guia de instalação do NLTK:

https://www.nltk.org/install.html

Na página principal do NLTK você vai encontrar um exemplo simples para tokenizar e etiquetar textos, em inglês.

Para o português contamos com a biblioteca floresta, disponível no NLTK, porém é uma contribuição entre Brasil e Portugal, caso você estranhe um pouco o português europeu. A página do floresta se encontra no projeto Linguateca (https://www.linguateca.pt/Floresta/).

No Brasil, o Núcleo Interinstitucional de Linguística Computacional (NILC) da Universidade de São Paulo (USP) tem o desenvolvimento mais forte em projetos, recursos e ferramentas dessa área: http://www.nilc.icmc.usp.br/nilc/index.php

Link das abas mais informativas.

Projetos: http://www.nilc.icmc.usp.br/nilc/index.php/projetos

Recursos e ferramentas: http://www.nilc.icmc.usp.br/nilc/index.php/tools-and-resources

Publicações: http://www.nilc.icmc.usp.br/nilc/index.php/publications

Temos no Brasil também a Comissão Especial de Processamento de Linguagem Natural aprovada no XXVII Congresso da Sociedade Brasileira de Computação. A CE-PLN é responsável por promover e representar a área de PLN, apoiar e realizar eventos científicos e divulgar PLN no Brasil. No site deles há uma lista de eventos sobre PLN e periódicos, ótimo para quem deseja se aprofundar: http://www.nilc.icmc.usp.br/cepln/

Para um maior aprendizado, recomendamos que você escolha uma das aplicações disponíveis e se e aproveite suas ferramentas para os projetos que for desenvolver.