Mineração de opiniões — uma visão geral em poucas palavras
A mineração de opiniões é a aplicação de um conjunto de técnicas de processamento de linguagem natural (NLP) que visa obter insights a partir das emoções presentes em textos escritos por usuários, frequentemente em postagens de redes sociais ou em páginas de reviews de produtos nos sites de e-commerce. Também conhecida como análise de sentimentos, a mineração de opiniões se vale dos conceitos de machine learning para extrair padrões ocultos em grandes volumes de dados textuais, de forma a obter generalizações ou predições em textos inéditos.
Ao final deste post você saberá sobre
1 — O que é Mineração de opiniões;
2 — Onde esta técnica pode ser aplicada;
3 — Os desafios envolvidos no processo de automaticamente extrair significado de algo que é tão subjetivo;
4 — Como a pesquisa vêm contribuindo com avanços na criação de modelos mais precisos para classificação de textos e análise de sentimentos.
O objetivo da mineração de opiniões é normalmente obter a percepção do público geral em torno de um produto de interesse, mas que também pode ser um serviço. O advento do Big Data popularizou este tipo de análise não apenas como uma técnica mais viável do que fora até pouco tempo atrás, como também cada vez mais essencial para o monitoramento de mídias sociais e de reputação on-line, sendo um instrumento valioso para os profissionais de marketing em geral.
Onde se aplica? Me dá exemplos!
A necessidade de minerar opiniões surge em diversos setores da indústria e pode ser aplicada em tempo real, nas mais variadas situações. Atualmente, uma aplicação desta técnica que tem despertado muito interesse surge da necessidade em medir o sucesso de campanhas de lançamento de produtos. Medir o sucesso de uma campanha não é uma tarefa trivial, mas torna-se menos complicada com a ajuda deste tipo de feedback. Contudo, há outras aplicações bem interessantes:
- Chatbots — aplicar análise de sentimentos em chatbots é útil para poder identificar o estado emocional do cliente durante uma determinada conversa, podendo passar o atendimento para um operador humano, ao menor sinal de descontentamento por parte do usuário;
- Sistemas de atendimento via tickets de suporte — Tickets de suporte normalmente servem para reportar problemas com mal funcionamento de softwares, falhas no fornecimento de determinados serviços, ou pedidos de ajuda diversos. A informação contida num ticket pode apresentar ou não palavras que refletem uma polaridade negativa, decorrente da frustração do usuário devido a alguma experiência ruim com o produto ou serviço ofertado. Poder identificar esta polaridade automaticamente, conforme os tickets chegam no sistema, será útil para agrupa-los por ordem de prioridade. Esta prioridade pode ser automaticamente atribuída dependendo do nível que se obtém da polaridade. Ex: positiva, neutra, negativa, muito negativa, ou extremamente negativa.
- Monitoramento de reputação online — possivelmente a aplicação de maior interesse, onde o objetivo é monitorar o índice de satisfação dos usuários em relação à determinado serviço, ou opinião em relação à alguma entidade específica, como empresa ou figura pública. Ao identificar automaticamente um volume muito alto de avaliações negativas no Twitter, por exemplo, o fornecedor de um determinado serviço terá tempo de se antecipar e criar uma estratégia capaz de reverter a situação antes que ela se agrave. Neste tipo de implementação, é útil combinar modelos de análise de sentimentos com outros modelos destinados à tarefa de reconhecimento e extração de entidades. Veja a ilustração abaixo para ter uma ideia melhor.
Quais são os desafios
A mineração de opiniões é um processo que envolve muitos desafios, principalmente em virtude de informações contextuais frequentemente limitadas, variando de acordo com os tamanhos das sentenças. Além disso, o processo de expor opinião em textos é algo muito subjetivo e nem sempre o nosso sentimento está explícito em uma ou outra frase. É comum as pessoas fazerem uso de termos diferentes para expressar um mesmo ponto de vista, de serem contraditórias em suas palavras, valendo-se de sarcasmos eventualmente. Entre outras barreiras existentes, isto torna o processo de análise muito mais complexo diante de uma montanha de informações ambíguas. Mas a comunidade científica vem propondo abordagens cada vez mais inovadoras, que vão sendo aplicadas na indústria conforme se constata a sua viabilidade técnica.
Como a pesquisa científica têm contribuído
A evolução do deep learning acelerou o surgimento de soluções para problemas antigos em NLP, inviáveis até pouco tempo atrás em virtude da limitação dos recursos computacionais. De fato, era algo destinado a se resolver com o passar do tempo. O quadro mudou de maneira mais acentuada após o desenvolvimento de GPUs mais poderosas e acessíveis, especialmente dimensionadas para tarefas de deep learning. Graças a isto, tornou-se viável modelar e testar arquiteturas neurais que trouxeram resultados inéditos.
Graças a isto, nos últimos quatro anos a comunidade científica nos brindou com vários trabalhos inovadores no campo de NLP, dando origem a modelos matemáticos baseados em redes neurais com performances inéditas e com grande potencial para aplicações em larga escala. Kim (2014) conseguiu obter um modelo com razoável performance de predição ao aplicar redes neurais convolucionais na classificação binária de sentimentos — um exemplo de código em tensorflow que aplica este conceito pode ser encontrado neste link. Ele propôs uma arquitetura convolucional multicanais e com apenas uma camada de convolução, destinada à classificação de sequências. Além disso, somou-se à esta arquitetura uma abordagem que envolve representações de palavras distribuídas em espaços vetoriais com técnicas de regularização como a Dropout. Estas técnicas de regularização têm a finalidade de evitar que o modelo se ajuste excessivamente aos dados de treino e perca sua capacidade de generalizar. Para obter estas representações de palavras em vetores, que constituem a entrada da rede neural, ele utilizou o método word2vec (Mikolov et al., 2013). O word2vec converte palavras em representações numéricas que capturam significados, relacionamentos semânticos e os diferentes contextos nos quais estas palavras são utilizadas no corpus de treino. Assim, palavras que são utilizadas em contextos similares são agrupadas muito próximas umas das outras em regiões do espaço vetorial. Esta metodologia dá aos modelos de análise de sentimentos uma capacidade de predição que era impensável até pouco tempo atrás, quando normalmente se utilizavam abordagens baseadas em modelagem estatística.
Outros trabalhos surgiram, com base na combinação de diferentes arquiteturas, visando alcançar performances de predição superiores. Wang, 2016 obteve resultados promissores ao combinar redes neurais convolucionais e recorrentes do tipo LSTM/GRU para classificação de sentimentos. Bojanowski, Piotr. et al., 2016 e Joulin, Armand. et al., 2016 desenvolveram uma metodologia para classificação de textos, a qual denominaram fastText, que melhora consideravelmente o desempenho de modelos de classificação em diversas situações, como na análise de sentimentos. A metodologia combina várias técnicas que permitem manter um equilíbrio entre precisão de modelo e economia de recursos computacionais.
Estas iniciativas acadêmicas são importantes porque dão origem a diferentes soluções desenvolvidas e testadas por empresas e instituições de pesquisa atuantes no campo de inteligência artificial e ciência de dados, que as aplicam em larga escala.
Perspectivas para o futuro
Adiante, e dentro de pouco tempo, o volume de dados gerados e armazenados no mundo será inúmeras vezes superior ao que temos hoje, bem como haverá um aumento na oferta de recursos computacionais mais poderosos e acessíveis. Isto propiciará o desenvolvimento de novas pesquisas, as quais trarão resultados ainda mais inovadores e promissores do que aqueles que temos hoje. Não apenas será possível analisar polaridades em textos mais eficientemente, como também poderemos fazê-lo melhor em vídeos e fotos, com precisão bastante superior à que temos atualmente. Valerá muito a pena esperar, mas não teremos aguardar por muito tempo, dada a rapidez com a qual tudo está acontecendo. :-).
E você, caro colega desenvolvedor, o que acha disto tudo? Sente que já está passando da hora de investir no seu aprendizado em machine learning, para que possa criar aplicações mais inteligentes? Comenta aí!!!!