categorização automática de produtos para integração com
TRANSCRIPT
Categorização automática de produtos para integração
com Marketplace
Guilherme H. P. Danielli1
1 Escola de Ciência da Computação – Faculdade Meridional (IMED)
Passo Fundo – RS – Brasil
Abstract. This article's main objective is to present how artificial intelligence can contribute to
product classification in a marketplace, with the benefit of reliable and efficient categorization.
For this, a dataset of CSV files with 9 e-commerce products available on the Kaggle platform was
extracted. From this stage on, the textual information of the products was normalized with pre-
processing techniques and Natural Language Processing. Finally, textual data were separated
into training and testing percentages and then used to create predictive models. After that, the
models were evaluated by three different metrics and compared to each other. The results showed
a satisfactory performance using Natural Language Processing and supervised classification
algorithms such as: Support Vector Machine and Decision Tree.
Resumo. Este artigo tem como objetivo principal apresentar de que forma a inteligência artificial
pode contribuir para classificação de produtos em um marketplace, tendo como benefício uma
categorização confiável e eficiente. Para isso, foi extraído um dataset de arquivos CSV com
produtos de 9 e-commerces disponíveis na plataforma Kaggle. A partir dessa etapa as
informações textuais dos produtos foram normalizadas com técnicas de pré-processamento e
Processamento de Linguagem Natural. Por fim, os dados textuais foram separados em
porcentagens de treino e teste e então utilizados na criação de modelos preditivos. Após isso, os
modelos foram avaliados por três métricas diferentes e comparados entre si. Os resultados
mostraram um desempenho satisfatório utilizando Processamento de Linguagem Natural e
algoritmos de classificação supervisionada como: Support Vector Machine e Árvore de decisão.
1 Introdução
O modelo de marketplace tem conquistado espaço nas principais plataformas de e-
commerce brasileiras. É fato que esse modelo de comércio se tornou uma tendência e tem
sido uma das alternativas de venda mais lucrativas dos últimos anos. Hoje no Brasil as
maiores empresas que trabalham com e-commerce atuam no modelo de marketplace (E-
COMMERCE BRASIL, 2018).
Este tipo de negócio permitiu a expansão na variedade de produtos à venda para
os sites, uma vez que cria um cenário onde podem existir vários vendedores dentro da
mesma plataforma vendendo o mesmo produto com preços diferentes. Isso se torna
positivo para as plataformas, visto que há mais competitividade e opções de escolha para
o cliente, já para o vendedor o benefício se reflete em maior visibilidade, custo reduzido
entre outros (ZACHO, 2017).
Nesse contexto, tem-se um ambiente onde cada vendedor cadastra seu produto,
com preço, descrição, imagens específicas e inclusive o categoriza da forma que acha
melhor dentre as opções do site. Isso pode criar uma despadronização das categorias e
produtos.
Segundo o website Escola de E-commerce (2020), a categorização de produtos
correta é um fator muito importante para a plataforma, pois facilita que o cliente encontre
o que procura e transmite uma impressão de loja organizada, proporcionando uma
experiência de compra positiva ao cliente. Além disso, uma boa categorização ajuda no
ranqueamento da plataforma nos buscadores da web (Google, Bing etc..), pois estes
utilizam palavras chaves para encontrar o site. Outro benefício de uma classificação bem-
feita seria a facilidade de criar promoções segmentadas na plataforma (BIS2BIS E-
COMMERCE, 2018).
Outro cenário, seria onde um marketplace é composto por produtos de lojas
parceiras e esses produtos são cadastrados de forma automática, fazendo assim uma
integração de produtos de diferentes plataformas de e-commerce. Neste caso, mesmo
supondo que o produto já esteja categorizado no site de origem, o que tornaria a
categorização no sistema de destino mais fácil, é quase improvável que as categorias de
destino e origem correspondam.
Uma das tecnologias que geralmente é utilizada nas plataformas de marketplace
para auxiliar nas implementações com os produtos na experiência do usuário, é a
inteligência artificial.
Os sites que possuem algoritmos inteligentes utilizam dessas ferramentas para
recomendar, elencar e personalizar produtos para cada usuário, utilizando informações
obtidas na navegação do mesmo, criando um perfil para o usuário, com suas preferências,
podendo assim, exibir uma experiência personalizada que mais agrade o cliente. Além
disso tem-se o exemplo do Facebook Marketplace que utiliza inteligência artificial para:
sugestão de preços e características para auto categorização, remoção de conteúdos
impróprios e na melhoria nas imagens enviadas pelo vendedor (RATZ, 2019).
Baseado nesta conjuntura, onde há familiaridade entre as plataformas de e-
commerce e os algoritmos inteligentes, e se constroem soluções utilizando como base as
informações dos produtos, o presente artigo pretende demonstrar a criação de um modelo
de classificação de produtos em uma integração com o ambiente de marketplace.
Para isto, o artigo responderá a seguinte pergunta: Como a inteligência artificial pode
auxiliar a melhorar o processo de categorização de produtos em uma integração com um
marketplace? Então, tendo como objetivo geral, apresentar de que forma a inteligência
artificial poderia contribuir para a categorização de produtos em um marketplace, tendo
como benefício uma categorização confiável e eficiente.
E os seguintes objetivos específicos: avaliar de que forma a inteligência artificial
pode ajudar na organização de um catálogo de produtos de um e-commerce que utiliza
marketplace; analisar como obter uma categorização de produtos mais eficiente e
confiável; apresentar estatísticas da classificação estudando os resultados do algoritmo
para entender o grau de confiabilidade do mesmo.
Para atingir os objetivos, o presente trabalho tem como metodologia implementar
um modelo de classificação automática de produtos em um ambiente simulado de
marketplace, onde tem-se um sistema que recebe produtos de diferentes lojas sendo
preciso organizá-los nas categorias exatas no sistema destino independentemente das
categorias originais.
Para isso serão utilizadas ferramentas de programação juntamente com
inteligência artificial com objetivo de criar, testar e validar um modelo que possa
categorizar corretamente produtos de diferentes fontes (com diferentes categorias) em
categorias definidas de um sistema.
2 Referencial Teórico
Neste item serão descritos os conceitos que dão embasamento teórico para o
desenvolvimento do modelo de classificação apresentado nos itens 4 e 5 desse trabalho.
Será introduzido o assunto de inteligência artificial e aprendizado de máquina, bem como,
uma introdução ao conceito de aprendizagem supervisionada e serão abordados alguns
algoritmos classificadores e a relação destes com processamento de linguagem natural.
Por fim, é abordado o conceito de e-commerce e e-marketplace mostrando um pouco de
seus respectivos históricos e cenário atual.
2.1 Inteligência artificial
Segundo Russel, Norvig (2013), há séculos a humanidade tenta assimilar o conceito de
inteligência, ou seja, entender como uma pessoa pode compreender, perceber e manipular
o mundo. Os autores explicam que a inteligência artificial vai além disso, pois ela não
tenta apenas entender, mas também construir entidades que possuam inteligência.
O termo inteligência artificial surgiu em 1956, porém os primeiros estudos
começaram logo após a Segunda Guerra Mundial, por isso ainda é considerada uma
ciência nova comparada às outras (RUSSEL; NORVIG, 2013). Para Hammond (2015), a
inteligência artificial é uma sub-área da ciencia da computação responsável por criar
máquinas que possuem habilidades de realizar tarefas de maneira inteligente, nesta
mesma linha de raciocínio Luger (2009), define a inteligência artificial como um ramo da
ciência da computação que se preocupa com a automação do comportamento inteligente.
Sendo assim, pode-se concluir que a inteligência artificial é uma ciência que tem
como objetivo estudar e compreender a natureza humana de forma que consiga traduzir
os conceitos conhecidos da inteligencia humana para as máquinas utilizando métodos
computacionais, assim possibilitando que um computador possa “pensar”, perceber,
entender e aprender.
2.2 Aprendizado de máquina
Segundo Mohammed, Khan, Bashier (2016) explicam, as máquinas não são inteligentes
por natureza, elas foram projetadas para executarem tarefas específicas.
O aprendizado de máquina ou machine learning é um ramo da inteligência
artificial que permite que um sistema aprenda através de um conjunto de dados e não por
métodos de programação explícita. Esse tipo de aprendizado utiliza uma variedade de
algoritmos que possibilitam a leitura de um conjunto de dados e uma predição de
resultados com base nas informações recebidas pelo algoritmo.(HURWITZ; KIRSCH,
2018)
A ideia principal é que esses algoritmos sejam criados quando há necessidade de
uma máquina reconhecer um comportamento inteligente, não descrevendo a elas todos os
processos que fazem um ser inteligente aprender, mas sim escrevendo algoritmos que
farão com que as máquinas consigam aprender e treiná-las para executar tarefas
inteligentes. (MOHAMMED; KHAN; BASHIER, 2016)
Como explicam Shalev-Shwartz, Ben-David (2013), nas últimas décadas a
utilização de algoritmos de machine learning se tornou uma prática comum. Os autores
também citam a importância desses algoritmos, e como eles estão presentes em
dispositivos e tecnologias que circundam a sociedade hoje, como por exemplo: softwares
anti-spam que filtram mensagens de e-mail, assistentes pessoais que reconhecem
comandos de voz entre outras.
Por fim, machine learning pode ser definida como uma área da inteligência
artificial que inclui o desenvolvimento de algoritmos “inteligentes” treinados para fazer
um objetivo específico. O foco principal desta área é o desenvolvimento de sistemas e
aplicações que possam imitar a inteligência para resolver problemas. No próximo tópico
será abordado o conceito de aprendizagem supervisionada, sendo esse um dos campos
englobados pela aprendizagem de máquina.
2.2.1 Aprendizagem supervisionada
Obviamente o conceito da aprendizagem é muito amplo, consequentemente, o campo da
aprendizagem de máquina também, por isso este campo se ramificou em vários
subcampos que lidam com diferentes tipos de aprendizagem (SHALEV-SHWARTZ;
BEN-DAVID, 2013). Neste tópico será descrito o conceito da aprendizagem
supervisionada.
A aprendizagem supervisionada tem como objetivo encontrar padrões nos dados
que podem ser aplicados a um processo de análise. Esse tipo de abordagem rotula os
padrões encontrados nos dados antes de passar para análise do algoritmo. Um exemplo
de aprendizado supervisionado é previsão do tempo, usando análise de regressão, ela leva
em consideração histórico conhecido de padrões climáticos e condições atuais para
fornecer uma previsão sobre o clima (HURWITZ; KIRSCH, 2018).
Os dados que podem ser rotulados passam por um tipo de supervisor, que pode
ser um humano ou até mesmo uma máquina. Geralmente os agentes supervisores são
humanos, pois as taxas de erros são mais altas com máquinas (MOHAMMED; KHAN;
BASHIER, 2016).
Pode-se dizer que a abordagem supervisionada é bastante útil, pois há diversos
casos onde existe a possibilidade de rotular os dados antes do processo de análise, isso
torna mais fácil o processo de classificação e evolução do algoritmo. Pois e há um
parâmetro a ser seguido, que é dito por uma fonte confiável (sendo ela humana ou não).
No próximo tópico serão abordados alguns algoritmos do grupo de classificação.
2.3 Algoritmos classificadores
A técnica de classificação pode ser definida como uma abordagem sistemática para
construir modelos classificadores utilizando como entrada um conjunto de dados (TAN;
STEINBACH; KUMAR, 2009). Os itens a seguir descrevem alguns dos principais
algoritmos utilizados para classificação.
2.3.1 Árvores de decisão
Uma árvore de decisão é uma estrutura que recebe um conjunto de atributos como entrada
e produz uma decisão binária com valores (verdadeiros ou falsos) como saída. Geralmente
as arvores de decisão representam funções booleanas. Além de valores 0 e 1 outros tipos
de saída não binárias são permitidas. Cada nó em uma árvore representa o teste de algum
atributo da instância e cada ramificação descendente desse nó corresponde a um valor
possível desse atributo (KONAR, 2000).
Russel, Norvig (2013) apresentam um exemplo da estrutura de uma árvore de
decisão (vide Figura 1).
Figura 1. Árvore de decisão para definir se o cliente vai ou não esperar por uma mesa (RUSSEL;
NORVIG, 2013)
A Figura 2 mostra uma árvore de decisão para decidir a espera ou não de uma
mesa em um restaurante. Considera-se o problema de esperar para jantar em um
restaurante. O objetivo é aprender a definição para VaiEsperar. Para este problema, temos
alguns atributos para descrever possíveis casos de domínio. São eles: alternar de
restaurante, ir para um bar, dia da semana, estar com fome, número de fregueses, preço
da comida, clima, se foi feita reserva, tipo do restaurante, estimativa de espera. Os
atributos preço e tipo de comida, por terem pouca importância neste caso, foram
desconsiderados (RUSSEL; NORVIG, 2013).
No próximo tópico será abordado o conceito de Máquina de Vetores de Suporte,
que assim como arvores de decisão faz parte dos algoritmos de aprendizagem
supervisionada.
2.3.2 SVM (Máquina de Vetores de Suporte)
As máquinas de vetores de suporte (SVM) são sistemas de aprendizagem de máquina
treinados com um algoritmo de Otimização Matemática e que implementam um limite
derivado da Teoria de Aprendizagem Estatística desenvolvida pelo pesquisador russo
Vladimir Vapnik (MIRANDA DOS SANTOS, 2002). Com essa teoria o autor estabelece
princípios que devem ser seguidos para que se obtenha um classificador com uma boa
capacidade de prever corretamente novos dados de um mesmo domínio onde o
aprendizado ocorreu (LORENA; DE CARVALHO, 2002).
Pode-se citar ao menos duas características de destaque de uma SVM: possui uma
sólida fundamentação teórica, e pode alcançar um desempenho elevado em aplicações
práticas. Essa técnica de classificação consegue identificar com precisão os fatores a
serem considerados para a aprendizagem ter sucesso e construir modelos complexos
(MIRANDA DOS SANTOS, 2002). Além disso, segundo Lorena, De Carvalho (2002),
outras características importantes seriam: robustez para lidar com dados de grandes
dimensões (imagens, por exemplo) e boa capacidade de generalização.
Os algoritmos classificadores são parte de todo um ecossistema fundamentado em
estudos e desenvolvimento. Hoje essa tecnologia, que faz parte do aprendizado de
máquina é utilizada em várias frentes por diversos sistemas. (SHALEV-SHWARTZ;
BEN-DAVID, 2013)
Alguns exemplos de aplicação desses algoritmos envolvem classificação textual.
Nesse tipo de classificação são utilizadas técnicas nos dados de texto antes mesmo da
criação do modelo para classificar. No tópico a seguir será abordado o conceito de
Processamento de Linguagem Natural.
2.4 Processamento de Linguagem Natural (PLN)
O termo linguagem natural pode ser definido em linguagem utilizada na comunicação
diária pelos humanos, por exemplo, em idiomas como: inglês e português. Diferente de
linguagens artificiais, (como linguagens de programação e notações matemáticas) as
linguagens naturais evoluíram de geração para geração e são difíceis de definir com regras
totalmente explicitas e documentações (BIRD; KLEIN; LOPER, 2009).
Por isso, existe o Processamento de Linguagem Natural, basicamente esse termo
engloba uma série de práticas e transformações aplicadas aos textos para que estes possam
ser manipulados pelos computadores. Está altamente relacionado com aplicações que
envolvem: classificação de texto, tradução de documentos, predição e reconhecimento de
escrita, entre outras (BIRD; KLEIN; LOPER, 2009).
Em sites de e-commerce, por exemplo, é possível utilizar aprendizagem de
máquina juntamente com PLN para criar modelos de classificação utilizando dados
textuais dos produtos.
2.5 E-commerce e Marketplace
O comércio eletrônico ou e-commerce começou a partir dos anos 90, criando um mercado
virtual onde compradores e vendedores de qualquer lugar do mundo se encontram
simultaneamente para fazer transações de produtos e serviços ultrapassando barreiras do
tempo e espaço devido à conectividade (ARAÚJO, 2017).
Conforme Teixeira (2015), o e-commerce é como uma extensão do comércio
convencional, onde tem-se um ambiente virtual em que as operações como: compra,
venda e prestação de serviços acontecem; sendo assim uma forma abrangente e
sofisticada de se divulgar produtos e serviços,
Neste universo do e-commerce há também um modelo de negócio que é
denominado de e-marketplace, ou como é fequentemente chamado no Brasil:
marketplace. Este conceito surgiu também na década de 90 e basicamente o que pode
categorizar um e-commerce como marketplace, é o fato de que os marketplaces tratam-
se de plataformas de empresas que atuam como intermediadores para vendas de vários
outros fornecedores terceiros, provendo toda uma estrutura para que estes terceiros
possam praticar a atividade de venda (ASTURIANO MARTINS; ZILBER, 2019).
No Brasil, esse segmento também tem aumentado e alavancado as vendas online,
na quarta edição do ranking “50 Maiores Empresas do E-Commerce Brasileiro”
divulgado pela Sociedade Brasileira de Varejo e Consumo (SBVC) em 2018, os 10
primeiros colocados (Figura 3) atuam no modelo marketplace além de outros 24 das 50
posições deste ranking (E-COMMERCE BRASIL, 2018).
Figura 2. Os 10 primeiros colocados no Ranking das 50 Maiores Empresas do E-Commerce
Brasileiro divulgado em 2018 (E-COMMERCE BRASIL, 2018)
O modelo de comércio eletrônico é tão antigo e popular quanto a internet. Pode-
se dizer que as duas tecnologias evoluíram juntas. Desde o início nos anos 90 com a aposta
de algumas empresas, esse ramo não deixou de crescer, evoluindo para outros modelos
de comércio, como o Marketplace. Como é mostrado na Figura 2, o marketplace no Brasil
é o principal modelo de comércio online, também se provando o mais rentável.
3. Trabalhos Relacionados
Nos itens abaixo são descritos alguns trabalhos relacionados com o presente artigo, nesses
trabalhos são abordados sistemas de classificação de texto e imagem utilizando
algoritmos de inteligência artificial.
i. A Comparative Study of Machine Learning Techniques for Automatic
Product Categorisation (Um estudo comparativo de aprendizado de máquina
Técnicas para produtos automáticos Categorização) (CHAVALTADA;
PASUPA; HARDOON, 2017)
O presente artigo propõe a classificação de produtos baseado na informação textual,
utilizando de vários algoritmos de classificação para uma comparação de desempenho
dos mesmos. Neste trabalho foram utilizados dados de três datasets diferentes contendo
somados cerca de 45.876 produtos que estão classificados em 615 categorias.
Os dados foram divididos em 80% para treinamento e 20% para a fase de testes,
e então foi realizado o pré-processamento desses dados utilizando técnicas de data
mining. O desempenho da classificação de cada algoritmo foi avaliada utilizando a
métrica Area Under Receiver Operating Characteristic Curve (AUROC).
Por fim, os autores apresentam uma tabela de comparação de desempenho entre
os algoritmos abordados, sendo esses Naive Bayes (NB), Regressão Logística (LR),
Redes Neurais Artificiais (ANN), e Máquinas de Vetores de Suporte (SVM). Eles
consideraram os resultados de classificação dos algoritmos para cada um dos três datasets,
e demostraram a comparação entre eles. Após essas analises os autores descobriram que
o algoritmo Naive Bayes foi o melhor estatisticamente.
ii. Large-scale Multi-class and Hierarchical Product Categorization for an E-
commerce Giant (Categorização hierárquica e multi-escala de produtos em
larga escala para um E-commerce Gigante) (CEVAHIR; MURAKAMI,
2016)
O artigo propõe uma ferramenta de classificação em larga escala de produtos de um e-
commerce em milhares de categorias multiníveis. Para fazer essas predições foram
utilizados 280 milhões de dados de produtos contendo título e descrição provenientes de
um e-commerce. Os autores optaram por não utilizar imagens para auxiliar na
classificação, pois segundo eles o tempo de processamento seria muito grande devido à
quantidade de dados.
A ferramenta foi desenvolvida utilizando principalmente uma combinação de dois
modelos de redes neurais, isto é, KNN (k-Nearest Neighbors) e DBN(Deep belief nets).
Aplicados aos dados, esses algoritmos são usados para construir os modelos, e então as
previsões são feitas combinando os resultados de diferentes modelos e diferentes fontes
de dados.
Para as categorias analisadas o trabalho propõe um método de classificação que
organize os produtos em 28.338 categorias do e-commerce dispostas em 5 níveis
diferentes de taxonomia. Além disso, foi observado que após comparações com as
atribuições das categorias o modelo chegou a 81% de correspondência quando a categoria
“Outros” foi removida do teste. Também visto que em alguns casos o modelo se tornou
mais assertivo que a rotulação de categorias manual, ou seja, feita por mãos humanas.
iii. KNN with TF-IDF Based Framework for Text Categorization (KNN com
estrutura baseada em TF-IDF para categorização de texto)(TRSTENJAK;
MIKAC; DONKO, 2014)
O artigo em questão apresenta uma solução para a classificação de texto utilizando o
algoritmo KNN com um framework de classificação textual chamado TF-IDF. O TF-IDF
é um método estatístico numérico que permite a determinação do peso para cada termo
(ou palavra) em cada documento.
Esse método é frequentemente usado em processamento de linguagem natural
(PLN) ou na recuperação de informações e mineração de texto. O método determina o
peso, na medida que avalia a importância dos termos na coleção de documentos. A
importância do texto é aumentada proporcionalmente ao número de aparições nos
documentos.
Basicamente os autores utilizaram o framework como base e criaram módulos
para melhora-lo e integra-lo com o algoritmo KNN. Entre esses módulos os principais
seriam, o de pré-processamento (que ajusta o documento para um formato adequado para
a classificação) e o módulo KNN e TF-IDF, este seria o principal módulo pois nele estão
presentes os principais métodos para classificação.
O trabalho realizado pelo framework foi muito estável e confiável, durante os
testes foram obtidos bons resultados. A combinação do algoritmo KNN e do método TF-
IDF tem sido mostrada como uma boa escolha com menores modificações em sua
implementação.
iv. An Efficient Text Classification Scheme Using Clustering (Um esquema
eficiente de classificação de texto usando cluster) (THOMAS;
RESMIPRIYA, 2016)
O artigo propõe um método de classificação de texto que utiliza medidas eficientes de
similaridade para obter melhor desempenho. Os autores desenvolvem um método de
classificação utilizando clustering, usando um cluster semi-supervisionado para criar um
modelo de classificação.
As principais etapas do processo de classificação são: a construção do modelo e o
uso do classificador para classificação. O sistema em si é dividido em quatro módulos:
pré-processamento, cluster semi-supervisionado, cálculo de similaridade e classificação.
No pré-processamento é feita toda a preparação dos textos (extração das palavras,
remoção de stop words), em sequência é feito um processo de streaming das palavras e
por fim é construída a parte de vetorização das palavras utilizando TF-IDF, para assim
formar uma matriz de documentos e termos.
Para os experimentos é utilizado um dataset que contém dados de notícias
(Reuters-21578) rotuladas e não rotuladas. Os autores utilizam 800 documentos para fazer
as experiências, destes, 560 estão sem rótulo. Segundo os autores, a utilização do clusters
supervisionados para a fase de criação do modelo de classificação é uma abordagem
melhor, pois a maioria dos algoritmos precisa de dados rotulados na fase de treinamento
para a geração do modelo, nessa abordagem é possível utilizar também dados não
rotulados.
A partir da fase de testes os autores então concluem que, a abordagem com os
clusters obteve um bom resultado, sendo realizados testes onde são analisados 100
documentos em várias medidas de similaridade, entre essas os melhores resultados
obtiveram uma acurácia de 93%.
v. Is a Picture Worth a Thousand Words? A Deep Multi-Modal Fusion
Architecture For Product Classification In E-Commerce ( Uma imagem vale
mais que mil palavras? Uma Arquitetura Multi-Modal Profunda de Fusão
Para Classificação de Produtos em E-commerce) (ZAHAVY et al., 2016)
O artigo propõe o uso de classificação de produtos de um e-commerce em categorias
baseado nas imagens e textos informativos dos produtos, o que os autores chamam de
Multi-Modalidade. Para os textos os autores propõem a utilização do algoritmo CNN, já
para a classificação de imagens o autor aborda o algoritmo VGG. O autor também fala
que o uso da Multi-Modalidade (utilização dos dois algoritmos juntos) pode superar o uso
de apenas um algoritmo para a classificação.
Foram coletados mais de 1,2 milhões de informações de produtos do Walmart
(como imagem, descrição, etc.) para treinar o algoritmo de classificação. Na melhor CNN
treinada conseguiu-se classificar 70% dos produtos corretamente, enquanto utilizando a
VGG conseguiu-se classificar 57%.
Com base no trabalho realizado os autores descobriram que a classificação por
texto utilizada supera a classificação de imagem (aplicando no dataset utilizado). Mas,
existe um grande potencial na fusão dos dois tipos de classificação. Por fim, os autores
concluem que a fusão dos dois modelos cria uma abordagem superior aos mesmos quando
usados separadamente.
A Tabela 1 descreve algumas características das ferramentas e recursos utilizados pelos
trabalhos apresentados neste item.
Tabela 1 - Características dos trabalhos relacionados.
Índice do
trabalho
Tipo de classificação Algoritmo(s)
utilizado(s)
Dataset utilizado
i Classificação baseada nas
informações textuais dos produtos
utilizando diversos algoritmos e
comparando-os.
NB, RL,
ANN, SVM
Foram utilizados 3 datasets de
diferentes e-commereces
ii Classificação dos produtos de um
e-commerce em categorias
baseados nos títulos e descrições
KNN e DBN Produtos do e-commerce
Rakuten Ichiba
iii Classificação de documentos em
categorias baseado no conteúdo
KNN e TF-
IDF
Foram utilizados 500
documentos de texto.
iv Classificação dos documentos em
clusters baseados nas categorias
dos mesmos
TF-IDF Foi utilizado um dataset
(Reuters-21578) que contém
uma coleção de notícias,
rotuladas e não rotuladas com
800 documentos
v Classificação de produtos de um
e-commerce baseado na imagem e
informações de texto
CNN e VGG Utilizado 1,2 milhões de dados
de produtos disponibilizados
pelo Walmart
Fonte: Desenvolvido pelo autor (2020)
Os trabalhos descritos neste item apresentam conceitos de algoritmos de
inteligência artificial para classificação de dados textuais e imagem, aplicando-os na
metodologia com o intuito de classificar produtos e objetos em categorias. Alguns destes
trabalhos abordam o ambiente de e-commerce, onde existe classificação baseada na
taxonomia do produto, utilizando descrição, dados tabulados e imagem dos produtos para
implementação de uma categorização automática dentro do sistema, sendo que esta última
parte se assemelha muito à metodologia proposta neste presente trabalho.
4 Materiais e Métodos
Os métodos descritos neste item são baseados em uma pesquisa aplicada e qualitativa
exploratória, que consiste em trazer uma base teórica referencial, para descrever os
conceitos utilizados no desenvolvimento de um modelo de classificação de produtos de
um e-commerce baseado em dados textuais. A pesquisa foi desenvolvida com base na
criação de um modelo de classificação, tendo como finalidade descrever os processos e
infraestrutura utilizados para construí-lo e a avaliação de seu desempenho por meio de
análise com métricas.
4.1 Ferramentas utilizadas
Para o desenvolvimento deste modelo de classificação será utilizado a linguagem Python,
assim como algumas ferramentas que ela provém. Nos próximos parágrafos estão
descritas com mais detalhes a linguagem Python e algumas dessas ferramentas e sua
utilização neste trabalho.
A linguagem Python se tornou uma das linguagens de programação interpretadas
mais populares, desenvolvendo uma comunidade grande e ativa de processamento
cientifico e análise de dados. Nos últimos anos o Python deixou de ser apenas uma
linguagem inovadora para se tornar uma das ferramentas mais importantes em ciência de
dados e machine learning. Hoje, a linguagem Python é uma opção popular para tarefas
de análise de dados, devido a sua comunidade crescente e suporte a bibliotecas como
scikit-learn e pandas. (MCKINNEY, 2019). Utiliza-se da versão 3.8.3 do Python para
essa pesquisa.
O Scikit-learn é uma das principais ferramentas da linguagem Python para
trabalhar com machine-learning. Essa biblioteca dispõe de um kit de ferramentas para
criação de modelos de aprendizagem de máquina e outras funções que auxiliam na
preparação dos dados para esses modelos. Por isso, o Scikit-learn juntamente com o
Pandas são algumas das principais ferramentas responsáveis pela popularidade da
linguagem Python em análise e ciência de dados (MCKINNEY, 2019). Nesta pesquisa é
utilizada a versão 0.24.2 dessa biblioteca.
O Pandas é uma biblioteca da linguagem Python que oferece estruturas de dados
e funções de alto nível, para trabalhar com dados estruturados ou tabulares de maneira
rápida e fácil. Por conta disso, o Pandas tem ajudado a popularizar o Python como um
ambiente produtivo para análise de dados. O Pandas é muito utilizado para fazer o pré-
processamento dos dados, pois ele disponibiliza funções para manipulação, preparação e
limpeza de dados que são habilidades muito importantes para análise de dados
(MCKINNEY, 2019). Para essa pesquisa, foi utilizada a biblioteca Pandas na versão
1.0.5.
4.2 Procedimentos utilizados
A partir das ferramentas escolhidas, foram definidos os procedimentos desta pesquisa que
serão descritos nos parágrafos abaixo. A Figura 3 apresenta um fluxo para os
procedimentos que foram realizados no desenvolvimento da pesquisa.
Figura 3. Procedimentos para desenvolvimento do modelo
Fonte: desenvolvido pelo autor (2021)
Assim como mostra a Figura 3, a primeira etapa consistiu na escolha da base de
dados. A base de dados que foi utilizada é proveniente de datasets formados por arquivos
CSV (comma-separated values) composta por produtos de 9 diferentes e-commerces do
nicho de roupa íntima feminina.
A partir desses arquivos foi possível extrair informações sobre os produtos
disponíveis nesses e-commerces e construir o cenário de integração. Como os datasets
provém de diferentes lojas (assim como os produtos de um marketplace) a ideia é
construir o cenário de marketplace a partir desses arquivos, juntado todos os dados em
um único arquivo e utilizá-lo para a pesquisa (KAGGLE, 2017).
Após a definição da base de dados, outras etapas importantes foram o pré-
processamento e processamento de linguagem natural. Elas fazem parte da preparação do
dado para a criação do modelo. O pré-processamento é uma etapa muito importante para
lidar com os dados provenientes do dataset, pois é no pré-processamento que é realizado
o tratamento dos dados para que possam ser analisados pelo algoritmo. Os dados nem
sempre estão adequados, muitas vezes é necessário tratar dados nulos ou duplicados, entre
outros procedimentos (TEBALDI GOMES, 2019).
Como já citado no tópico 2.4 desta pesquisa, as técnicas de PLN são essenciais
para a criação de modelos de classificação que utilizam texto. Essas técnicas foram
utilizadas para fazer transformações nas informações textuais dos produtos (nome,
descrição etc..). Após a aplicação desses procedimentos de pré-processamento e de PNL
em dados textuais, foi gerado um array numérico que foi utilizado para criar e treinar os
modelos de machine learninng (conforme a última etapa da Figura 3).
Nessa última etapa, os dados foram divididos em frações de treino e teste, para
que fosse possível criar os modelos e testa-los. Após a criação dos modelos, foram
utilizadas três métricas para comparar a eficiência dos modelos: acurácia, precisão e
recall.
As métricas de avaliação se baseiam na classificação binária dos dados, as
predições feitas nesse tipo de classificação podem ter quatro possíveis classes
(MARINANO, 2021):
• Verdadeiro Positivo (VP): o modelo prediz que a classe é positiva e no
momento da comparação é concluído que a classe era realmente positiva;
• Verdadeiro Negativo (VN): o modelo prediz que a classe é negativa e
no momento da comparação é concluído que a classe é negativa;
• Falso Positivo (FP): o modelo prediz que a classe é positiva e no
momento da comparação é concluído que a classe é negativa;
• Falso Negativo (FN): o modelo prediz que a classe é negativa e no
momento da comparação é concluído que a classe é positiva;
A partir dessas classes, cada métrica é gerada utilizando da aplicação de uma
equação especifica (Tabela 2):
Tabela 2 – Métricas utilizadas e suas respectivas equações.
Métrica utilizada Equação
Acurácia 𝑽𝑷 + 𝑽𝑵
𝑻𝒐𝒕𝒂𝒍
Precisão 𝑽𝑷
𝑽𝑷 + 𝑭𝑷
Recall 𝑽𝑷
𝑽𝑷 + 𝑭𝑵
Fonte: (MARINANO, 2021)
5 Resultados Obtidos
Neste tópico serão demonstrados os resultados obtidos com a aplicação técnica dos
métodos descritos no tópico 4.2. A partir da utilização das ferramentas Pandas e Scikit-
Learn foi possível aplicar as técnicas de pré-processamento e PLN, bem como criar os
modelos preditivos e testá-los utilizando métricas. Nos próximos parágrafos será descrito
com detalhes essas técnicas aplicadas, mostrando quais os métodos computacionais
utilizados para cada uma das etapas descritas na Figura 3.
Conforme mostrado na Figura 3, para essa pesquisa foram utilizadas algumas
técnicas de pré-processamento para poder adequar melhor o dataset utilizado. Em um
primeiro momento, foi feita a concatenação dos 9 arquivos (provenientes de 9
origens/sites diferentes) CSV da base de dados em um dataset totalizando 613.143
registros distribuídos em 14 colunas.
Após isso, foi realizada uma análise sobre as colunas, descartando colunas que
não tinham informações textuais, utilizando a função filter da ferramenta pandas para
filtrar apenas as colunas com informações úteis para classificação textual.
Figura 4. Impressão das colunas originais (na vertical) do dataset mostrando o primeiro
registro.
Fonte: desenvolvido pelo autor (2021)
Foi optado por manter apenas as colunas que possuem dados textuais, então as
colunas como price, mrp, ratingm e review_count foram excluídas do filtro. Também foi
constatado que em alguns arquivos CSVs carregados a coluna style_attributes tinha os
registros nulos, ou seja, em alguns e-commerces essa informação não foi coletada. Para
evitar a remoção de diversos registros, foi optado por remover essa coluna antes da
remoção de valores nulos.
Figura 5. Os 5 primeiros registros do dataset após filtro (função filter) aplicado nas colunas
Fonte: desenvolvido pelo autor (2021)
Além da aplicação do filtro, (conforme mostrado na Figura 5) existe a necessidade
da remoção de registros que possuam colunas nulas e registros duplicados, para que não
atrapalhem no momento de criação e treinamento do modelo (TEBALDI GOMES, 2019).
Para isso, foram utilizadas as funções drop_duplicates (para remoção de duplicatas) e
dropna (para remoção de registros com dados nulos) da ferramenta Pandas.
Após esses tratamentos, foi aplicada uma função para fazer a normalização da
coluna brand, criando a partir do resultado dessa função uma nova coluna
brand_name_normalize. Então, foi criada mais uma coluna product_name_desc
resultante da concatenação textual das demais colunas.
A intenção da coluna product_name_desc é ser a coluna que contém todas as
informações textuais que serão necessárias para criar o modelo, pois assim é mais fácil
realizar as transformações. No momento da criação do modelo e futuras transformações
textuais ela será utilizada como a coluna de treino/teste.
A última alteração nas colunas, foi a criação de uma nova coluna para representar
as categorias de um marketplace de destino, ou seja, a classe em qual os dados serão
classificados na criação do modelo. Como se trata da criação de um modelo
supervisionado, é necessário ter o mapeamento de quais categorias dos e-commerces
externos serão classificadas para as categorias internas do marketplace.
Para criação dessa nova coluna, foi desenvolvido um método que agrupa todas as
categorias provenientes dos e-commerces externos (522 categorias diferentes), em
algumas categorias do marketplace de destino (12 categorias). Após a aplicação dessa
função, foi criada a coluna marketplace_category.
A coluna marketplace_category será utilizada como classe/label, ou seja será a
coluna na qual os dados serão classificados (coluna product_name_desc).
Após a aplicação de todos métodos descritos acima o dataset final reduziu-se a
82.271 registros e 8 colunas, conforme mostra a Figura 6:
Figura 6. O dataset após a aplicação de métodos de pré-processamento
Fonte: desenvolvido pelo autor (2021)
A partir do dataset normalizado (Figura 6) utilizando a coluna product_name_desc
(concatenação das demais colunas) foi aplicado o método CounterVectorizer da
ferramenta Scikit-learn que aplica duas transformações no texto: remoção de stopwords
e criação de um bag of words.
As stopwords são palavras que são muito comuns em um idioma (repetitivas)
possuem apenas significado sintático e não tem valor algum para o contexto do
texto/documento, palavras como: “e”, “ou”, “para” (em português). Por isso é necessário
remove-las pois como são palavras muito frequentes o modelo preditivo certamente daria
importância a elas (LIMA, 2017).
Já a técnica de bag of words, consiste em transformar as palavras de um
texto/documento em um vetor de frequência. Basicamente, constrói um vetor que
representa a quantidade de vezes que uma palavra aparece em um documento realizando
uma contagem dessa frequência (LIMA, 2017).
Após a aplicação dessas técnicas o vetor resultante gerado por meio do
CounterVectorizer é utilizado para uma terceira técnica de PLN para transformação do
texto: TF-IDF (Term frequency - Inverse document frequency).
A TF-IDF é uma técnica que consiste em determinar se um termo é importante
baseado na frequência em que ele aparece no texto, atribuindo para cada palavra uma
pontuação que é feita a partir de um cálculo da pontuação da frequência da palavra no
documento atual (TF) e a pontuação de quão rara é a palavra no documento
(IDF)(JAYASWAL, 2020). Nessa pesquisa foi utilizado um método da ferramenta Scikit-
learn chamado TfidfTransformer para aplicar o TF-IDF na coluna product_name_desc.
Por fim, após todas estas transformações na coluna product_name_desc ela já
está apta para ser processada e analisada pelos modelos preditivos. A Figura 7 exibe um
dataframe criado a partir do array de palavras gerado pela aplicação do método
TfidfTransformer na coluna product_name_desc. Os próximos parágrafo descrevem a
parte de classificação e comparação entre os algoritmos utilizados.
Figura 7. Trecho de código que gera um dataframe baseado na aplicação de TF-IDF na coluna
product_name_desc.
Fonte: desenvolvido pelo autor (2021)
Antes de iniciar a criação dos modelos preditivos é necessário dividir os dados em dois
conjuntos: dados de treino e teste. Essa etapa é muito importante pois, após o treinamento
o modelo precisa de dados novos (que não foram utilizados no treino) para fazer a
avaliação de desempenho corretamente. Para fazer esta divisão será utilizado outro
método da ferramenta Scikit-learn chamado train_test_split.
Outra transformação que deve ser feita antes de construir o modelo de predição, é
a normalização da coluna na qual serão classificados os dados (classe ou label). Para isso
foi utilizado o método LabelEncoder também da ferramenta Scikit-learn. Esse método
permite a transformação da classe (texto) em variável numérica (0 a n, onde n é a
quantidade de classes que existirem).
A partir desse ponto, com os dados normalizados será detalhada a criação dos
modelos preditivos. Os modelos de classificação supervisionada utilizados nessa pesquisa
são (Tabela 3):
Tabela 3 – Relação entre algoritmo utilizado e Método para criação do modelo com Scikit-learn.
Algoritmo utilizado Método da ferramenta Scikit-Learn
para construir o modelo
Árvores de Decisão DecisionTreeClassifier()
Support Vector Machines (SVM) LinearSVC()
Algoritmo Baseline classificando por
maior frequência
DummyClassifier
(strategy="most_frequent")
Algoritmo Baseline classificando
aleatoriamente
DummyClassifier(strategy='uniform')
Fonte: desenvolvido pelo autor (2021)
Os algoritmos presentes na Tabela 3 (com exceção do Algoritmo baseline) estão
descritos com mais detalhes na seção 2.3 deste artigo.
O algoritmo baseline é um algoritmo que utiliza métodos de classificação muito
básicos, como: classificação pela classe de maior frequência, classificação de forma
aleatória entre outros.
Esse tipo de algoritmo só é utilizado para validar a qualidade dos outros modelos
já treinados (reais). O baseline nunca é utilizado em uma classificação real, pois como
citado acima sua classificação é muito básica e só faz sentido para comparar com modelos
que de fato estão analisando os dados. A ideia neste artigo é utilizá-lo justamente como
um primeiro modelo para base da métrica de desempenho, pois se os modelos reais forem
piores que o algoritmo baseline, significa que os modelos criados são piores do que uma
simples adivinhação de classes, e então precisam ser revistos e reconstruídos.
Todos os modelos apresentados na Tabela 3 foram treinados e testados utilizando
um hardware com um processador Intel(R) Core (TM) i5-9300H com 16GB de RAM e
demoraram cerca de 10 segundos para a criação e teste. A diferença de tempo de execução
foi quase imperceptível entre os modelos.
Conforme explicado na seção 4.2.2 deste artigo, os modelos utilizaram para o
treino a coluna product_name_desc do dataset como entrada de dados e a coluna
marketplace_category como classe. A Tabela 4 mostra as métricas de classificação dos
algoritmos utilizando 90% dos dados para treino e 10% para teste.
Tabela 4 – Métricas de classificação utilizando diferentes algoritmos com 90% de dados de treino e
10% de dados de teste.
Algoritmo utilizado Acurácia Precisão Recall
Árvores de Decisão 86% 78% 83%
Support Vector Machines
(SVM)
89% 86% 89%
Algoritmo Baseline
classificando pela classe de
maior frequência
67% 10% 7%
Algoritmo Baseline
classificando aleatoriamente
8% 8% 7%
Fonte: desenvolvido pelo autor (2021)
A Tabela 5 mostra as métricas de classificação dos algoritmos utilizando 75% dos
dados para treino e 25% para teste.
Tabela 5 – Métricas de classificação dos algoritmos utilizando diferentes algoritmos com 75% de
dados de treino e 25% de dados de teste.
Algoritmo utilizado Acurácia Precisão Recall
Árvores de Decisão 87% 81% 85%
Support Vector Machines
(SVM)
90% 90% 92%
Algoritmo Baseline
classificando pela classe de
maior frequência
68% 8% 5%
Algoritmo Baseline
classificando aleatoriamente
8% 5% 8%
Fonte: desenvolvido pelo autor (2021)
A Tabela 6 mostra as métricas de classificação dos algoritmos utilizando 50% dos
dados para treino e 50% para teste.
Tabela 6 – Métricas de classificação dos algoritmos utilizando diferentes algoritmos com 50% de
dados de treino e 50% de dados de teste.
Algoritmo utilizado Acurácia Precisão Recall
Árvores de Decisão 89% 86% 87%
Support Vector Machines
(SVM)
91% 86% 93%
Algoritmo Baseline
classificando pela classe de
maior frequência
68% 8% 5%
Algoritmo Baseline
classificando aleatoriamente
8% 5% 7%
Fonte: desenvolvido pelo autor (2021)
Como pôde ser observado nas tabelas 4, 5 e 6 o algoritmo que obteve melhor
resultado independente da porcentagem da separação entre dados de treino e teste foi o
SVM em ambas as métricas. O algoritmo de Árvore de Decisão, por sua vez, também
obteve bons resultados, variando em geral 3% a menos na acurácia se comparado ao
SVM, independentemente da porcentagem de dados de treino e teste.
Quanto à classificação dos modelos de algoritmos de baseline, o modelo do
algoritmo baseado em classificar pela classe de maior frequência teve 68% de acerto na
acurácia em média um percentual alto se comparado ao outro modelo do algoritmo de
baseline de classificação aleatória que obteve apenas 8% de acurácia nos 3 cenários. Ao
visualizar as demais métricas, como precisão e recall vemos que ambos algoritmos
baseline possuem um resultado semelhante.
No entanto, os dois modelos treinados a partir das técnicas de PLN obtiveram
resultados acima do modelo de baseline pela classe de maior frequência. Ou seja, ambos
modelos podem ser considerados úteis para a classificação destes dados nesse cenário.
6 Considerações finais e trabalhos futuros
Este artigo apresentou um estudo para categorização de produtos de diversos e-
commerces em um contexto de marketplace, propondo a utilização de ferramentas de
análise de dados, técnicas de normalização, transformação e processamento de linguagem
natural utilizando as informações textuais disponíveis nos produtos. Além da criação de
modelos preditivos utilizando estes dados de texto pré-processados como insumo.
A partir das análises realizadas, foi possível concluir que os algoritmos de
classificação por aprendizagem supervisionada, juntamente com as técnicas de
processamento de linguagem natural demostraram um desempenho satisfatório para a
categorização de produtos através dos atributos textuais.
Assim como, atendendo às expectativas desta pesquisa em seu objetivo principal
de mostrar como a inteligência artificial alinhada com as técnicas de machine learning
poderia contribuir para a categorização de produtos em um contexto de marketplace de
forma confiável. O trabalho também analisou a parte teórica dos algoritmos, mostrando
seus principais conceitos e avaliou os algoritmos através da acurácia, precisão e recall
para entender o grau de confiabilidade do mesmo.
Para pesquisas e trabalhos futuros, pode-se destacar a utilização de outros tipos
de dados para classificação, como imagens, por exemplo. A criação e comparação de um
modelo que utiliza imagens com os modelos apresentados, ou até a utilização de ambos
os modelos (classificação de imagem e texto) juntos. Outra evolução possível é a
obtenção de uma base de dados a partir da criação de um web crawling, com uma maior
quantidade de dados e a utilização de hierarquias de categorias. Por último, a criação de
uma API REST para produtizar a solução criada, fazendo com que seja facilitada a
integração com demais sistemas.
7 Referências
ARAÚJO, M. B. DE. Comércio Eletrônico, Marco Civil da Internet, Direito Digital.
Rio de Janeiro: Imos Gráfica e Editora, 2017.
ASTURIANO MARTINS, E. A.; ZILBER, M. A. A Inovação como fator de
Diferenciação no Segmento e-Marketplace. Revista Eletrônica de Estratégia &
Negócios, v. 11, n. 3, p. 3, 2019.
BIRD, S.; KLEIN, E.; LOPER, E. Natural Language Processing with Python. 1. ed.
[s.l.] O’Reilly Media, 2009.
BIS2BIS E-COMMERCE. Produtos: dicas para definir as categorias no e-commerce.
Disponível em: <https://www.bis2bis.com.br/dicas-para-definir-as-categorias-no-e-
commerce.>. Acesso em: 13 jun. 2020.
CEVAHIR, A.; MURAKAMI, K. Large-scale multi-class and hierarchical product
categorization for an e-commerce giant. p. 525–535, 2016.
CHAVALTADA, C.; PASUPA, K.; HARDOON, D. R. A Comparative Study of
Machine Learning Techniques for Automatic Product Categorisation. 2017.
E-COMMERCE BRASIL. E-commerce: marketplaces dominam ranking dos 50
maiores do Brasil. Disponível em:
<https://www.ecommercebrasil.com.br/noticias/sbvc-ranking-50-e-commerce-brasil/>.
Acesso em: 31 maio. 2020.
ESCOLA DE E-COMMERCE. Quais as melhores práticas para categorizar produtos
no e-commerce? Disponível em: <https://www.escoladeecommerce.com/artigos/quais-
as-melhores-praticas-para-categorizar-produtos-no-e-commerce>. Acesso em: 13 jun.
2020.
HAMMOND, K. Practical Artificial Intelligence for Dummies. Hoboken: John Wiley
& Sons, Inc., 2015.
HURWITZ, J.; KIRSCH, D. Machine Learning For Dummies, IBM Limited Edition.
IBM Limite ed. Hoboken: John Wiley & Sons, Inc., 2018. v. 1
JAYASWAL, V. Text Vectorization: Term Frequency — Inverse Document
Frequency (TFIDF). Disponível em: <https://towardsdatascience.com/text-
vectorization-term-frequency-inverse-document-frequency-tfidf-5a3f9604da6d>.
Acesso em: 1 maio. 2021.
KAGGLE. Innerwear Data from Victoria’s Secret and Others | Kaggle. Disponível
em: <https://www.kaggle.com/PromptCloudHQ/innerwear-data-from-victorias-secret-
and-others?select=ae_com.csv>. Acesso em: 7 abr. 2021.
KONAR, A. Artificial Intelligence and Soft Computing Behavioral and Cognitive
Modeling of Humam Brain. New York: CRC Press, 2000.
LIMA, V. Utilizando processamento de linguagem natural para criar um
sumarização automática de textos. Disponível em:
<https://medium.com/@viniljf/utilizando-processamento-de-linguagem-natural-para-
criar-um-sumarização-automática-de-textos-775cb428c84e>. Acesso em: 5 maio. 2021.
LORENA, A. C.; DE CARVALHO, A. C. P. L. F. Uma Introdução às Support Vector
Machines. 2002.
LUGER, G. F. Artificial Intelligence: Structures and Strategies for Complex
Problem Solving. 6th. ed. Boston: Addison-Wesley, 2009. v. 6th
MARINANO, D. Métricas de avaliação em machine learning. Disponível em:
<https://diegomariano.com/metricas-de-avaliacao-em-machine-learning/>. Acesso em:
12 jul. 2021.
MCKINNEY, W. Python para análise de dados: Tratamento de dados com Pandas,
NumPy e IPython. São Paulo: Novatec Editora, 2019.
MIRANDA DOS SANTOS, E. Teoria e Aplicação de Support Vector Machines à
Aprendizagem e Reconhecimento de Objetos Baseado na Aparência. Campina
Grande: [s.n.].
MOHAMMED, M.; KHAN, M. B.; BASHIER, E. B. M. Machine Learning Algorithms
and Applications. New York: CRC Press, 2016. v. 13
RATZ, L. IA: Inteligência artificial aplicada nos marketplaces.
RUSSEL, S.; NORVIG, P. Inteligência Artificial. 3a ed. Rio de Janeiro: Elsevier Editora
Ltda, 2013. v. 3
SHALEV-SHWARTZ, S.; BEN-DAVID, S. Understanding machine learning: From
theory to algorithms. New York: Cambridge University Press, 2013. v. 9781107057
TAN, P.-N.; STEINBACH, M.; KUMAR, V. Introdução ao Data Mining. [s.l.] Ciência
Moderna, 2009.
TEBALDI GOMES, P. C. Pré-Processamento de Dados Conheça as Técnicas e as
Etapas! Disponível em: <https://www.datageeks.com.br/pre-processamento-de-dados/>.
Acesso em: 1 jun. 2020.
TEIXEIRA, T. Comércio eletrônico - Conforme o Marco Civil da Internet e a
regulamentação do e-commerce no Brasil. São Paulo: Saraiva, 2015.
THOMAS, A. M.; RESMIPRIYA, M. G. An Efficient Text Classification Scheme Using
Clustering. Procedia Technology, v. 24, p. 1220–1225, 2016.
TRSTENJAK, B.; MIKAC, S.; DONKO, D. KNN with TF-IDF based framework for text
categorization. Procedia Engineering, v. 69, 2014.
ZACHO, R. O que é Marketplace? – veja as vantagens e desvantagens. Disponível
em: <https://www.ecommercebrasil.com.br/artigos/marketplace-vantagens-e-
desvantagens/>. Acesso em: 13 jun. 2020.
ZAHAVY, T. et al. IS A PICTURE WORTH A THOUSAND WORDS? A DEEP
MULTI-MODAL FUSION ARCHITECTURE FOR PRODUCT CLASSIFICATION IN
E-COMMERCE. 2016.