Análise de Web Reviews Sobre Produtos ou Serviços Usando
um Léxico de Sentimentos
João Paulo A. Vieira1, Jardeson L. N. Barbosa¹, Roney L. de S. Santos¹, Carlos A. de Sá¹, Raimundo S. Moura1 1Departamento de Computação – Universidade Federal do Piauí (UFPI) 64.049550 – Teresina – PI – Brasil {joaopauloalbu,jardesonbarbosa}@gmail.com,roneylira@hotmail.com, {carlos.sa,rsm}@ufpi.edu.br Abstract. It is clear increase in the amount of information available on the Web in recent years. In addition to content provided by news organizations, users began sharing Web desires, opinions, criticism and knowledge. The sheer volume of information produced daily implies the need to develop methods and tools that can automatically process the views and feelings they express. This paper proposes an approach to collect, analyze and summarize reviews feelings using a lexicon with a rate of 74,30% accuracy of the reviews sorted, from a product corpus Buscapé site. Resumo. É evidente o crescimento da quantidade de informação disponível na Web nos últimos anos. Além do conteúdo disponibilizado por empresas de notícias, os usuários começaram a compartilhar na Web seus desejos, opiniões, críticas e conhecimentos. O grande volume de informação produzido diariamente implica na necessidade da criação de métodos e ferramentas capazes de processar automaticamente a opinião e os sentimentos que expressam. Este trabalho propõe uma abordagem para coletar, analisar e sumarizar reviews usando um léxico de sentimentos com uma taxa de 74,30% de acerto dos comentários classificados, a partir de um corpus de produtos do site Buscapé.1. Introdução
As opiniões são fatores de grande influência no comportamento humano. O que comprar? onde morar? em que acreditar? todas as nossas decisões são, em geral, condicionadas pelas opiniões das outras pessoas [Z. Li et al. 2009].
O crescente e significativo aumento de informações na Web tem feito dela uma rica fonte para avaliação da opinião pública sobre um produto, uma empresa, um serviço, em geral, sobre uma entidade específica. As empresas que fabricam produtos ou disponibilizam serviços também estão interessadas nas opiniões dos clientes para nortear suas ações de marketing e tomadas de decisão.
A novidade da era do computador é o enorme volume de dados que não pode mais ser examinado manualmente em um prazo razoável. Portanto, surgiu a necessidade de desenvolvimento de métodos e ferramentas automáticas para coletar, analisar e sumarizar o conteúdo opinativo em geral. A mineração de opiniões surge para essa finalidade e pode ser aplicada tanto para a pesquisa cientifica como para impulsionar a lucratividade de empresas da área de tecnologia, informação e comunicação.
Dessa forma, o objetivo principal deste artigo é apresentar um protótipo computacional para coletar automaticamente comentários sobre um determinado produto em sites de comparação de preços (neste trabalho, ficouse restrito ao site Buscapé1), analisálos para identificar as principais características e definir o nível de
aceitação do produto. No processo de análise, utilizouse algumas técnicas de Processamento de Linguagem Natural (PLN), tais como, tokenização e POS Tagging, para identificar e extrair padrões linguísticos, considerando as relações morfossintáticas entre as palavras e expressões das classes gramaticais: substantivos, verbos, adjetivos e advérbios. A polaridade do sentimento no comentário foi definida através do uso do léxico de sentimentos SentiLexPT [Silva et al. 2012]. O restante deste artigo está organizado da seguinte forma: na seção 2 descreve se alguns trabalhos relacionados. Na seção 3 é apresentada uma visão geral do protótipo e seu funcionamento, juntamente com as tecnologias utilizadas. A seção 4 relatase os resultados e discussões através dos experimentos realizados. Por fim, a seção 5 conclui se o artigo e sugere alguns trabalhos futuros. 2. Trabalhos Relacionados
Um dos mais clássicos problemas da área de PLN é a análise de sentimento, que geralmente consiste na atribuição de uma polaridade, positiva ou negativa, ao conteúdo do texto, existem também outras classificações que utilizam faixas de valores: excelente, bom, regular, ruim, péssimo. Um Sistema de Análise de Sentimentos típico envolve três etapas: i) extração de opiniões e características; ii) identificação da orientação semântica da opinião; e iii) sumarização dos resultados. Na literatura, existem diversas pesquisas (survey) sobre a área de mineração de opinião e análise de sentimentos, com destaque para os trabalhos de [Khan et al. 2009], [Seerat & Azam 2012], [Vinodhini & Chandrasekaran 2012], [Becker & Tumitan 2013], [AlMaimani et al. 2014]. A maioria dos trabalhos, como [Jain et al. 2012], infere o sentimento de um texto ao atribuir polaridades individuais para cada palavra. Para essa atribuição utilizase um léxico de sentimentos. Alguns trabalhos vêm tentando aumentar a precisão desse método através de novas técnicas. [Z. Li et al. 2009] propõe a definição de padrões linguísticos para a extração de características (features). As características são as palavras qualificadas e a partir delas é possível encontrar as palavras qualificadoras. Essa metodologia foi utilizada por [Bancken et al. 2014] que propõe a análise de sentimentos de reviews baseada nas características do produto analisado, inferindo uma polaridade para cada feature do produto, ao invés de uma polaridade única para todo o texto. Além da análise baseada em técnicas de PLN e aprendizagem de máquina, há também abordagens que utilizamse de modelos estatísticos. [Dziczkowski et. al 2008] utiliza o classificador de Bayes para tal. Diferentemente dos trabalhos mencionados anteriormente, abordamos o uso de padrões criados exclusivamente para o português do Brasil e o uso de intensificadores e inversores das palavras opinativas encontradas nos padrões linguísticos. 1 http://www.buscape.com.br/
3. Protótipo: Visão Geral O protótipo desenvolvido neste trabalho permite identificar características importantes e a sua polaridade, além de classificar o comentário como um todo, em positivo, negativo ou neutro. Para isso ele tem como entrada a URL do produto no site Buscapé, onde todos os comentários presentes naquela URL serão analisados e tem como saída os padrões linguísticos encontrados e a classificação do comentário. Neste trabalho, o site do Buscapé foi escolhido como corpus por ser o maior site de comparação de preços, produtos e serviços da América Latina e por conter uma grande quantidade de reviews de produtos. O serviço foi lançado em 1999 e está presente no Brasil, EUA, Argentina, Colômbia, Chile, Espanha, México e outros 15 países da América Latina. Ele acumula aproximadamente 30 milhões de visitas e mais de 11 milhões de produtos cadastrados. 3.1. Arquitetura A Figura 1 mostra uma visão geral do protótipo desenvolvido para realizar análise de comentários de usuários web sobre produtos/serviços. Cada retângulo está diretamente relacionado com as etapas de implementação.
Figura 1. Arquitetura do protótipo
A etapa de coleta consiste em capturar os dados na Web para compor a base de dados textuais do trabalho. Nesta atividade, utilizouse “rastreadores da Web” (Web crawler) para minerar o conteúdo HTML de uma dada URL de um produto ou serviço. A etapa de préprocessamento realiza a transformação dos documentos coletados para um formato específico, utilizando técnicas de PLN como: tokenização, detecção e exclusão de stopwords, de forma que o etiquetador morfológico possa ser aplicado. Na etapa de extração de padrões aplicase seis regras gramaticais para identificar os padrões sintáticos que sugerem os pares <característica, palavra opinativa>. A Figura 2 mostra os seis padrões utilizados no trabalho, de acordo com a notação extended
Backus Naur Form (eBNF). Esses padrões são adaptações dos cinco padrões definidos por Turney para a língua inglesa em [Turney 2002]. A metodologia utilizada para o reconhecimento dos padrões usa apenas métodos baseados em conhecimento linguístico. Como o corpus de trabalho contém pequenos comentários (geralmente poucas linhas) não foram usados métodos estatísticos porque eles são dependentes do tamanho das descrições textuais.
Figura 2. Padrões linguísticos utilizados
Na etapa de análise da informação, a polaridade das palavras opinativas de cada tupla <característica, palavra opinativa> foi definida através do uso de um léxico de sentimentos descrito na próxima seção. Cada palavra do léxico de sentimentos possui uma polaridade associada que pode ser: positiva (1), negativa (1) ou neutra (0). O método implementado consiste em calcular o somatório das polaridades indicadas pelo léxico de sentimentos para todas as palavras opinativas dos padrões linguísticos encontrados nas descrições textuais. Assim, a polaridade do comentário será positiva, caso o somatório seja maior que zero; a polaridade será negativa, se o somatório for menor que zero; e a polaridade será neutra se o somatório for igual a zero.
Adicionalmente, palavras da classe gramatical advérbio podem modificar a polaridade da palavra opinativa em um determinado padrão. Os advérbios podem ter o papel de intensificadores (ex: muito bom) ou inversores (ex: não gostei). Para fazer esse ajuste foi criada uma lista de palavras manualmente com a polarização de 83 advérbios.
Por fim, a etapa de sumarização gera um documentos texto com os resultados encontrados, contendo o comentário, os padrões linguísticos e a polaridade do sentimento dos padrões e do comentário.
3.2. Tecnologias Utilizadas
Para a realização da coleta foi criado um módulo usando a biblioteca JSoup que converte o conteúdo HTML da web em dados indexáveis. Esse método tem como entrada a URL do produto, por exemplo www.buscape.com.br/smartphonesamsung galaxys4minigti9192desbloqueado.html, e como saída um vetor com todos os comentários presentes na página URL. Os comentários foram persistidos em uma base de dados local, usando o banco de dados MySQL.
Na etapa de préprocessamento utilizouse a ferramenta NLTK (Natural Language Toolkit) [Bird et al. 2012] para a separação das palavras (tokens). Depois fez se o processo de etiquetagem utilizando o etiquetador morfológico MacMorpho [Aluísio et al. 2003].
Etiquetar morfossintaticamente um texto de uma dada língua é atribuir um rótulo ou etiqueta(tag) de um conjunto de rótulos (tagset) a cada palavra da língua, símbolo de pontuação, palavra estrangeira, ou fórmula matemática de acordo com o contexto em que aparecem.
Um etiquetador (PartOfSpeech Tagger) é um sistema responsável por etiquetar cada item lexical ao analisar um texto dado como entrada, sendo que o conjunto de rótulos são as classes gramaticais pertencentes a língua envolvida na etiquetagem referente a sua categoria morfossintática ou gramatical (substantivo, adjetivo, verbo, advérbio).
Na classificação do comentário em positivo, negativo e neutro foi utilizado o SentiLexPT [Silva et al. 2012] que é um léxico de sentimentos, constituído por 7.014 lemas e 82.347 formas flexionadas, onde cada léxico tem uma indicação de polaridade do sentimento associado, um recurso especialmente importante para extração e classificação de sentimentos e opiniões em português, em particular as que envolvam entidades humanas. 4. Resultados e Discussões Como avaliação preliminar do protótipo e com o objetivo de identificar quais técnicas teriam melhores taxas de acerto, realizouse cinco experimentos com variações dos etiquetadores (POS Tagged), dos padrões linguísticos e dos léxicos de sentimento. A Tabela 1 sumariza as abordagens testadas no processo de avaliação. Os teste foram realizados em uma base de dados com 2000 comentários (1000 positivos e 1000 negativos). O resultado da polarização dos comentários do protótipo foi comparado com a classificação presente no próprio site do Buscapé. A baixa taxa de classificação pode ser justificada pela a presença de ruídos, ou seja, textos informalmente escritos, contendo erros ortográficos e gramaticais, pontuação inadequada, sentenças mal formuladas, gírias, comentários muito curtos, entre outras características. Porém, uma análise minuciosa dos erros deve ser realizada futuramente. No primeiro experimento realizado, utilizouse o etiquetador Tree Tagger, que apesar de classificar mais comentários (68,70%) não tem uma boa precisão comparado ao etiquetador MacMorpho, que foi utilizado nos demais experimentos. Inicialmente foram utilizados nos experimentos 1, 2 e 3, os cinco padrões de [Turney 2002], por serem os mais frequentes em reviews sobre produtos da língua inglês. Posteriormente nos experimentos 4 e 5, foram feitas alterações para o Português do Brasil, resultando nos padrões descritos na Figura 2. Na Tabela 1, observase que, ao usar padrões de Turney, 60% dos comentários foram classificados e, com os novos padrões, atingiuse a taxa de classificação de 62%.
Quando a lista de advérbios foi usada juntamente com o SentiLex (ver experimentos 3 e 5), a taxa de acerto na classificação dos comentários aumentou em torno de 3%. No entanto, para uma melhor avaliação da abordagem é importante que uma análise dos erros seja realizada futuramente.
Tabela 1. Classificação geral das abordagens testadas
Etiquetador Padrões Léxico Classificados Acertos Erros 1 TreeTagger Turney SentiLex 68,70% 63,75% 36,24% 2 MacMorpho Turney SentiLex 60,40% 71,60% 28,40% 3 MacMorpho Turney SentiLex+ADV 60,90% 74,30% 25,69%
4 MacMorpho Novos SentiLex 62,60% 69,72% 30,27%
5. Conclusão
Este trabalho apresentou um protótipo para coletar, analisar e sumarizar comentários sobre produtos do site Buscapé. É possível identificar aspectos importante das características do produto e sua polaridade, além da classificação automática do comentário em positivo, negativo ou neutro.
Realizouse cinco experimentos, variando os etiquetadores (POS Tagged), padrões linguísticos e léxico de sentimentos. O melhor resultado obtevese uma precisão de 74,30% de acertos dos comentários classificados, sendo, portanto, um resultado satisfatório.
Como trabalho futuros destacase: i) melhorar os padrões linguísticos para maximizar a classificação; ii) aumentar a lista de advérbios (intensificadores e inversores); iii) fazer uma análise minuciosa dos erros de classificação.
Referências
Aluísio, S., Pelizonni, J., Marchi, A., Oliveira, L., Manenti, R., and Marquiafável, V. (2003). An account of the challenge of tagging a reference corpus for brazilian portuguese. In 6th International Conference on Computacional Processing Of Portuguese Language (PROPOR), pages 110–117.
Bancken, W., Alfarone, D., Davis, J., (2014). Automatically detecting and rating product aspects from textual customer reviews, International Workshop on Interactions between Data Mining and Natural Language Processing at ECML/PKDD, pages 116.
Bing, L. (2012). Sentiment analysis and opinion mining. Morgan and Claypool.
Dziczkowski G., WegrynWolska K. (2008). An autonomous system designed for automatic detection and rating of film reviews. Extraction and linguistic analysis of sentiments. In Proceedings of IEE/WIC/ACM inter conference on web intelligence agent technology, Sydney.
Heid, U., Jau , S., Krüger, K., Hohmann, A. (1996). Term extraction with standardβ tools for córpus exploration. In: 4th International Congress on Terminology and Knowledge Engineering, Wien. August. Jain, A., Jain, S., Shukla, P., Bandiya, H. (2012). Towards Automatic Detection Of Sentiments In Customer Reviews, International Journal of Information Sciences and Techniques (IJIST) Vol. 2, No. 4. Li, Z., Zhang, M., Ma, S., Zhou, B. and Sun, Y. (2009). Automatic Extraction for Product Feature Words from Comments on the Web. In Proceedings of the 5th Asia Information Retrieval Symposium on Information Retrieval Technology. Silva, M., Carvalho, P., and Sarmento, L. (2012). Building a sentiment lexicon for social judgement mining. Computational Processing of the Portuguese Language. Turney, Peter. (2002). Thumbs up or thumbs down? Semantic orientation applied to unsupervised classification of reviews. In: Proceedings of the 40 th Annual Meeting of the Association for Computational Linguistics (ACL).