Buscar

Encontros 2017

Prévia do material em texto

Classificando Postagens Relacionadas ao Uso de Aplicativos para Navegação 
Francisco Renan Pereira Lima1, Lívia Almada Cruz1,
1Universidade Federal do Ceará (UFCE)
Av. José de Freitas Queiroz, 5003 – 63.902-580 – Quixadá – CE – Brazil
renan.lima@alu.ufc.br, livia.almada@ufc.br
Abstract. In this paper we present an evaluation of classifiers for Use-Related Posts (PRUs) of the Google Maps and Waze applications. In the experiment the post database went through the preprocessing steps (bag of words model and transformation into a characteristic vector). The pre-processed PRUs were submitted to two classifiers: Naive Bayes and Random Forest. The results were collected and compared.
Resumo. Neste trabalho é apresentada uma avaliação de classificadores para Postagens Relacionadas ao Uso (PRUs) dos aplicativos Google Maps e Waze. No experimento a base de dados de postagens passou pelas etapas de pré-processamento (modelo bag of words e transformação em um vetor de características). As PRUs pré-processadas foram submetidas a dois classificadores: o Naive Bayes e o Random Forest. Os resultados foram coletados e comparados.
Palavras-chave: Classificação. Postagens Relacionadas ao Uso. Naive Bayes. Random Forest.
1. Introdução
Postagens Relacionadas ao Uso (PRUs) são postagens públicas de usuários de um sistema que discutem a respeito do mesmo. No contexto de avaliação de sistemas, as PRUs têm sido úteis por serem reportadas pelos próprios usuários sem solicitação prévia, de maneira espontânea, enquanto estes expõem suas dúvidas, reclamações, dificuldades, sugestões provenientes da experiência de uso do sistema. Em [Mendes et al. 2015] os autores afirmam que a espontaneidade do usuário para a avaliação de sistemas é importante, pois desta forma eles não são influenciados pelos avaliadores. Neste trabalho foi realizada uma avaliação de dois classificadores na classificação PRUs em três diferentes classes (Elogio, Crítica e Sugestão). Para a avaliação, foi utilizada uma base de dados com 1074 PRUs reportadas por usuários de aplicativos de navegação (GoogleMaps e Waze). Com esta avaliação, deseja-se verificar com qual dos classificadores avaliados é possível prever cada um dos tipos com uma boa acurácia.
		Este trabalho está organizado como segue. A Seção 2 apresenta a descrição sobre a metodologia realizada. A Seção 2.1 apresenta o processo de pré-processamento. Na Seção 2.3 é descrito os classificadores utilizados. A seção 2.4 apresenta como foi treinado e testado os classificadores gerados. Na Seção 3 são apresentados e analisados os resultados obtidos. E, por fim, a Seção 4 apresenta as conclusões.
2. Metodologia
Nesta Seção, são detalhados os passos para a classificação das PRUs dos usuários em três classes: Elogio, Crítica e Sugestão.
Primeiramente o corpus de PRUs foi submetido a uma etapa de pré-processamento onde foi implantado o modelo bag of words, removidas as stopwords e aplicada uma técnica de stemming. Além de ser usada uma técnica de extração de atributos para um dos classificadores. Para realizar a classificação, foram utilizadas técnicas de aprendizagem de máquina usando aprendizado supervisionado. Neste trabalho foram comparados os classificadores Naive Bayes [McCallum et al. 1998], e Random Forest [Breiman and Leo 2001] para a criação de um modelo de classificação. Por fim, os resultados obtidos foram comparados.
2.1. Pré-processamento
O primeiro passo para a realização do trabalho foi o pré-processamento do Corpus. Boa parte do pré-processamento deste trabalho foi implementado utilizando a classe CountVectorizer da biblioteca scikit-learn [Pedregosa et al. 2011], essa classe é responsável por remover a acentuação, transformar todos os caracteres do Corpus em uma representação em letras minúsculas e a aplicação do modelo bag of words, onde cada PRUs dos usuários são representados como um vetor das palavras que ocorrem no conjunto de dados [Matsubara et al. 2003]. O início da limpeza dos dados se consistiu em realizar a remoção de stopwords, que consiste em remover palavras muito frequentes e que não representam informações relevantes para a construção do modelo, tais como “da”, “de”, “a”, “e”, “que”. Foi implementado neste trabalho uma lista de stopwords em português disponível no GitHub.[0: http://scikit-learn.org/stable/][1: https://gist.github.com/alopes/5358189.]
O próximo passo consistiu em aplicar a técnica de stemming, que tem a finalidade de reduzir as palavras ao seu radical, retirando o seu sufixo, através de regras estabelecidas. Este processo serve para diminuir a quantidade de palavras diferentes no texto que muitas vezes podem possuir o mesmo significado, reduzindo a dimensionalidade do vetor de características [Dosciatti et al. 2013], gerando assim um melhor desempenho do modelo.
Após o stemming, foi aplicado um modelo de representação textual para a geração de um vetor de características. Neste trabalho é utilizado o bag of words, que ignora a posição e gramática das palavras e preserva a ocorrência de cada palavra. O modelo é implementado em dois passos: i) Tokenização: O texto é decomposto em várias palavras (tokens), atribuindo um ID para cada possível token. ii) Contagem: É feita uma contagem da frequência em que cada palavra apareceu na sentença.
 		Depois desse processo, chamado de vetorização, o corpus é representado por uma matriz com uma linha para cada sentença e uma coluna para cada token que ocorre no corpus. Com a bag of words é possível analisar as palavras mais frequentes para cada tipo de postagem. Para visualização, foi gerada uma nuvem de palavras para cada uma das classes, apresentadas nas Figuras 1, 2 e 3.
 
 Figura 1. Classe Crítica.			 Figura 2. Classe Sugestão.
 			 Figura 3. Classe Elogio.	 
2.3. Classificadores 
O Naive Bayes [McCallum et al. 1998] é um método de aprendizagem probabilística que utiliza o teorema de Bayes para prever a classe de um conjunto de dados desconhecido, utilizando dados de treino para geração de um modelo.
Essa técnica supõe uma independência entre as características do modelo. Ou seja, esse tipo de classificador assume que a probabilidade de presença ou ausência de uma determinada característica de uma classe não está relacionada com a presença ou ausência de qualquer outra. 
O Random Forest [Breiman and Leo 2001] é um método de aprendizado conjunto que gera múltiplas árvores de decisão no tempo de treinamento e produz a classe mais frequente das árvores individuais, que depois são utilizadas na classificação de novos objetos.
2.4. Treinamento e Teste
		Para treinar o conjunto de dados foi utilizado uma distribuição para computação científica chamada Anaconda Python. O treinamento ocorreu através das classes MultinomialNB que implementa o algoritmo Naive Bayes e o RandomForestClassifier que implementa o algoritmo Random Forest ambas da biblioteca scikit-learn. Foi utilizado o método de validação cruzada, que consiste em dividir todo o conjunto de dados em k partes (Neste trabalho foi dividido em 10 partes), dessas partes, uma será usada para o teste e o restante será usado para treinamento do modelo. Isso é feito de forma repetitiva até que todo o modelo seja treinado e testado com todas as partes. Esse método é implementado pela classe cross_val_predict também da biblioteca scikit-learn.[2: https://www.anaconda.com/what-is-anaconda/]
3. Análise dos Resultados
Nesta Seção são apresentados os resultados dos classificadores, descrevendo as palavras frequentes de cada rótulo, a distribuição de cada um e descrevendo as medidas de avaliação utilizadas neste trabalho: Precision, Recall e F-Measure.
O conjunto de características gerado é composto por 533 termos. Esse conjunto foi submetido ao classificador junto com seus rótulos e o resultado desse experimento utilizando o algoritmo Naive Bayes é mostrado na Tabela 1.
 Tabela 1. Resultados obtidos com oNaive Bayes.
	Rótulo
	Precision
	Recall
	F-Measure
	Support
	Elogio
	0.90
	0.95
	0.92
	563
	Crítica
	0.85
	0.84
	0.85
	428
	Sugestão
	0.59
	0.48
	0.53
	62
	Média
	0.84
	0.86
	0.85
	1074
	Acurácia : 0.86
O corpus utilizado neste experimento também foi testado com outro método de classificação, o Random Forest. Para esse método foi utilizada uma técnica de extração de atributos, que seleciona somente as principais características que o classificador utilizou, gerando uma redução de dimensionalidade e um melhor desempenho. Os resultados são mostrados na Tabela 2.
 Tabela 2. Resultados obtidos com o Random Forest.
	Rótulo
	Precision
	Recall
	F-Measure
	Support
	Elogio
	0.87
	0.92
	0.89
	563
	Crítica
	0.82
	0.83
	0.83
	428
	Sugestão
	0.58
	0.40
	0.48
	62
	Média
	0.83
	0.84
	0.83
	1074
	Acurácia : 0.83
Analisando os resultados obtidos, podemos verificar que os classificadores tiveram bons resultados em classificar “elogio” e “crítica”, porém não tiveram resultados bons em classificar “sugestão”, isso se deve ao suporte baixo dessa classe. Verifica-se também que o algoritmo Naive Bayes com 86% de acurácia teve praticamente o mesmo desempenho em comparação com o Random Forest com 83% de acurácia.
		Os resultados obtidos foram bem satisfatórios, visto que o conjunto de dados utilizado é pequeno e possuía poucas ocorrências para rótulo “sugestão”, sendo difícil classificá-lo corretamente.
4. Conclusão	
O presente trabalho teve como objetivo avaliar a classificação de PRUs dos aplicativos Google Maps e Waze nas classes Elogio, Sugestão e Crítica. Os métodos utilizados foram o Naive Bayes e o Random Forest. Por fim, pode-se concluir que foi possível gerar classificadores que preveem com acurácia maior do que 80% as classes definidas. Sendo que o classificador Naive Bayes, além de ser mais simples, obteve um maior acurácia.
5. Referências 	
de França, T. C., & Oliveira, J. (2014). Análise de Sentimento de Tweets Relacionados aos Protestos que ocorreram no Brasil entre Junho e Agosto de 2013. In Proceedings of the III Brazilian Workshop on Social Network Analysis and Mining (BRASNAN)(pp. 128-139).
Dosciatti, Mariza Miola, Lohann Paterno Coutinho Ferreira, and Emerson Cabrera Paraiso. "Identificando emoçoes em textos em português do brasil usando máquina de vetores de suporte em soluçao multiclasse." ENIAC-Encontro Nacional de Inteligência Artificial e Computacional. Fortaleza, Brasil (2013).
Mendes, M. S.; Furtado, E. S.; Furtado, V.; Castro, M. F.. Investigating Usability and User Experience from the user postings in Social Systems. 17th International Conference on Human-Computer Interaction (HCII 2015), Los Angeles, CA, USA (2015).
Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., ... & Vanderplas, J. (2011). Scikit-learn: Machine learning in Python. Journal of Machine Learning Research, 12(Oct), 2825-2830.
McCallum, A., & Nigam, K. (1998, July). A comparison of event models for naive bayes text classification. In AAAI-98 workshop on learning for text categorization (Vol. 752, pp. 41-48).
Breiman, Leo. "Random forests." Machine learning 45.1 (2001): 5-32.
Matsubara, E. T., Martins, C. A., & Monard, M. C. (2003). Pretext: Uma ferramenta para pré-processamento de textos utilizando a abordagem bag-of-words. Techinical Report, 209.

Continue navegando