Você está na página 1de 18

Versão pré revisão

ANÁLISE AUTOMÁTICA DE RESENHAS DE APLICATIVOS


ANDROID

UM COMPARATIVO ENTRE OS GERENCIADORES DE CARTÕES


DE CRÉDITO USANDO INTELIGÊNCIA ARTIFICIAL

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.

Palavras-chave: Aprendizado de Máquina; Inteligência Artificial; Processamento de Linguagem Natural

AUTOMATIC CLASSIFICATION FOR ANDROID APPLICATION


REVIEWS

A REVIEW FOR CREDIT CARDS APPLICATIONS USING


ARTIFICIAL INTELIGENCE.

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.

Keywords: Machine Learning, Artificial Inteligence, Natural Language Processing

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

Nesse capítulo são apresentados os conceitos técnicos mais importantes de serem

abordados nessa pesquisa.

1Citado por [Gu] resolvedor automático de proposições (SAT), um problema


extremamente caro computacionalmente
Versão pré revisão

Aprendizado de máquina

O aprendizado de máquina é uma forma de solução de problemas usando computador, sem se

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

um padrão de aprendizado. Um aspecto fundamental a se considerar é que os exemplos comumente

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

eletrônica. Entretanto com popularização da Internet e o crescimento da disponibilidade de

documentos se faz necessário o uso do aprendizado de máquina para estruturar a informação

([KHAN]).

Nesse estudo utilizou-se a bibliotecas do Scikit-learn proposta primeiramente por

[PEDREGOSA], é uma implementação gratuita, de código aberto, fruto da comunidade científica e

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

portuguesa) para todos os tipo de dados, e resenhas de aplicativos é uma dessas.


Versão pré revisão

Aprendizado supervisionado e não supervisionado

Sob um ponto de vista o aprendizado de máquina pode ser dividido em processo de

aprendizado supervisionado e aprendizado não supervisionado [MONARD]. No processo

supervisionado, há um conhecedor do domínio que previamente classificou os exemplos de

treinamento. Através dessa base já classificada por um conhecedor do domínio, se gera um

classificador (programa de computador) que consegue determinar se um novo exemplo desconhecido

pertence ou não a uma determinada classe.

No aprendizado não supervisionado,não há classificação prévia e portanto o aprendizado se dá

pela separação dos exemplos em uma dada representação. Isto é, no aprendizado não supervisionado,

o aprendizado acontece apenas com base nos exemplos.

Para presente experimento foram utilizados os seguintes algoritmos de classificação

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

O método Random Forest se baseia no uso de diversas “árvores de decisão”. Um modelo de

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

características escolhidas aleatoriamente [TINKAM]. Esse método cria diversos classificadores e

através das seleções desses classificadores (com sub grupos aleatórios de características) que somente

as características mais discriminantes são escolhidas.

Para presente experimento foi utilizado algoritmo de segmentação em clusters

k-Means

Este método consiste em separar os dados todos em k grupos (sendo k um valor

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,

porém longe de outros grupos.


Versão pré revisão

TRABALHOS RELACIONADOS

Nos anos recentes o uso do aprendizado de máquina tem sido exaustivo para uma infinidade

de aplicações. A análise automatizada de sentimento em textos não tem sido diferente. Em

[GAUTAM] os autores se utilizam de uma análise de sentimentos de comentários no “Twitter” que

são classificados em positivos ou negativos e fazem comparativo de vários métodos distintos de

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

foram a justificativa das tecnologias utilizadas nesse artigo.

METODOLOGIA

Categorias do aprendizado supervisionado desse estudo

Inicialmente a filtragem dos comentários se deu pelo aprendizado supervisionado, ou seja


alguns exemplos foram previamente classificados. Os comentários extraídos da loja (Google Play)
foram classificados de acordo com as seguintes categorias:

Categoria A: Tipo de comentário pela regra de negócio

• 1 (Comentário de sugestão) pedidos de melhorias, crítica ou defeitos com causa definida ou


comparação com concorrente. Comentário de exemplo:
“O App poderia ter mais informações no detalhe da fatura.”
Versão pré revisão

• 2 (Comentário de reclamação) mero descontentamento sem ser possível extrair a causa. Comentário
de exemplo:
“Porcaria, não funciona!”

• 3 (Pedido de ajuda) dificuldade de uso, perguntas ou problemas no negócio. Comentário de exemplo:

“Não consigo acessar a conta pede o número e a senha do cartão, mas


acontece que meu cartão Bradescard não tem senha. Eu já tenho cadastro no
aplicativo só mudei de celular porém aparece que não tenho. Alguém pode me
ajudar???”

• 4 (Comentário de elogio) satisfação em geral. Comentário de exemplo:

“Aplicativo Excelente, sempre funciona!”

Categoria B: Tipo de comentário pelo sentimento do usuário

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.

A base de dados de comentários

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.

Para a análise mais detalhada foram considerados os principais aplicativos de cartões de


crédito: Bradesco Cartões, Nubank, OuroCard, Cartões Caixa, ItauCard e SantanderWay. Com
objetivo de tornar o problema mais real, as classificações de número de estrelas (que são as notas
dadas ao aplicativo) foram descartadas.

A geração da base através da extração de comentários

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:

Tabela 1 – Base de dados de comentários


resenhas
Número pré resenhas pré
Aplicação Arquivo de classificadas classificadas na
resenhas na categoria categoria B
A

Bradesco Cartões BradescoCartoes.csv 21.040 208 61

NuBank nuBank.csv 10.000 100 45

Cartões Caixa CartoesCaixa.csv 8.560 103 69

Santander Way SantanderWay.csv 14.240 100 0

Pag Seguro PagSeguro.csv 46.560 51 51

OuroCard OuroCard.csv 10.318 104 0

Next Banco Next.csv 35.598 107 0


Versão pré revisão

Neon Banco Neon.csv 20.999 24 24

ItauCard ItauCard.csv 28.120 116 55

Itau Banco Itau.csv 20.798 100 0

Inter Banco Inter.csv 23.440 113 0

HiperCard HiperCard.csv 12.519 33 0

Cartões CasasBahia CasasBahia.csv 3.720 44 0

Cartões Luiza CartoesLuiza.csv 10.839 27 0

Cartões Carrefour CartoesCarrefour.csv 6.920 27 0

Bradesco BradescoNetEmpresa. 12.227 0 0


NetEmpresa csv

Bradesco Exclusive BradescoExclusive.csv 16.560 0 0

Bradesco DIN BradescoDIN.csv 855 0 0

Digio Digio.csv 14.440 0 0

TOTAL 317.753 1.257 305

Fonte: Dos Autores


Nota: (1) Ver apêndice.

A implementação do experimento

Para esse estudo foram utilizadas tecnologias em voga no processamento de linguagem


natural. Assim como também foi possível comparar diversos algoritmos de classificação diferentes
sendo eles KNN, SVM e Random Forest.

Esse experimento se divide em duas partes: supervisionado e não supervisionado.


Versão pré revisão

Uso do aprendizado supervisionado classifica os comentários nas categorias sejam elas A ou


B. No aprendizado supervisionado a base é separada em 3 partes: Treinamento, Validação e Teste. De
todos aqueles comentários que foram classificados manualmente apenas uma parte (nesse caso 80%) é
utilizada para aprendizado (treinamento) enquanto uma outra parte (outros 20%) servem para
validação (o resultado obtido é comparado ao já classificado). Dessa forma obtém-se qual grau de
confiabilidade (acurácia) da classificação dos exemplos não rotulados manualmente (base de teste).

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

Figura [1] – Pré processamento do texto

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.

O resultado do pré processamento é então usado com entrada da extração de características. A


fim de tratar, numericamente, os dados em programas de computador comumente, transforma-se os
dados em texto em uma representação de características. Em aprendizado de máquina a representação
dos dados a serem trabalhados é um vetor de características (representadas em números). Na
Versão pré revisão

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

Ao se usar o algoritmo de aprendizado supervisionado que classifica na “categoria A” obteve-


se acurácia de 77%. Enquanto a classificação na “categoria B”, obteve 67% de acurácia. A título de
comparação o estado da arte na análise de sentimentos, como citado em [DAY], obteve 71 a 76% de
acurácia em comentários do Google Play em língua inglesa, porém em língua portuguesa ainda não há
comparativo direto. Podemos classificar os aplicativos pelos mais elogiado e mais reclamados
(Categoria A) em quantidade relativa de comentários:
Versão pré revisão

Figura [2] – Aplicativos mais elogiados

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

Figura [3] – Aplicativos mais reclamados

Mais reclamado seria Cartões Caixa, seguido por BB, Bradesco, Santander, Itau e Nubank

Figura [4] – Gráfico de associação de elogios e notas dos aplicativos

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.

Figura [5] – Categorias dos comentários exclusivamente do Bradesco Cartões

Apesar de parecer baixo o nível de reclamações (com 0,5%), trata-se na categoria 2


(reclamação) apenas aquelas que não possuem contexto específico, ficando muitas das reclamações
(de forma genérica) na categoria 1 (sugestão) com 52%. Total de elogios ficaram em 41% enquanto
pedidos de ajuda 6.5%.

Dentro de cada categoria classificada de comentário é possível separar os comentários por


subcategorias (aprendizado não supervisionado) que nos dão informações relevantes sobre melhorias
ou defeitos. Dentre as principais categorias tanto a 1 (sugestões) quanto a 3 (pedidos de ajuda) são as
que nos dão informações mais relevantes.
Versão pré revisão

Tabela 2 – Categoria 1 (sugestões)

Principais Defeitos Número de


comentários

Cadastro com cartão considerado inválido 1021

Erro na visualização da fatura 918

Erro de acesso/Bloqueado 732

Demora nos lançamentos do cartão 543

Erro de conexão, serviço indisponível 454

Erro de informação no limite ou limite insuficiente 392

Senha inválida 234

Problemas com atualização do aplicativo 227

Dificuldade desbloqueio do cartão 154

Lentidão e travamento 142

Detalhamento da fatura 129

Recurso que só está disponível por telefone 95

Mensagem de erro muito genérica 57

Adiantamento de pagamento da fatura 47

Ausência de atendimento por chat 37


Versão pré revisão

Problemas com Login por digital 29

Valor de anuidade do cartão muito alta 26

Falta informação parcelamentos 21

Dificuldade em gerar segunda via da fatura 18

Sugestões de usabilidade 14

Ausência de suporte a cartão empresarial 14

Falta de acessibilidade a portadores de necessidades 6

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.

Tabela [3] - Categoria 3 (pedidos de ajuda)

Principais dificuldades Comentários

Problemas ao gerar fatura 302

Senha inválida 270

Problemas ao completar cadastro 243

Problemas ao criar perfil 211


Versão pré revisão

Dificuldade no atendimento por telefone 99

CONCLUSÃO

O presente estudo é a exposição de um caso de uso de inteligência artificial para


processamento de linguagem natural. A fim de validação é possível correlacionar essa análise com as
notas dos aplicativos e ver que o grau de confiabilidade dessa análise, apesar precisar de melhorias, é
um resultado positivo. É possível identificar por parte do aprendizado não supervisionado uma grande
parte de usuários insatisfeitos com as políticas do negócio como limites, problemas de atendimento ao
consumidor e indisponibilidades. Isso mostra que tal estudo conduzido pode dar informações
relevantes ao negócio. Além destes resultados, todos os dados estão público e podem ser utilizados
para geração de modelos próprios seja ele em outras pesquisas ou para uso na indústria.

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

CHOMSKY, N. Syntactic Structures. 1957 The Hague: Mouton.

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.

MACK, Y. P.; ROSENBLATT, Murray. Multivariate k-nearest neighbor density


estimates. Journal of Multivariate Analysis, v. 9, n. 1, p. 1-15, 1979.

CORTES, C., & VAPNIK, V. (1995). Support-vector networks. Machine


learning, 20(3), 273-297.

TINKAM HO, "Random decision forests," Proceedings of 3rd International


Conference on Document Analysis and Recognition, Montreal, Quebec, Canada,
1995, pp. 278-282 vol.1, doi: 10.1109/ICDAR.1995.598994.
Versão pré revisão

PEDREGOSA, Fabian et al. Scikit-learn: Machine learning in Python. the Journal


of machine Learning research, v. 12, p. 2825-2830, 2011.

KHAN, Aurangzeb et al. A review of machine learning algorithms for text-


documents classification. Journal of advances in information technology, v. 1, n. 1,
p. 4-20, 2010.

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.

NEETHU, M. S.; RAJASREE, R. Sentiment analysis in twitter using machine


learning techniques. In: 2013 Fourth International Conference on Computing,
Communications and Networking Technologies (ICCCNT). IEEE, 2013. p. 1-5.

GAUTAM, Geetika; YADAV, Divakar. Sentiment analysis of twitter data using


machine learning approaches and semantic analysis. In: 2014 Seventh International
Conference on Contemporary Computing (IC3). IEEE, 2014. p. 437-442.

HARTMANN, Nathan et al. Portuguese word embeddings: Evaluating on word


analogies and natural language tasks. arXiv preprint arXiv:1708.06025, 2017.

PENNINGTON, Jeffrey; SOCHER, Richard; MANNING, Christopher D. Glove:


Global vectors for word representation. In: Proceedings of the 2014 conference on
empirical methods in natural language processing (EMNLP). 2014. p. 1532-
1543.

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

Você também pode gostar