Chapter 2 Processamento de Linguagem Natural

Enquanto, mineração de texto, busca extrair informação de grandes volumes de textos, processamento de linguagem natural, procura fazer com que os computadores consigam entender ou produzir linguagem natural, que é a linguagem que nós humanos utilizamos para nos comunicar. Existem varias aplicações de processamento de linguagem natural, como, por exemplo:

  • Tradução: O google translate, ou outros aplicativos de tradução.
  • Análise de sentimentos: Onde é possível identificar, por exemplo, se uma campanha de marketing foi recebida de forma positiva ou não, analisando os comentários das pessoas.
  • Reconhecimento de fala: As assistentes de voz, como a Siri ou o Google Assistente.
  • Sintetização de fala: O GPS que fala se você deve ir para direita ou esquerda.
  • Respostas a perguntas: Chatbots, onde algumas empresas estão utilizando como primeiro contato ao cliente.

Esses foram somente, alguns exemplos das possibilidades de utilização do processamento de linguagem natural.

2.1 Código exemplo

Para exemplificar uma utilização do PLN, tentaremos responder a seguinte pergunta, “Qual é o sentimento das pessoas em relação a economia?”, agora, que definimos, algo, que tentaremos responder, precisaremos de dados, e utilizaremos os comentários do Twitter, como fonte desses dados. O projeto de exemplificação será construido utilizando a linguagem R e será necessário ter os seguintes pacotes instalados em seu computador:

  • ‘tydeverse’ É um pacote, que possui uma coleção de pacotes inclusos, para ajudar na manipulação dos dados.
  • ‘rtweet’ É um pacote, que permitirá que você se conecte ao Twitter, caso você tenha uma conta, onde você poderá realizar buscas, com no máximo 18 mil tweets.
  • ‘tm’ O pacote tm de “Text Mining” é um pacote utilizado para trabalharmos com textos.
  • ‘wordcloud’ É um pacote que nos permite visualizar de forma rápida, as palavras, utilizando como critério de tamanho, a frequência.
  • ‘syuzhet’ É um pacote, que utilizaremos para classificar os sentimentos.

Vamos carregar os pacotes.

Após carregarmos os pacotes em nosso computador, vamos buscar os textos, utilizando a função search_tweets do pacote rtweet, onde utilizaremos como amostra 2 mil tweets e esses tweets estarão em inglês.

Agora, iniciaremos o pré-processamento do nosso texto e para simplificar o nosso trabalho, vamos separar a coluna ‘text’ em uma variável.

Para fazer a limpeza dos nossos textos podemos utilizar as funções do pacote tm, ou você pode criar as suas próprias funções, como, no exemplo abaixo:

Utilizando a função criada para limpar o texto.

Mas, ainda utilizaremos o pacote tm para remover as stopwords dos textos, então tranformaremos o nosso texto limpo anteriormente em um corpus e posteriormente removeremos as stopwords.

Após, a limpeza, poderemos visualizar os nossos textos em uma nuvem de palavras, para descobrirmos os termos mais frequentes do nosso conjunto de dados.

Agora, transformaremos o nosso corpus em uma matriz de documentos-termos, para assim criarmos um gráfico de barras com os termos e sua frequência.

Criando um dendrograma, que é um diagrama de árvore, onde será possível visualizar o agrupamento dos nossos termos.

Agora, realizaremos a análise de sentimentos, dos nossos tweets e para tal análise utilizaremos a função get_nrc_sentiment do pacote syuzhet, onde passaremos como parametro, os termos da nossa matriz de documentos-termos. E após, obtermos as emoções dos nossos termos, faremos o calculo da frequência dos sentimentos que utilizaram a #economy.

Com a frequência dos nossos sentimentos calculados, poderemos visualizar o resultado, mas antes, iremos traduzir os sentimentos do inglês para o português e tranformar o resultado em um dataframe para posterirmente gerarmos o gráfico.