Artigo Android
Artigo Android
Artigo Android
Resumo
Ler, interpretar e relatar todos os comentários de um aplicativo de celular em loja de aplicativos é uma tarefa
custosa. O presente estudo utilizando aprendizado de máquina, pretende mostrar que é possível gerar
informações relevantes para os mantenedores destes aplicativos de forma totalmente automatizada. Dessa forma
o estudo apresenta os detalhes teóricos, mas também disponibiliza uma base de dados e expõe de forma pública
toda implementação de um interpretador de comentários nessas plataformas.
Abstract
Introduction: Read, analyze and report all reviews from a mobile application store is a expensive task. This
article uses machine learning to generate meaningful information to business of this applications in a automatic
processing. This paper contains not just teorical explanation, but the main goal is the pratical aspect sharing
the database and the source code of the implementation.
INTRODUÇÃO
Analisar manualmente as resenhas de um aplicativo hospedado em algum grande serviço de
distribuição, como Google Play ou Apple Store, exige grande esforço. Os aplicativos mais baixados,
Versão pré revisão
como dos grande bancos, possuem perto de milhões de resenhas o que torna o acompanhamento
desses comentários uma tarefa própria para toda uma equipe em cada mantenedor de seu aplicativo.
Por outro lado pode ser necessário reagir proativamente e prontamente as resenhas em casos de falhas
na infraestrutura ou pedido de funcionalidade dos aplicativos. Essa rápida reação nem sempre é
conseguida com as equipes de leitores de resenhas por questões de comunicação e gestão de pessoas.
A inteligência artificial tem ganhado muito destaque tanto na agilidade quanto na redução de
recursos para várias tarefas. Um dos usos da inteligência artificial tem sido o processamento de
linguagem natural. Este processamento pode fornecer informações relevantes de forma mais rápida e
mais precisa. O processamento de linguagem natural remete ao início da computação através de
tentativas de sistemas inteligentes pelo uso de métodos formais determinísticos. Tais métodos formais
utilizando-se de lógica formal se demonstraram limitados computacionalmente 1. Apesar dessas
limitações, houveram muitos avanços com uso de algoritmos não determinísticos como aprendizado
de máquina. [Chomsky], um notável linguista, coloca em sua obra que para vários casos a sintaxe (ou
seja forma) é completamente independente da semântica (ou seja conteúdo). Essa independência é que
trona o processamento automático dos comentários utilizando-se de aprendizado de máquina possível,
uma vez que não se utiliza de nenhuma validação sintática.
Este presente estudo é conduzido sob os seguintes objetivos: 1) disponibilizar a base de dados
extraída de comentários que foi utilizada neste artigo, para uso em outros trabalhos futuros; 2) o uso de
técnicas de inteligência artificial para classificação de comentários de aplicativos no Google Play,
possibilitando a comparação entre diversos aplicativos; 3) por fim, demonstrar a extração de
informações relevantes através da segmentação de principais sub categorias de comentários.
FUNDAMENTOS TEÓRICOS
Aprendizado de máquina
basear na escrita de regras através da programação de computadores propriamente dito, mas através da
catalogação dos exemplos num processo de aprendizado. Desta forma, se torna possível aprender
novos conhecimentos com base nos exemplos. É evidente que qualquer implementação em
computador depende do algoritmo (ou seja, escrita de regras), porém a construção do conhecimento no
aprendizado de máquina se dá pelos exemplos. Consequentemente esses exemplos, por sua vez, geram
um modelo que representam o conhecimento. Esse modelo pode ser usado, predizer informações como
por exemplo classificar um texto. Sendo mais específico em aprendizado de máquina, entende-se por
classificação que dado um exemplo da qual se desconhece sua classe, o classificaremos de acordo com
são transformados numa representação única que geralmente é numérica e tratada como um vetor
espacial.
Essa técnica convive com a programação, dita determinística, desde a origem da computação
([KHAN]).
que contém diversos algoritmos no estado da arte para diversos estudos. Apesar de as implementações
serem fornecidas pela comunidade científica, não há bases de dados (principalmente na língua
pela separação dos exemplos em uma dada representação. Isto é, no aprendizado não supervisionado,
KNN
Proposto pela primeira vez em [MACK], esse método se tornou padrão de vários
classificadores. Baseia-se em procurar exemplo conhecido mais próximo de acordo com algum critério
de distância. Esse algoritmo é simples, porém pode ser muito eficiente. Seleciona-se os "K" exemplos
mais próximos, baseado num "K" parametrizado e escolhe-se a que classe pertence através de uma
votação. Ou seja, por exemplo para k=1, será o vizinho mais próximo. Como vizinho mais próximo
entende-se que entre todos os exemplos da base de treinamento é procurado aquele cuja distância é
mínima. Neste caso, para a distância euclidiana, se mede a distância (ou seja, a diferença no espaço)
SVM
É um algoritmo baseado em geometria para classificar a classe pertencente, é uma forma mais
eficiente da ideia proposta em [CORTES]. Seu nome (SVM) vem de máquina de vetores de suporte,
Versão pré revisão
onde procura-se um plano ou hiperplano que torna os exemplos linearmente separáveis em um espaço.
O SVM procura por exemplos limites entre as classes que são chamados de vetores de suporte, então
define-se um hiperplano n-dimensional (sendo "n"o número de características) que separa as classes.
Eventualmente, se usa também o aumento da dimensionalidade com função kernel para tentar tornar
os exemplos separáveis.
Random Forest
dados de árvores é usado em diversos tipos de processamento e estrutura de dados. Árvore de decisão
é um modelo relativamente simples de tomada de decisão parecida com um fluxograma, porém sem
haver ciclos. Random Forest se utiliza de múltiplas árvore de decisão com subespaços de
através das seleções desses classificadores (com sub grupos aleatórios de características) que somente
k-Means
parametrizado), onde cada valor pertence a um grupo onde ele é mais próximo. O cálculo dos grupos
baseia-se em eleger alguns elementos como centróides dos grupos e medir a distâncias entre eles.
Dessa forma ao longo da iterações os centróides são movidos até que os grupos estejam
suficientemente coesos. Entende-se por coesão que cada elemento esteja perto do centro do seu grupo,
TRABALHOS RELACIONADOS
Nos anos recentes o uso do aprendizado de máquina tem sido exaustivo para uma infinidade
aprendizado de máquina. Há também outros estudos que exploram a mesma base de dados
(comentários do “Twitter”) e usam outras abordagens e até comparam com aprendizado de máquina,
como em [NEETHU] que se utiliza uma representação simbólica. Em [DAY, Min-Yuh] Os autores
fazem uma classificação de comentários do Google Play, porém nas categorias de positiva, negativa
ou neutra. Tendo atingido os melhores resultados o uso de um classificador baseado em rede neural
artificial. Dessa forma as tecnologias utilizadas (explicadas na seção de fundamentos) por estes autores
METODOLOGIA
• 2 (Comentário de reclamação) mero descontentamento sem ser possível extrair a causa. Comentário
de exemplo:
“Porcaria, não funciona!”
1. Felicidade
2. Tristeza/Desapontamento/Medo
3. Raiva/Repulsa
4. Confusão
5. Indiferença
Ambas as categorias são uma forma diferente de classificar os comentários e fazem parte da
base disponibilizada.
Segundo próprio Google Play o sistema de resenhas serve como controle de qualidade dos
aplicativos permitindo que os usuários conheçam mais sobre os aplicativos. O conteúdo dessas
resenhas, além de público, é gerado pelos usuários da plataforma Android que instalaram o aplicativo.
Para análise utilizando algoritmos de aprendizado de máquina é necessário que estes dados
estejam estruturados. Além disso, a disponibilização dos dados, além de possibilitar a
reprodutibilidade dos experimentos, permitem comparação com outros estudos no futuro. Para esse
estudo foram extraídos 317 mil comentários de 13 aplicativos bancários diferentes os quais estão
sendo disponibilizados em uma base de dados aberta. As bases de dados abertas para uso em
Versão pré revisão
aprendizado de máquina são importantes pois, além de economizar trabalho de gerá-las, representam
possibilidade de comparações entre os estudos.
Através de uma extensão de navegador para extração dos dados, foram coletados resenhas de
aproximadamente 2 anos de vários aplicativos da loja oficial do Google. Os dados dessas resenhas
contém: um nome, uma data e uma resenha de até 300 caracteres. A base de dados disponibilizada é
composta com números totais e classificados manualmente por categoria da seguinte maneira:
A implementação do experimento
Por outro lado, o uso de um algoritmo não supervisionado separa os comentários de cada
categoria previamente classificada no passo anterior em subtipos.
Extração de características
O processo de processamento do texto começa com uma cadeia de tratamentos como descrito
em [KHAN]. Esse pré-processamento está exemplificado na figura [1]. O primeiro passo remove a
pontuação e transforma cada palavra em “tokens”, depois remove palavras ditas “stop words” que são
conectivos, por final o processo de “stemming” troca todas as variações de uma palavra em sua forma
radical.
implementação proposta foi utilizado Glove para extração de características. Glove é uma
implementação consagrada de extração de características em linguagem natural. Seu funcionamento é
baseado num mapeamento de todas as palavras do dicionário em um espaço dimensional. Utilizando-
se como base um “corpo” na língua portuguesa (esse corpo foi publicado em [HARTMANN]).
Utilizando-se desse modelo foi possível extrair as principais características de cada palavra de um
comentário. Por exemplo na figura [1], temos uma entrada com 6 palavras, cada uma dessas 6 palavras
é representado por um vetor num espaço onde sua posição no espaço denota seu contexto dentro do
corpo de textos utilizados.
A representação de cada comentário é dada por uma soma dos vetores de todas as palavras
daquele comentário.
Treinamento e classificação
Uma vez extraído as representações dos comentários, não se utiliza mais os textos dos
comentários em linguagem natural. Ou seja as representações passam a ser única referência de
identificação dos comentários. Por sua vez, há diversos algoritmos de classificação que podem ser
usados. No KNN por exemplo como a representação é tratada como um vetor em um espaço n-
dimensional, procurar por exemplos previamente classificados passa a ser uma tarefa de medir
distâncias no espaço. O que foi realizado neste experimento foi um conjunto (ensemble) de vários
classificadores: KNN, SVM e Random Forest. O processo escolhido foi uma votação com pesos entre
os diversos classificadores. O ajuste do peso se deu por um teste empírico onde KNN tem 1 voto,
SVM tem 2 votos e Random Forest tem 3 votos.
RESULTADOS
Itaucard o mais elogiado, seguido por nuBank, Bradesco, Santander, BB e Cartões caixa como menos elogiado
Essa escala dos aplicativos com mais elogios de forma proporcional ao total de comentários
também acaba tendo uma inversão com os mais reclamados mostrados na figura 2
Versão pré revisão
Mais reclamado seria Cartões Caixa, seguido por BB, Bradesco, Santander, Itau e Nubank
Na figura 4 podemos ver gráfico de dispersão que mostra o quanto as notas dos aplicativos
(direto da Google) estão associados a classificação na “categoria A, Elogios”. Quanto mais próximo da
Versão pré revisão
linha diagonal, mais condizente a classificação é com a nota. Quanto mais distante na parte de cima, a
classificação foi subestimada. Quanto mais distante pra baixo, superestimada.
Para segunda parte não supervisionada foi considerado todos os 21 mil comentários do
aplicativo Bradesco Cartões exclusivamente, assim estaria distribuído os comentários pela categoria
mostrado na figura 3. A escolha desse aplicativo específico se deve por ele ter sido um valor central
na distribuição da categoria A.
Sugestões de usabilidade 14
Uma das principais reclamações se devem a erro de acesso e também a demora dos lançamentos das
compras. Coloca-se como destaque que, apesar de não serem principais, defeitos como: erro de
conexão, mensagem muito genérica, lentidão e travamentos são informações que trazem grande valor
para o negócio.
Dentre os pedidos de ajuda também é possível identificar os principais problemas descrito na tabela 3.
CONCLUSÃO
Como o estudo baseia-se apenas na língua natural ainda é possível aplicar esses mesmos
algoritmos de aprendizado de máquina para comentários da Apple ou qualquer aplicativo seja a
natureza.
REFERÊNCIAS
J. GU, "Local search for satisfiability (SAT) problem," 1993 in IEEE Transactions
on Systems, Man, and Cybernetics, vol. 23, no. 4, pp. 1108-1129, July-Aug 1993.
doi: 10.1109/21.247892.
MONARD, Maria Carolina; BARANAUSKAS, José Augusto. Conceitos sobre aprendizado
de máquina. Sistemas inteligentes-Fundamentos e aplicações, v. 1, n. 1, p. 32, 2003.
DAY, Min-Yuh; LIN, Yue-Da. Deep learning for sentiment analysis on google play
consumer review. In: 2017 IEEE international conference on information reuse
and integration (IRI). IEEE, 2017. p. 382-388.
APÊNDICE
O código fonte da implementação toda assim como base de dados pode ser encontrada em:
https://github.com/alexandrefelipemuller/googleplay_ML_analytics