Análise de sentimentos: uma intuição por trás da análise de sentimentos em 2022

Publicados: 2021-01-02

Índice

Introdução

O texto é o meio mais importante de percepção da informação para os seres humanos. A maior parte da inteligência adquirida pelos humanos é através do aprendizado e compreensão do significado dos textos e frases ao seu redor. Depois de uma certa idade, o ser humano desenvolve um reflexo intrínseco para entender a inferência de qualquer palavra/texto mesmo sem saber.

Para máquinas, essa tarefa é completamente diferente. Para assimilar os significados de textos e frases, as máquinas contam com os fundamentos do Processamento de Linguagem Natural (PLN). O aprendizado profundo para processamento de linguagem natural é o reconhecimento de padrões aplicado a palavras, frases e parágrafos, da mesma forma que a visão computacional é o reconhecimento de padrões aplicado a pixels de imagem.

Nenhum desses modelos de aprendizado profundo realmente entende o texto em um sentido humano; em vez disso, esses modelos podem mapear a estrutura estatística da linguagem escrita, o que é suficiente para resolver muitas tarefas textuais simples. A análise de sentimento é uma dessas tarefas, por exemplo: classificar o sentimento de strings ou críticas de filmes como positivo ou negativo.

Estes têm aplicações em larga escala na indústria também. Por exemplo: uma empresa de bens e serviços gostaria de coletar os dados do número de avaliações positivas e negativas que recebeu de um produto específico para trabalhar no ciclo de vida do produto e melhorar seus números de vendas e coletar feedback dos clientes.

Aprenda o curso on-line de aprendizado de máquina das melhores universidades do mundo. Ganhe Masters, Executive PGP ou Advanced Certificate Programs para acelerar sua carreira.

Leia: Ideias de projetos de aprendizado de máquina

Pré-processando

A tarefa de análise de sentimentos pode ser dividida em um algoritmo simples de aprendizado de máquina supervisionado, onde geralmente temos uma entrada X , que entra em uma função de previsão para obter Em seguida, comparamos nossa previsão com o valor verdadeiro Y , o que nos dá o custo que usamos para atualizar os parâmetros Para lidar com a tarefa de extrair sentimentos de um fluxo de textos inéditos, o passo primitivo é reunir um conjunto de dados rotulado com sentimentos positivos e negativos separados. Esses sentimentos podem ser: boa ou má crítica, comentário sarcástico ou não sarcástico, etc.

O próximo passo é criar um vetor de dimensão V , onde Este vetor de vocabulário conterá cada palavra (nenhuma palavra é repetida) que está presente em nosso conjunto de dados e atuará como um léxico para nossa máquina ao qual ele pode se referir. Agora pré-processamos o vetor de vocabulário para remover redundâncias. As seguintes etapas são executadas:

  1. Eliminar URLs e outras informações não triviais (que não ajudam a determinar o significado de uma frase)
  2. Tokenizando a string em palavras: suponha que temos a string “I love machine learning”, agora, tokenizando, simplesmente quebramos a frase em palavras únicas e a armazenamos em uma lista como [I, love, machine, learning]
  3. Removendo palavras de parada como “e”, “sou”, “ou”, “eu”, etc.
  4. Stemming: transformamos cada palavra em sua forma radical. Palavras como “tune”, “tuning” e “tuned” têm semanticamente o mesmo significado, então reduzi-las à sua forma radical que é “tun” reduzirá o tamanho do vocabulário
  5. Convertendo todas as palavras para minúsculas

Para resumir a etapa de pré-processamento, vamos dar uma olhada em um exemplo: digamos que temos uma string positiva “Estou adorando o novo produto em upGrad.com” . A string final pré-processada é obtida removendo o URL, tokenizando a frase em uma única lista de palavras, removendo as palavras de parada como “eu, sou, o, em”, e então derivando as palavras “amando” para “lov” e “produto” para “produ” e, finalmente, convertendo tudo para minúsculas, o que resulta na lista [lov, new, produ] .

Extração de recursos

Após o corpus ser pré-processado, o próximo passo seria extrair características da lista de sentenças. Como todas as outras redes neurais, os modelos de aprendizado profundo não aceitam texto bruto de entrada: eles só funcionam com tensores numéricos.

A lista de palavras pré-processadas precisa, portanto, ser convertida em valores numéricos. Isso pode ser feito da seguinte maneira. Suponha que, dada uma compilação de strings com strings positivas e negativas, como (assuma isso como o conjunto de dados) :

Cadeias positivas Strings negativas
  • Estou feliz porque estou aprendendo PNL
  • Eu estou feliz
  • Estou triste, não estou aprendendo PNL
  • estou triste

Agora, para converter cada uma dessas strings em um vetor numérico de dimensão 3, criamos um dicionário para mapear a palavra e a classe em que ela apareceu (positiva ou negativa) para o número de vezes que a palavra apareceu em sua classe correspondente.

Vocabulário Frequência positiva Frequência negativa
eu 3 3
sou 3 3
feliz 2 0
Porque 1 0
Aprendendo 1 1
PNL 1 1
triste 0 2
não 0 1

Depois de gerar o dicionário citado, olhamos para cada uma das strings individualmente, e então somamos o número de frequência positiva e negativa das palavras que aparecem na string deixando as palavras que não aparecem na string. Vamos pegar a string '“Estou triste, não estou aprendendo PNL” e gerar o vetor de dimensão 3.

“Estou triste, não estou aprendendo PNL”

Vocabulário Frequência positiva Frequência negativa
eu 3 3
sou 3 3
feliz 2 0
Porque 1 0
Aprendendo 1 1
PNL 1 1
triste 0 2
não 0 1
Soma = 8 Soma = 11

Vemos que para a string “Estou triste, não estou aprendendo PNL”, apenas duas palavras “feliz, porque” não estão contidas no vocabulário, agora para extrair características e criar o referido vetor, somamos a frequência positiva e negativa colunas separadamente deixando de fora o número de frequência das palavras que não estão presentes na string, neste caso deixamos “feliz, porque”. Obtemos a soma como 8 para a frequência positiva e 9 para a frequência negativa.

Assim, a string “Estou triste, não estou aprendendo PNL” pode ser representada como um vetor O número “1” presente no índice 0 é a unidade de polarização que permanecerá “1” para todas as próximas strings e os números “8”, “11” representam a soma das frequências positivas e negativas, respectivamente.

De maneira semelhante, todas as strings no conjunto de dados podem ser convertidas confortavelmente em um vetor de dimensão 3.

Leia também: Modelos de aprendizado de máquina explicados

Aplicando a regressão logística

A extração de recursos facilita a compreensão da essência da frase, mas as máquinas ainda precisam de uma maneira mais nítida de sinalizar uma string não vista em positiva ou negativa. Aqui entra em jogo a regressão logística que faz uso da função sigmóide que produz uma probabilidade entre 0 e 1 para cada string vetorizada.

Pensamentos finais

Além disso, se você estiver interessado em aprender mais sobre aprendizado de máquina, confira o Programa PG Executivo do IIIT-B e do upGrad em aprendizado de máquina e IA, projetado para profissionais que trabalham e oferece mais de 450 horas de treinamento rigoroso, mais de 30 estudos de caso e atribuições , IIIT-B Alumni status, mais de 5 projetos práticos práticos e assistência de trabalho com as principais empresas.

Lidere a revolução tecnológica orientada por IA

Inscreva-se no Programa de Certificado Avançado em Aprendizado de Máquina e Aprendizado Profundo do IIITB