• Nenhum resultado encontrado

Thiago Affonso de Carvalho Baranda. Categorização de Perguntas para Áreas de Atendimento de Alto Fluxo por Redes Neurais

N/A
N/A
Protected

Academic year: 2021

Share "Thiago Affonso de Carvalho Baranda. Categorização de Perguntas para Áreas de Atendimento de Alto Fluxo por Redes Neurais"

Copied!
38
0
0

Texto

(1)

Thiago Affonso de Carvalho Baranda

, Categorização de Perguntas para Áreas de Atendimento de Alto Fluxo por Rede Neurais

Thiago Affonso de Carvalho Baranda

Categorização de Perguntas para Áreas de

Atendimento de Alto Fluxo por Redes Neurais

Monografia de Final de Curso

21/12/2016

Monografia apresentada ao Departamento de Engenharia Elétrica da

PUC/Rio como parte dos requisitos para a obtenção do título de

Especialização em Business Intelligence.

Orientadores:

Leonardo Forero Mendoza

(2)

Dedicatória

Aos meus pais pelo esforço e investimento de toda uma vida por meus estudos. A minha irmã pela parceria.

(3)

Agradecimentos

Ao meu orientador por não desistir de mim, Leonardo Forero Mendoza.

Aos colegas de turma e professores que incansavelmente nos apoiaram e pelas experiências, conversas e conhecimentos trocados.

(4)

RESUMO

A área de suporte e atendimento ao cliente é a linha de frente e onde os clientes mais

tem contato após a venda independentemente do core business. O crescimento é o objetivo

quase que inerente a qualquer empresa. Quanto maior o negócio mais e mais pessoas serão

atingidas pelo serviço prestado ou produto utilizado. E por consequência maior será a interação

com os clientes, ou seja, a área de atendimento é proporcional ao crescimento. Porém, como

torna-la de maneira eficiente o mais escalável possível?

Este trabalho tem o intuito de mostrar que é possível a automatização da categorização

prévia de perguntas escritas em linguagem natural por redes neurais artificiais.

RNA são algoritmos baseados na própria anatomia humana, onde áreas de

conhecimento se mesclam, computação e biologia humana a fim de reproduzir um dos órgãos

mais complexos de nossos corpos, o cérebro.

As aplicações de uma categorização por redes neurais podem ser desde encaminhar

uma pergunta aos recursos humanos mais indicados a organizar e catalogar toda uma

biblioteca digital.

(5)

ABSTRACT

The support area and customer service is the front line and where most customers have

contact after the sale regardless the core business. Growth is the goal almost inherent in any

company. The greater the business the more and more people will be affected by the service

provided or product used. Consequently, the interaction with customers will increase, with that

sad, the service area is proportional to growth. However, how to efficiently make it as scalable

as possible?

This paper intends to show that it is possible to automate the prior categorization of questions

written in natural language by artificial neural networks.

ANT are algorithms based on human anatomy itself, where areas of knowledge merge

together, computing and human biology in order to reproduce one of the most complex organs

of our bodies, the brain.

The applications of a categorization by neural networks can range from asking a question to

the most appropriate human resources to organizing and cataloging a whole digital library.

(6)

Sumário

1.

INTRODUÇÃO ... 9

1.1. Motivação ... 10

1.2. Objetivos do Trabalho ... 11

1.3. Organização de Monografia ... 11

2.

DESCRIÇÃO DO PROBLEMA ... 13

2.1 Panorama de atuação da Empresa VTEX ... 13

2.2. Escalabilidade na categorização do atendimento ... 14

3.

METODOLOGIAS ... 17

3.1. Histórico sobre Redes Neurais Artificiais ... 17

3.2. Neurônio biológico ... 18

3.3. Neurônio artificial ... 19

3.4. Arquitetura das Redes Neurais Artificiais ... 20

3.5. Treinamento e aprendizagem das redes neurais ... 22

3.6. Mineração de textos ... 23

3.6.1. Fase do Pré-processamento ... 24

3.6.2. Fase do Processamento ... 25

3.6.2. Fase do Pós-processamento ... 25

4.

ARQUITETURA DO SISTEMA PROPOSTO ... 26

4.1. Construção da Base de Dados ... 26

4.1.1. Pré-processamento ... 29

4.1.2. Processamento ... 30

4.1.2. Pós-Processamento ... 31

5.

Resultados ... 32

6.

CONCLUSÕES e TRABALHOS FUTUROS ... 34

(7)

Índice de Figuras

Figura 1a: Módulos dentro da plataforma (Plataforma VTEX) ...10

Figura 1.1a: Número de acessos mensal à comunidade VTEX (Dados extraídos do Google Analitycs). ...11

Figura 2.2a: Total de chamados abertos mensalmente dividido por “squads”...15

Figura 2.2b: Quantidade mensal de chamados abertos na comunidade... 15

Figura 3.2a: Exemplo estrutural de um neurônio biológico... 18

Figura 3.2b: Modelo exemplo de uma sinapse...19

Figura 3.3a: Exemplo estrutural de um neurônio artificial... 20

Figura 3.3b: Exemplos de tipos de funções de ativação... 20

Figura 3.4a: Arquitetura básica de uma rede neural feed-forward de múltiplas camadas... 21

Figura 3.4b: Arquitetura de uma rede neural feed-forward... 22

Figura 3.4c: Arquitetura de uma rede neural recorrente feed-backward... 22

Figura 3.5a: Esquema de treinamento supervisionado... 23

Figura 4.1a: Pedaço da resposta da rota em formato JSON... 26

Figura 4.1b: Número de chamados por categoria da base na íntegra... 27

Figura 4.1c: Número de chamados por categoria da base reduzida... 29

Figura 4.1.2a: Esquema da rede neural artificial construída neste trabalho... 31

(8)

Índice de Tabelas

Tabela 2.2a: Categorização dos tickets manualmente pela ferramenta Zendesk... 16

Tabela 4.1a: Número amostral por categoria com a base na íntegra... 28

Tabela 4.1b: Número amostral por categoria com a base normalizada... 29

(9)

1. INTRODUÇÃO

Fóruns, comunidades, Q&A são palavras-chave quando tratamos de formas de conhecimento escalável. No ritmo vertiginoso da conexão, da globalização, a todo o momento observamos o surgimento de novas parcerias entre pessoas e instituições, e sentimos seus efeitos em nossas vidas, tanto no âmbito político, econômico e social, quanto no âmbito pessoal e profissional. Na área da disseminação do conhecimento, essas palavras surgem associadas à gestão, ao ensino, à pesquisa e à aprendizagem. Cada comunidade difere com base em seus objetivos, a razão pela qual a comunidade existe e o tipo de membros envolvidos na comunidade. As pessoas usam a internet como um verdadeiro balcão de perguntas e respostas. O exemplo mais óbvio é o Google, um site, que em seus primórdios utilizado como uma ferramenta de busca e hoje é visto como o detentor de todo o conhecimento. Uma verdadeira comunidade que dissemine o conhecimento necessita de participação humana para fomentar o conteúdo.

No entanto, precisamos de ferramentas que levem a possibilidade de engajamento e descobrimento destas comunidades existentes ao mundo. Pela internet as barreiras geográficas caem e acrescenta a palavra “online”, tornando-as quase compostas: comunidade online.

Uma boa definição do termo comunidade é: Pessoas, que interagem socialmente enquanto se esforçam para satisfazer suas próprias necessidades ou desempenhar papéis especiais, como liderar ou moderar. Um propósito compartilhado, como um interesse, necessidade, troca de informações ou serviço que forneça uma razão para a comunidade. Políticas, sob a forma de suposições tácitas, rituais, protocolos, regras e leis que orientam as interações das pessoas. Os sistemas de computador são utilizados para apoiar e mediar a interação social e facilitar um senso de união. (Tharon Howard, Design to Thrive, 2010)

Empresas principalmente de software estão adotando esse modelo por ser de baixo custo e escalável. De baixo custo porque é necessário de um investimento inicial de alguns funcionários locais que fiquem alimentando a comunidade. Sem falar no custo externo a plataforma que suportará esta comunidade online. Posteriormente o engajamento irá surgir e as perguntas e respostas virão de maneira orgânica. Com isso, tornará o trabalho de sanar dúvidas e de disseminação do conhecimento do software externo as próprias pessoas que consomem a comunidade.

Grandes players dentro do âmbito de fóruns com o objetivo de compartilhar o conhecimento técnico sem ser específico de uma empresa são o “answers.yahoo”, “stackoverflow” e “answers.com”. (Fonte: similarweb). Seus acessos mensais ficam entre 648mi, 300mi e 30mi respectivamente.

O enorme fluxo de dados que está sendo formado e arquivado em um nível global é quase inconcebível e se crescimento é incessante. Isso significa que há ainda mais potencial para extrair insights de negócios provenientes destas informações. Apesar de haver inúmeras maneiras e algoritimos diferentes de extrair essas informações como, algoritmos genéticos, Máquinas de Vetores de Suporte (SVMs, do Inglês Support Vector Machines), redes neurais entre outras.

A fim de organizar para extrair informações e agregar valor aos dados a categorização destas perguntas feitas em grandes comunidades é fundamental. Há uma extensa bibliografia sobre categorização automática de textos, tais como a categorização automatizada (ou classificação) de textos em categorias predefinidas tem testemunhado um interesse crescente nos últimos 10 anos, devido à maior disponibilidade de documentos em formato digital e à consequente necessidade de organizá-los. Na comunidade de pesquisa, a abordagem dominante deste problema baseia-se em técnicas de aprendizagem mecânica: um processo indutivo geral constrói automaticamente um classificador por meio da aprendizagem, a partir de um conjunto de documentos pré-classificados, das características das categorias. As vantagens desta abordagem sobre a de engenharia de conhecimento (consistindo na definição manual de um classificador por peritos de domínio) são uma eficácia muito boa, economias consideráveis em termos de mão-de-obra especializada e portabilidade direta para domínios diferentes. Esta pesquisa discute as principais abordagens à categorização de texto que se enquadram no paradigma de aprendizado de máquina. Discutiremos em detalhes questões relativas a três problemas diferentes, a saber, a representação de documentos, a construção de classificadores e a avaliação de classificadores. (SEBASTIANI , 2002) Ou como no aprendizado multilabel, cada instância no conjunto de treinamento está associada a um conjunto de rótulos ea tarefa é produzir um conjunto de rótulos cujo tamanho é desconhecido a priori para cada instância não vista. Neste artigo, este problema é abordado da maneira que um algoritmo de rede neural chamado BP-MLL, ou seja, backpropagation para multilabel aprendizagem, é proposto. É derivado do algoritmo de retropropagação popular através da utilização de uma nova função de erro que captura as

(10)

características da aprendizagem multilabel, isto é, os rótulos pertencentes a uma instância devem ser classificados mais elevados do que aqueles que não pertencem a essa instância. As aplicações a dois problemas de aprendizagem de multilabel do mundo real, isto é, a genómica funcional ea categorização de texto, mostram que o desempenho de BP-MLL é superior ao de alguns algoritmos de aprendizagem de multilabel bem estabelecidos. (ZHANG-ZHOU, 2006)

Neste projeto desenvolveu-se uma categorização textual como solução alternativa a perda desta informação ou categorização manual utilizando o algoritmo de redes neurais. O objetivo do projeto é a categorização automática das perguntas e relação a temas dentro de uma empresa. Com isso elas poderão ser direcionadas aos melhores recursos humanos para responde-las devidamente, extrair relatórios sobre os módulos que tiveram mais perguntas e bolar estratégias para o melhor atendimento da sua cominidade. A aplicação deste projeto será em uma empresa que presta o serviço de plataforma de e-commerce VTEX. Explanarei mais sobre a empresa no capitulo “Descrição do Problema”.

A plataforma é dividida em 14 módulos, cada um deles um possível tema a ser abordado dentro da comunidade.

Figura 1a: Módulos dentro da plataforma (Plataforma VTEX).

Junto com a solução da rede neural o projeto segmentará cada pergunta colocando em um cluster referente ao módulo da plataforma.

A metodologia foi aplicada dentro da ferramenta WEKA. WEKA é uma ferramenta com uma coleção de algoritmos de aprendizagem de máquina para tarefas de mineração de dados. Os algoritmos podem ser aplicados diretamente a um conjunto de dados ou chamados de seu próprio código Java. O WEKA pode ser utilizado para pré-processamento de dados, classificação, regressão, agrupamento, regras de associação e visualização. Também é adequado para o desenvolvimento de novos esquemas de aprendizado de máquinas. (Machine Learning Group at the University of Waikato)

1.1. Motivação

A motivação deste trabalho foi agilizar e promover uma inteligência embutida na classificação de perguntas. Existem hoje “triggers” ou macros as quais são ativadas por determinadas palavras. Como

(11)

por exemplo, classificar uma pergunta sobre certificados digitais. A macro ou a “trigger” está programada para “quando aparecer a palavra certificado, classifique esta pergunta como sendo sobre certificados”. Esta maneira não apresenta nenhuma nteligencia ou aprendizado de maquina. Porque caso o usuário escrever a seguinte pergunta: “O SSL da minha página de checkout expirou, como faço para tornar minha página segura novamente? ”. Essa pergunta é sobre certificados digitais no entando não foi classificada corretamente por não conter a palavra “certificado” na frase.

Na nossa comunidade atual temos uma crescente popularidade apresentada no gráfico abaixo: O número de acessos a comunidade VTEX (http://lab.vtex.com/community) mensalmente.

Figura 1.1a: Número de acessos mensal à comunidade VTEX (Dados extraídos do Google Analitycs).

Esse é o tamanho da oportunidade que temos de extrair informações valiosas sobre o produto. Quantas pessoas possuem as mesmas dúvidas sobre o mesmo tema? Agora se nos questionarmos o porquê destas dúvidas estarem sendo geradas é o grande valor para a empresa. Porque ao se questionar a origem das dúvidas novos questionamentos viram, “minha plataforma não está intuitiva? ”, “meu sistema possui bugs? ”, “meus usuários não entendem os logs de erro? ”, etc.

1.2. Objetivos do Trabalho

O objeto deste trabalho é utilizar técnicas de aprendizagem de máquina e mineração de textos para automatizar a classificação de perguntas feitas em uma comunidade online de acordo com os módulos da plataforma.

Os objetivos específicos deste trabalho consistem em:

• Estudar o método de Redes Neurais Artificiais (RNA) para categorização de textos;

• Propor e realizar um método em Redes Neurais Artificiais que consiga fazer a categorização de textos.

• Utilizar o mesmo método para predizer quais categorias um novo texto não apresentado a rede se adequa.

• Realizar um estudo de caso e explicitar os resultados do método proposto no trabalho.

1.3. Organização de Monografia

Este trabalho acadêmico está disposto, além do capitulo de introdução, em quatro capítulos adicionais, descritos a seguir:

O capítulo 2 descreve, resumidamente, o serviço prestado pela VTEX e sua organização modular, como a área de suporte é estruturada, a aplicação da ferramenta Zendesk e a ferramenta da comunidade.

(12)

O capítulo 3 apresenta um breve histórico sobre o surgimento e a ascensão do uso de Redes Neurais Artificias. Serão apresentados conceitos, metodologias e características gerais sobre Redes Neurais Artificiais e Mineração de Texto.

O capítulo 4 aborda de forma detalhada a solução sistêmica para a classificação de texto com o uso de Redes Neurais Artificiais.

O capitulo 5 apresenta os resultados obtidos pelo sistema proposto de classificação de texto com o uso de Rede Neural Artificial.

Finalmente, o capítulo 6 descreve as conclusões do trabalho e identifica possíveis trabalhos futuros.

(13)

2. DESCRIÇÃO DO PROBLEMA

Para efeito do entendimento do problema, conforme mencionado no capítulo introdutório explanarei um pouco mais sobre a empresa VTEX, campo atuante, estrutura do atendimento e os desafios.

2.1 Panorama de atuação da Empresa VTEX

A empresa VTEX, fundada em 1999, tem como base do seu negócio o fornecimento de uma plataforma de e-commerce SaaS (Software as a servisse). Sua infraestrutura está toda na “nuvem”, está entre os grandes clientes da Amazon por utilizar o AWS (Amazon Web Services). Sua infraestrutura Multitenant traz inúmeras vantagens competitivas:

• Único código-fonte com mesmas funcionalidades para todos os clientes. A evolução do código é sempre a mesma para todos, não havendo possibilidade de um código estar em uma versão antiga.

• Quando uma correção é realizada, ela é replicada a todos os outros. Portanto, além da equipe VTEX os usuários são agentes de homologação, tornando o processo de correção mais rápido e seguro

• Não há custo adicional para desenvolvimento de novas funcionalidades. São centenas de novas atualizações realizadas mensalmente, o que garante a evolução contínua da ferramenta. • A infraestrutura também é a mesma para todos. Toda ela está pensada para altos volumes de acesso e rápida escala. São centenas de milhares de acessos todo mês, garantindo velocidade e SLA.

Além de ser modularizada na questão de estrutura de sistemas também é modularizada no âmbito organizacional. Cada módulo da plataforma, como mostrado na figura 1, possui um grupo auto gerenciável que é o dono daquele módulo. Todos os módulos conversam sistematicamente através de APIs (Application Programming Interface) privadas.

Os módulos da plataforma são os seguintes:

• License Manager - O License Manager é o módulo da VTEX que permite habilitar criar usuários que poderão entrar em seu ambiente, delimitar acessos e configurar hosts do ambiente. • E-commerce – O “E-commerce” é o módulo mais robusto que cuida da criação de árvores de

categorias, marcas, produtos, SKUs, inserção de preços, além de outras atribuições mais avançadas.

• Master Data - O módulo “Master Data” permite a criação de aplicações através de formulários e listas altamente customizáveis com base em dados inter-relacionados. Podemos dizer também que ele é um “sistema de fazer sistemas”.

• PCI Gateway - O PCI Gateway é o módulo responsável por intermediar e gerenciar todas as transações e pagamentos entre a loja VTEX, operadoras financeiras e os clientes finais. Nele, você faz consultas como status das transações, estornos, cancelamentos, capturas e também configurações como condições para as formas de pagamento.

• Logistics - O módulo Logistics é responsável por todo o controle e monitoramento de disponibilidade dos itens em estoque, além da estrutura para entregar os pedidos, que atende às diferentes necessidades de acordo com a lógica de entrega da loja.

Dentro do Logistics encontramos as abas Dashboard, Valores de Frete, Simulação de Frete, Gerenciamento de itens em estoque, Configurações Gerais e Feriados, cada um com sua respectiva função dentro desse segmento.

(14)

• Channel – Este módulo é o responsável pela criação das políticas comercias.

• Pricing - O módulo “pricing” é a parte do ambiente onde são configuradas taxas, descontos, cupons promocionais e outras promoções que atuarão na loja online. De acordo com a necessidade do lojista, cada promoção, cupom ou taxa cadastrada pode ser agendada, ativada ou inativada em qualquer data.

• OMS – O módulo “OMS” é onde o lojista consegue visualizar e administrar os pedidos realizados.

• Message Center – Este módulo é responsável pela realização do layout de todos os e-mails transacionais enviados pela plataforma.

• Portal - O módulo portal é o ambiente onde devem ser alterados os templates e configurações de front-end do checkout, como tamanho da fonte, esconder ou exibir campos, entre outras coisas que o lojista deseje modificar.

• CMS - O módulo “CMS” é responsável pelo gerenciamento de conteúdo e aparência da loja. Nele, é possível configurar desde a personalização do layout a ser aplicado no ambiente virtual, as páginas e subdomínios que constarão no site, as coleções de produtos que serão adicionadas nas políticas comerciais, até o redirecionamento de URLs internas da loja. • Bridge - O módulo “Bridge” fica responsável pela configuração de Marketplaces e a gestão de

seus pedidos, estoques, SKUs e preços tudo reverente aos produtos do lojista vendidos fora da sua loja principal.

• Suggestion - O módulo “suggestion” é uma funcionalidade útil aos Marketplaces que hospedaram seus ambientes virtuais na plataforma VTEX. É nele que o responsável deve gerenciar os SKUs que os sellers enviam para o seu catálogo, aprovando aqueles que ele pode e quer vender, e rejeitando outros.

• Network – Este módulo se encarrega de fazer a ponte entre sellers e marketplaces para que possam realizar novos negócios.

2.2. Escalabilidade na categorização do atendimento

A área de atendimento lida com todos os módulos em todos os níveis de conhecimento. Para entrar em contato com a equipe de suporte a VTEX contrata a ferramenta Zendesk. Esta ferramenta está configurada para atribuirmos a cada chamado o teor do problema tratado, para assim, conseguirmos extrair relatórios com os números de chamados abertos por tema e módulo. Com essa informação podemos agregar e sugerir melhorias para o produto como mencionado na sessão “Motivação” deste trabalho.

Como na arquitetura sistêmica da plataforma a equipe de atendimento é igualmente dividida em pequenos grupos auto gerenciáveis, com no máximo 5 pessoas, chamados de “Squads”. Cada grupo cuida de uma carteira de clientes, no máximo 20, clientes estes com uma posição mais estratégica para a empresa. Este modelo ainda não é escalável, porque quanto mais cliente a plataforma tiver maior terá que ser a equipe de atendimento. O gráfico abaixo mostra a quantidade de chamados (tickets) abertos mensalmente divididos pelos “squads”.

(15)

Figura 2.2a: Total de chamados abertos mensalmente dividido por “squads”.

Hoje o time conta com a colaboração de mais ou menos 45 pessoas para atender mais de 1500 clientes. Logicamente isso não é possível, por isso a segmentação de alguns clientes para serem atendidos diretamente pela VTEX. Os demais clientes que não são atendidos diretamente pela VTEX são encaminhados a postarem suas dúvidas e problemas na comunidade. Para podermos pensar em escalar este atendimento a proposta é começar pela categorização automática dos tipos de chamado na comunidade.

Figura 2.2b: Quantidade mensal de chamados abertos na comunidade.

A comunidade atualmente conta com 4082 chamados abertos no ano de 2016, são em média 12 chamados abertos por dia que não possuímos o dado contábil do teor que é falado. Queremos fomentar cada vez mais a comunidade tendo em vista 50 chamados abertos por dia em 2017.

(16)

No Zendesk fazemos essa categorização manualmente chamado por chamado, como o atendimento é personalizado isso é possível. Já na comunidade não teremos controle do que está sendo postado e com isso perdemos informações muito relevantes sobre os módulos dos produto.

A tabela abaixo mostra a categorização manual feita pelos squads do time de atendimento. Conseguimos extrair uma informação muito valiosa com a simples categorização do teor/módulo do chamado.

(17)

3. METODOLOGIAS

Este capítulo expõe de forma resumida os fundamentos de redes neurais artificiais (RNAs). O cérebro humano possui uma estrutura muito complexa de processamento de informações que trabalha de forma não-linear e paralela. Estas características o diferenciam de computadores, que processam informações de forma muito rápida e precisa, mas que não possuem a mesma capacidade do cérebro humano em diversas tarefas, tais como reconhecimento de padrões, percepção e controle motor (Haykin, 2001). O aprendizado indutivo pode ser dividido em supervisionado e não supervisionado. No aprendizado supervisionado o conhecimento é apresentado através de conjuntos de exemplos na forma de uma entrada e saída desejada (HAYKIN, 1999).

Desta forma, a teoria de Redes Neurais Artificiais (RNAs) foi desenvolvida tendo como inspiração o cérebro humano que é constituído de unidades de processamento (neurônios), organizadas em camadas interligadas através de conexões (sinapses). Assim, uma RNA é um sistema computacional baseado em modelos matemáticos com processador paralelamente distribuído, formado por unidades de processamentos simples (denominadas neurônios artificiais) que são capazes de armazenar informação experimental e torná-lo disponível para sua utilização (Haykin, 2001). Pelas suas raízes, as RNAs têm características semelhantes ao cérebro humano:

• Generalização de um conjunto de entradas, extraindo um padrão mesmo havendo dados ruidosos;

• Aprendizado a partir da apresentação de sucessivos padrões; • Habilidade para associar padrões distintos.

3.1. Histórico sobre Redes Neurais Artificiais

Tudo começou em 1943 com Warren McCulloch E Walter Pitts quando introduziram modelos de redes neurológicas recriadas em computadores. Mostrou que redes simples são capazes de calcular quase qualquer lógica ou função aritmética.

1949: Donald O. Hebb formulou o modelo de aprendizado Clássico Hebbian Learning Rule. A

regra implica que a conexão entre dois neurônios é reforçada quando ambos estão ativos ao mesmo tempo.

1951: Marvin Minsky Desenvolveu o neurocomputador Snark, que foi capaz de ajustar

automaticamente seus pesos.

1957-1958: Frank Rosenblatt e Charles Wightman desenvolveram o primeiro Neurocomputador

de sucesso, a Marca I perceptron, que foi capaz de reconhecer números simples por meio de um sensor de imagem de 20 × 20 pixels.

1960: Bernard Widrow e Marcian E. Hoff apresentou o ADALINE (ADAptive LInear NEuron), uma

solução rápida e Sistema de aprendizagem adaptativo, primeiro uso neural. A regra era se a diferença entre a saída real e a correta solução era grande, a conexão dos pesos mudam em etapas - quanto menores forem os passos, mais próximo o alvo era. Uma desvantagem desta regra é que com uma aplicação incorreta leva a rede a infinitesimais pequenos passos perto da solução.

1969: Marvin Minsky e Seymour Papert publicou uma análise matemática precisa de redes

perceptron para mostrar que são incapazes de solucionar problemas simples tipo “ou-exclusivo”.

1976-1980: Stephen Grossberg dedicou-se ao problema de construir uma rede neural capaz de

aprender sem destruir associações já aprendidas.

1982: Teuvo Kohonen desenvolveu mapas de recursos auto-organizados – também Conhecidos

como mapas Kohonen.

1983: Introdução de Fukushima, Miyake e Ito o modelo neural do Neocognitron que poderia

(18)

1985: John Hopfield publicou um artigo descrevendo uma maneira de encontrar Soluções para

o Vendedor Viajante Problema usando redes Hopfield.

1986: O uso pela comunidade do backpropagation da aprendizagem do erro como uma

generalização de a regra delta foi desenvolvida separadamente.

3.2. Neurônio biológico

O cérebro humano pode ser compreendido como o órgão mais importante funcionando como uma unidade central de processamento de informações. Ele é composto por uma rede de neurônios, são os constituintes estruturais do cérebro humano (Rámon e Cajál, 1911). Essas células são as unidades primordiais do sistema nervoso, possuem a responsabilidade de transmitir impulsos elétricos recebidos de outros neurônios ou do meio externo para outras células com uma estrutura parecida, sob determinadas condições. São processadores biológicos, que operam massivamente em paralelo com a capacidade de adquirir e memorizar conhecimento experimental.

Os neurônios são compostos por três partes principais, conforme indica a figura abaixo:

Figura 3.2a: Exemplo estrutural de um neurônio biológico

Corpo celular: contém o núcleo e outras estruturas da célula, é a parte mais volumosa da célula nervosa. É onde as informações recebidas são processadas, podendo disparar um impulso elétrico através de seu axônio para outro neurônio ou para os músculos. Nele reside a maioria das estruturas citoplasmáticas;

Axônio: é um prolongamento fino do neurônio geralmente ramificados, sendo responsável por conduzir os impulsos processados no corpo celular para outros neurônios ou células sensoriais, musculares ou glandulares.

Dendritos: são prolongamentos do corpo celular, com estrutura ramificada, responsável por receber informações na forma de impulsos elétricos de outros neurônios ou de órgãos sensoriais;

Estima-se que o cérebro humano tenha 10 bilhões de neurônios e que cada um possua de mil a 10 mil conexões. Isso nos leva a acreditar que em nossos cérebros possuímos 60 trilhões de conexões e com isso um quatrilão de sinapses.

As sinapses as ligações onde as terminações dos axônios são encontram os dendritos de outra, célula nervosa. Existe um pequeno espaço entre as células, não há um contato físico real entre uma célula e outra, este espaço é chamado de fenda sináptica. (Shepherd, 1990).

(19)

Figura 3.2b: Modelo exemplo de uma sinapse

3.3. Neurônio artificial

Com o passar dos anos, o neurônio artificial foi melhorado e baseia-se em modelos simplificados dos neurônios biológicos, portanto, é uma estrutura lógico-matemática que simula o comportamento e funções do biológico.

Os neurônios artificiais, buscam imitar as suas características funcionais e constituem as unidades de processamento das Redes Neurais Artificiais. Um protótipo matemático foi criado por McCulloch e Pitts em 1943 para simbolizar o neurônio biológico que fosse apto a representar o paralelismo e a intensa conectividade das rede neurais biológicas.

O neurônio artificial é composto por: • Sinais de entrada 𝑥𝑗 (𝑗 = 1, 2, ... , m);

• Pesos sinápticos, 𝑤𝑘𝑗 (𝑗 = 1, 2, ... , m) ponderam os sinais de entrada e atribuem o grau de importância de cada entrada para um dado neurônio;

• Limiar de ativação (bias), {𝑏&}, ajusta o potencial de ativação;

• Combinador linear, {Σ}, calcula o valor do potencial de ativação netj;

• Função de ativação, {𝜑(. )}, (também é amplamente denotado como F(𝑛𝑒𝑡.)) dita a amplitude

do sinal de saída do neurônio em um intervalo de valores ajustados.

• Sinal de saída, {𝑦&}, (também possui a notação {𝑆.}) valor produzido pelo neurônio, em função

(20)

Figura 3.3a: Exemplo estrutural de um neurônio artificial.

O neurônio é disparado quando a soma dos impulsos 𝜑 . 𝑜𝑢 F(𝑛𝑒𝑡.) atingem ou ultrapassa o

limite de ativação e esta atividade é exercida pela função de ativação. O primeiro modelo proposto por McCulloch e Pitts em 1943, só possuía saída binária. No decorre dos anos, outros modelos foram desenvolvidos utilizando diferentes funções de ativação, possibilitando saídas em intervalos numéricos entre [0,1] ou [-1,1], o que resolveu o problema da não-linearidade. Abaixo são alguns tipos de funções de ativação:

Figura 3.3b: Exemplos de tipos de funções de ativação.

3.4. Arquitetura das Redes Neurais Artificiais

A arquitetura das redes neurais é determinada pela disposição dos neurônios nas camadas e o padrão de conexões sinápticas entre eles. De maneira geral, a arquitetura de uma rede neural artificial é constituída de três partes, denominadas camadas. São elas:

• Camada de entrada: esta camada é responsável pelo recebimento do conjunto 𝑥𝑗 (𝑗 = 1, 2, ... , m); dos sinais de entrada provenientes da medição do experimento. É uma boa prática

(21)

normalizar as variáveis numéricas, normalmente em binário, a fim de facilitar o aprendizado da rede.

• Camada escondida: é uma camada construída por neurônios responsável pela obtenção dos padrões de entrada. É onde ocorre o processamento interno da rede.

• Camada de saída: Também é feita de neurônios artificiais que recebem o resultado do processamento das camadas de escondidas anteriores e resulta em dados finais da rede.

Figura 3.4a: Arquitetura básica de uma rede neural feed-forward de múltiplas camadas.

As arquiteturas de rede mais recorrentes são: redes feed-forward de camada simples, redes feedforward de múltiplas camadas e redes recorrentes “feed-backward” (Haykin, 2001).

Nas redes feed-forward o fluxo de dados se dá em uma única direção, desde a ingressão até a saída da rede. Em redes feed-forward de estrato simples há uma única camada de neurônios processadores, que é a própria estrato de saída. Neste tipo de rede a quantidade de saídas coincide com o número de entradas da rede e é normalmente utilizada para problemas linearmente separáveis. Redes Perceptron são um exemplo de redes que possuem leste tipo de arquitetura.

(22)

Figura 3.4b: Arquitetura de uma rede neural feed-forward.

A rede feed-forward de múltiplas camadas é arquitetada pela categoria de entrada, uma ou mais camadas de neurônios escondidas e a categoria de saída. Normalmente, em redes feed-forward de múltiplas camadas, a quantidade de neurônios da primeira camada escondida difere da quantidade de sinais de ingressão. Além disso, os fatores que determinam a quantidade totalidade de neurônios e o número de camadas escondidas da rede referem-se à natureza e dificuldade do problema em questão.

As redes feed-forward de múltiplas camadas solucionam a restrição das redes com classe única de representar somente funções linearmente separáveis. Porém, só oferecem essa vantagem quando a função de ativação (Fnet) dos seus neurônios for não-linear. Caso isso não ocorra, as redes feed-forward de múltiplas camadas se tornam equivalentes a rede de camada única. Rede ilustrada na imagem 3.4a.

A rede recorrente feed-backward apresenta pelo menos uma conexão entre os neurônios da mesma classe e/ou com neurônios das camadas anteriores chamados de laço de realimentação. Em consequência destes laços de realimentação, as redes recorrentes são capazes de se auto processar, por isso, tornam-se adequadas quando se trata de sistemas com janelas que variam no tempo (Silva et al., 2010).

Figura 3.4c: Arquitetura de uma rede neural recorrente feed-backward.

3.5. Treinamento e aprendizagem das redes neurais

O método de treino que a rede é submetida está relacionado diretamente à sua aprendizagem. Este método de treinamento implica em uma sucessão de eventos (Haykin, 2001):

(23)

1. A rede neural é estimulada pelos dados de entrada adquiridos em um ambiente externo; 2. Ativada pelos estímulos a rede neural sofre modificações em seus parâmetros livres;

3. Graças às modificações estruturais internas, a rede responde de um novo modo ao ambiente.

Através da submissão à entrada da rede, de padrões representativos do comportamento do sistema em questão, as RNAs têm a capacidade de aprender sobre o sistema físico no qual se deseja inferir. Estes padrões consistem em amostras que caracterizam adequadamente o procedimento do método examinado e são denominadas de conjunto de treinamento.

Assim que a rede aprender o relacionamento entre o conjunto de treno e o conjunto de saídas desejadas, a mesma estará preparada para generalizar soluções, ou seja, será apta em gerar uma saída esperada, a partir de um padrão de entrada que nunca tenha sido apresentada a rede.

O treino de uma RNA é um processo que por meio de ajustes sucessivos dos pesos sinápticos dos seus neurônios, uma vez que também do bias as respostas de saída vão se aprocimando cada vez mais das respostas esperadas quando é inserido dados na camada de entrada.

No conjunto de dados reservado para o treinamento pega-se de forma aleatória e reserva-se cerca de 60% a 90% das amostras (conjunto de treinamento) para o processo de aprendizado), e o restante, para o conjunto de teste que avaliará a aptidão de valores nunca antes vistos resulte em saídas corretas com uma boa eficácia.

O processo de treinamento, denomina-se época ou ciclo de treinamento a execução unitária completa de ajustes dos pesos sinápticos dos neurônios da rede, abrangendo todas as amostras do conjunto de treinamento. Um processo de treinamento normalmente possui centenas ou milhares de épocas ou ciclos de treinamento.

Figura 3.5a: Esquema de treinamento supervisionado.

3.6. Mineração de textos

A mineração de dados elevou o nível de como interagirmos com os computadores. Com isso conseguimos interagir em linguagem natural com o auxílio dos algoritmos já citados nos capítulos anteriores. O usuário poderá interagir com uma coletânea de valores textuais semiestruturados ou até não estruturados (Feldman e Sanger, 2007).

Aplicações que são largamente aplicadas são:

• Clusterização

• Categorização de documentos

O conceito dos algoritmos em aplicações para minerações de texto é transforma-lo em uma forma baseado no número de aparições dos termos no documento e em seguida aplicar técnicas baseadas em modelos estatísticos para a extração de palavras-chaves, classificações e até resumos. A maior dificuldade deste método são os formatos de strings não estruturados, essa é a principal causa, da dificuldade de compreensão dos computadores.

O que difere a mineração de texto para a de dados é a não estruturação dos dados. Na mineração de dados a adequabilidade de base é muito maior e requer menos preparação para ser imputados em alguma ferramenta de mineração.

(24)

• A fase do pré-processamento • A fase do processamento • A fase do pós-processamento

O fluxo é composto por essas três partes, em primeiro lugar estão os documentos textuais que são pré-processados por técnicas como tokenização, stemming, stopwords, etc, que explicarei com maiores detalhes no subcapitulo posterior. Após esta primeira fase é feito o processamento, onde são utilizados os diferentes algoritimos dependendo da motivação por trás do trabalho, como clusterização, categorização, sumarização, etc. Por fim, vem a fase do pós-processamento que são a validação dos resultados através das métricas definidas (Feldman e Sanger, 2007).

3.6.1. Fase do Pré-processamento

Esta é uma das etapas de maior importância na mineração de texto. É onde ocorre o preparação, limpeza e adequação dos documentos.

Tokenização:

Este processo desconsidera a formatação dos documentos de texto transformando-os em massas de termos relevantes para a mineração. Esta abordagem está frequentemente associada a normalização de letras maiúsculas e minúsculas trazendo-as todas para um único tipo, normalmente minúsculas. Não deixando de lado a limpeza textual dos documentos como a remoção das pontuações, dígitos, caracteres especiais dentre outros.

Stopwords:

Este processo é a remoção de palavras usadas muito frequentemente na língua do documento que não apresentarão nenhuma ou quase nenhuma relevância para o algoritmo utilizado. O objetivo principal deste processso é reduzir o tamanho de sinais de entrada (vetor que representará o documento). Essas palavras são:

• Artigos • Nomes • Verbos corriqueiros • Conjunções • Adjetivos • Advérbios • Preposições

Essa lista de palavras é denominada de stop-list. Lembrando que para cada idioma deve-se ter uma stop-list diferente.

Stemming:

Este processo visa deixar nos vetores de representação textual os radicais das palavras relevantes. Este processo automático ocorre através de algoritmos que retiram os prefixos, sufixos e, dependendo da língua, acentos das palavras sem alterar o poder de suas relevâncias. Com a finalidade de reduzir complexidades desnecessárias para os algoritmos de processamento.

(25)

3.6.2. Fase do Processamento

Nesta fase ocorre a utilização dos algoritmos e técnicas de mineração de texto visando atingir objetivos específicos já falados anteriormente.

3.6.2. Fase do Pós-processamento

O intuito desta fase se dá para a reflexão e validação dos resultados obtidos a partir das fases anteriores.

(26)

4. ARQUITETURA DO SISTEMA PROPOSTO

Neste capítulo será apresentada como foi realizado o modelo de rede neural utilizado neste trabalho.

4.1. Construção da Base de Dados

Como já falado anteriormente a utilização da ferramenta Zendesk e nossa categorização manual foram fundamentais para a realização desta base e consequentemente deste trabalho.

A ferramenta Zendesk conta com APIs REST para facilitar a extração dos dados da plataforma. A rota utilizada para a extração de dados através do método [GET] foi:

https://DOMÍNIO.zendesk.com/api/v2/users/IDUSUARIO/tickets/assigned.json?page=1&per_page=100 Esta rota se encontra publicamente disponível no site do Zendesk.

Esta rota retorna em formato JSON cem chamados por página. A imagem abaixo representa um exemplo de uma parte do retorno da rota utilizada:

Figura 4.1a: Pedaço da resposta da rota em formato JSON.

Dentro deste pedaço de JSON o que realmente interessa é o conteúdo do chamado dentro do campo “description:” e a classificação do campo “value:” previamente realizada dentro do vetor “custom_fields” primeira posição.

Após a obtenção destes dados foi utilizado um conversor de JSON para csv. Com o arquivo em formato amigável para o Excel, elaborei uma macro que limpasse a base recheada de informações inúteis para este trabalho, deixando somente os dois campos citados acima.

A base inicialmente criada para este trabalho estava com a seguinte disposição de número de chamados por categoria:

(27)
(28)

NOME DA CATEGORIA

NÚMERO DE CHAMADOS

CATALOG

162

CERTIFICADO

14

CHANNEL

244

CHECKOUT

43

CMS

60

DOCUMENTACAO

9

FINANCEIRO

8

FINANCEIRO_COBRANCA

1

FINANCEIRO_CONTASARECEBER

1

FRONT_END

56

GIFT_LIST

3

GIFTCARD

2

INFRA

50

INTEGRATION

98

LICENSE_MANAGER

17

LOGISTICS

66

MASTER_DATA

47

MESSAGE_CENTER

31

NAO_VTEX

120

OMS

154

OUVIDORIA

1

PCI_GATEWAY

112

PRICING

63

RECURRENCE

1

SUGGESTION

6

VTEX_ID

10

XML

29

ZENDESK

7

(29)

Esta base não está adequada para servir de treinamento em uma rede neural. Ela possui parâmetros com diversos números amostrais. Isso deve ser evitado ao máximo pois pode tornar a rede neural artificial tendenciosa. Por esse motivo várias categorias foram cortadas da base assim como um nivelamento no número de amostras foi imposto.

Figura 4.1c: Número de chamados por categoria da base reduzida.

Foram escolhidas 6 categorias baseando-se no número de amostras de cada uma, sempre buscando ter o maior número de amostras possível dada a base em questão. Quando o número de amostras foi nivelado pelo menor ficaram 91 chamados para cada categoria.

NOME DA CATEGORIA NÚMERO DE CHAMADOS

CATALOG 91 CHANNEL 91 INTEGRATION 91 NAO_VTEX 91 OMS 91 PCI_GATEWAY 91

Tabela 4.1b: Número amostral por categoria com a base normalizada.

4.1.1. Pré-processamento

Para a confecção deste trabalho foi utilizado o software WEKA versão 3.8.0 como foi explicado no capitulo de introdução.

Como processos de pré-processamento específicos para esta monografia foi utilizado o filtro chamado NominalToString para alterar computacionalmente as classes dos vetores que contém todo o conteúdo de um chamado em um único vetor.

(30)

Posteriormente, foi utilizado outro filtro chamado StringToWordVector primordialmente ele desconstrói o vetor contendo uma string com todo o conteúdo de um único chamado em pequenos vetores contendo neles uma única palavra.

Junto com este filtro são aplicados os processos de pré-processamento de texto:

• Stemmer Snowball – Stemmer muito usado para a língua portuguesa. • StopWords – Lista com as palavras usadas encontra-se no Apêndice A • Tokenização

Após todos os processamentos foram gerados 4721 sinais de entrada para a rede neural artificial. Este número é computacionalmente muito difícil de criar um modelo em redes neurais por causa do poder de processamento versus o tempo de processamento. Por esse motivo foi utilizado o filtro InfoGainAttributeEval. Este filtro seleciona os principais atributos, no caso palavras, que possuem uma maior relevância perante um atributo de sua escolha, no caso, os valores das categorias dos chamados para o processo de classificação. As 4721 palavras foram reduzidas a 47, as que apresentaram maior valor de relevância perante a classificação.

4.1.2. Processamento

O algoritmo de aprendizagem utilizado na configuração da rede neural artificial empregada foi o Multilayer Perceptron com Backpropagation e sua função de ativação tangente hiperbólica sigmoidal.

A rede foi criada com os 47 sinais de entrada como dito na seção anterior. Buscando um melhor desempenho a rede utilizou a equação do próprio WEKA para calcular o número de neurônios na camada escondida.

𝑎 =

𝐴𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑠 + 𝐶𝑙𝑎𝑠𝑠𝑒𝑠

2

Onde:

Atributos: Quantidade de sinais de entrada. Classes: Quantidade de sinais de saída.

(31)

Figura 4.1.2a: Esquema da rede neural artificial construída neste trabalho.

O número de épocas adotado para interromper o processo de ajustes de pesos e limiares de ativação foi igual a 2000.

Da base de dados foram utilizados:

• 20% para treino (109 observações); • 80% para teste (437 observações).

O parâmetro learning rate, que representa a taxa de aprendizado da rede construída, foi igual a 0,4. Os melhores resultados foram obtidos com o parâmetro momentum, que representa o termo de momento, também igual a 0,4.

A quantidade de neurônios na camada seguiu a equação exposta acima:

𝑎 =

47 + 6

2

= 26

4.1.2. Pós-Processamento

A etapa de pós-processamento será apresentada no capitulo a seguir por se fundirem em questão de conteúdo deste trabalho e a definição da própria etapa.

(32)

5. RESULTADOS

A rede foi construída com o intuito de classificar corretamente texto antes nunca vistos e pelo seu conteúdo identificar qual categoria o texto pertence. Foram 47 sinais de entrada para 6 sinais de saída onde somente 109 textos foram apresentados a rede para o seu aprendizado.

A seguir se encontra o resumo de performance gerada a partir do próprio WEKA:

=== Summary ===

Correctly Classified Instances 248 56.7506 %

Incorrectly Classified Instances 189 43.2494 % Kappa statistic 0.4817

Mean absolute error 0.1712 Root mean squared error 0.3306 Relative absolute error 61.5465 % Root relative squared error 88.353 % Total Number of Instances 437

=== Detailed Accuracy By Class ===

TP Rate FP Rate Precision Recall F-Measure MCC ROC Area PRC Area Class 0,566 0,083 0,589 0,566 0,577 0,490 0,856 0,571 catalog 0,493 0,055 0,643 0,493 0,558 0,489 0,779 0,582 channel 0,560 0,050 0,700 0,560 0,622 0,559 0,852 0,587 pci_gateway 0,453 0,055 0,630 0,453 0,527 0,456 0,793 0,516 integration 0,657 0,116 0,506 0,657 0,571 0,488 0,824 0,588 oms 0,690 0,158 0,458 0,690 0,551 0,456 0,797 0,541 nao_vtex Weighted Avg. 0,568 0,085 0,590 0,568 0,568 0,490 0,817 0,564 === Confusion Matrix ===

A

B

C

D

E

F

<--

CLASSIFIED

AS

A

43

5

0

3

3

22 |

a

=

catalog

B

14

36

3

6

6

8

|

b

=

channel

C

1

0

42

3

18

11 |

c

=

pci_gateway

D

9

9

2

34

9

12 |

d

=

integration

E

2

2

10

4

44

5

|

e

=

oms

F

4

4

3

4

7

49 |

f

=

nao_vtex

(33)

Mesmo com uma base tão pequena e uma amostragem ainda menor para o treinamento da rede a assertividade da rede foi de 56.7506%.

Esse número é obtido a partir da matriz confusão:

𝐴𝑐𝑢𝑟á𝑐𝑖𝑎 =

𝑥

DD

𝑥

D.

Onde:

𝑥

D.

: São todos os elementos contidos na matriz;

𝑥

DD

:

São todos os elementos que estão no diagonal principal da matriz.

A imagem a seguir mostra graficamente a matriz confusão, onde os pontos entre as linhas vermelhas são equivalentes aos acertos gerados pela rede.

(34)

6. CONCLUSÕES E TRABALHOS FUTUROS

A categorização textual é um tema amplamente explorado por se tratar de uma linguagem natural as pessoas e não aos computadores. Sua virtude também é seu desafio, como os algoritmos são primordialmente eletrônicos eles precisam falar a mesma linguagem da computação.

Cada vez mais com o avanço tecnológico e com a profética lei de Moore as barreiras vão ficando menores no quesito de possibilidades.

Esta monografia explicitou o que as redes neurais são capazes de aprender e realizar em tão pouco tempo e insumo de treinamento. Apesar do resultado da acurácia tenha sido baixo considero um bom resultado devido ambiente em que foi efetuado.

Com a conclusão deste trabalho apresentam-se nova oportunidades para dar continuidade a comunidade de estudiosos sobre redes neurais artificiais e o aprimoramento da categorização de automática de textos. A quem puder interessar este tema não tem limites para trabalho futuros:

• Categorização de e-books, artigos acadêmicos e monografias.

• Classificação de uma pergunta com “output” sendo uma resposta em linguagem natural. • Categorizações em geral, porém com outros tipos de algoritmos.

(35)

Referências Bibliográficas

1. DE MELLO JUNIOR, H. D. Multi Layer Perceptron – Previsão de Séries Temporais. Rio de Janeiro: Depto. de Engenharia Elétrica – PUC-Rio, 2015. Notas de Aula.

2. CHUNG, F. L.; DUAN, J. On Multistage Fuzzy Neural Network Modeling. IEEE Transactions on Fuzzy Systems, The Hong Kong Polytechnic University, 2000.

3. BEZERRA, I. S. O. Métodos Estatísticos de Apoio à Decisão. Rio de Janeiro: Depto. de Engenharia Elétrica – Pontifícia Universidade Católica do Rio de Janeiro – PUC-Rio. Notas de Aula, 2015.

4. MENDOZA, L. A. F. Projeto de Sistemas Inteligentes de Apoio à Decisão. Rio de Janeiro: Depto. de Engenharia Elétrica – Pontifícia Universidade Católica do Rio de Janeiro – PUC-Rio. Notas de Aula, 2015.

5. stackoverflow.com Traffic Statistics. Disponível em:

<https://www.similarweb.com/website/stackoverflow.com>. Acesso em: 21 dez. 2016.

6. answers.com Traffic Statistics. Disponível em:

<https://www.similarweb.com/website/answers.com>. Acesso em: 21 dez. 2016.

7. answers.yahoo.com Traffic Statistics. Disponível em:

<https://www.similarweb.com/website/answers.yahoo.com>. Acesso em: 21 dez. 2016. 8. HOWARD, T. Design to thrive. Traducao . 1. ed. Burlington, MA: Morgan Kaufmann Publishers,

2010.

9. MIN-LING ZHANG,ZHI-HUA ZHOU,. Multilabel Neural Networks with Applications to Functional Genomics and Text Categorization. IEEE Transactions on Knowledge and Data Engineering, v. 18, n. 10, p. 1338-1351, 2006.

10. SEBASTIANI, F. Machine learning in automated text categorization. [s.l.] Consiglio Nazionale delle Ricerche, 2012.

11. MONARD, M. C.; BARANAUSKAS, J. A.. Conceitos de aprendizado de máquina. In S. O. Rezende, editor, Sistemas Inteligentes - Fundamentos e Aplicações, p.89-114. Editora Manole, 2003.

12. CAVNAR,W.B.AND TRENKLE, J. M. 1994. N-grambased text categorization. In Proceedings of SDAIR-94, 3rd Annual Symposium on Docu-ment Analysis and Information Retrieval (Las Vegas, NV, 1994).

13. COHEN, W. W. 1995b. Text categorization and relational learning. In Proceedings of ICML-95, 12th International Conference on Machine Learning (Lake Tahoe, CA, 1995).

14. DAGAN, I., KAROV,Y.,AND ROTH, D. 1997. Mistakedriven learning in text categorization. In Proceedings of EMNLP-97, 2nd Conference on Empirical Methods in Natural Language Processing (Providence, RI, 1997)

15. FIELD, B. 1975. Towards automatic indexing: automatic assignment of controlled-language indexing and classification from free indexing. J. Document. 31, 4.

16. LANG, K. 1995. NEWSWEEDER: learning to filter netnews. In Proceedings of ICML-95, 12th International Conference on Machine Learning (Lake Tahoe, CA, 1995)

17. PLATT, J. C.. Probabilistic outputs for support vector machines and comparison to regularized likelihood methods, Cambridge, MA, MIT Press, 2000.

18. TAN, Pang-ning, Introdução ao Data Mining Mineração de Dados. Rio de Janeiro: Ciência Moderna Ltda, 2009.

19. KRIESEL, David. 2005. A Brief Introduction to Neural Networks. Traducao . 1. ed. [s.l.]. p. 8 -12

(36)

20. FORSYTH, R. S. 1999. New directions in text categorization. In Causal Models and Intelligent Data Management, A. Gammerman, ed. Springer, Heidelberg, Germany. 21. JUNKER,M.AND HOCH, R. 1998. An experimental evaluation of OCR text representations

for learning document classifiers. Internat. J. Document Analysis and Recognition 1, 2. 22. SILVA, I. N. D.; SPATTI, D. H.; FALUUZINO, R. A. Redes Neurais Artificiais para engenharia e

ciências aplicadas. ISBN 978-85-88098-53-4. São Paulo, 2010.

23. weka - Stemmers. Disponível em: <https://weka.wikispaces.com/Stemmers>. Acesso em: 21 dez. 2016.

(37)

APÊNDICE A – Lista de stopwords (Stop-list).

de a o que e do da em um para com não uma os no se na por mais as dos como mas ao ele das à seu sua ou quando muito nos já eu também só pelo pela até isso ela entre depois sem mesmo aos seus quem nas me esse eles você essa num nem suas meu às minha numa pelos elas qual nós lhe deles essas esses pelas este dele tu te vocês vos lhes meus minhas teu tua teus tuas nosso nossa nossos nossas dela delas esta estes estas aquele aquela aqueles aquelas isto aquilo estou está estamos estão estive esteve estivemos estiveram estava estávamos estavam estivera estivéramos esteja estejamos estejam estivesse estivéssemos estivessem estiver estivermos estiverem hei há havemos hão houve

(38)

houvemos houveram houvera houvéramos haja hajamos hajam houvesse houvéssemos houvessem houver houvermos houverem houverei houverá houveremos houverão houveria houveríamos houveriam sou somos são era éramos eram fui foi fomos foram fora fôramos seja sejamos sejam fosse fôssemos fossem for formos forem serei será seremos serão seria seríamos seriam tenho tem temos tém tinha tínhamos tinham tive teve tivemos tiveram tivera tivéramos tenha tenhamos tenham tivesse tivéssemos tivessem tiver tivermos tiverem terei terá teremos terão teria teríamos teriam

Referências

Documentos relacionados

O objetivo desta dissertação é analisar a associação entre autopercepção da imagem corporal e estado nutricional com autoestima corporal em adolescentes, segundo sexo e faixa

Foi ainda emitida confirmação de que não são utilizadas quaisquer substâncias químicas tóxicas, cancerígenas, tóxicas para a reprodução e mutagénicas da

&#34;tendo em vista a estrutura da incorporação pretendida, a Companhia entende que não se faz necessário o atendimento integral ao Artigo 264 da Lei 6.404/76 e à ICVM

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Os valores encontrados para os coeficientes foram de 0,71 e 0,68 para número de adultos vivos e de ovos, respectivamente, na face adaxial e de 0,56 e 0,64, para essas mesmas

Considerando a importância do assunto, a variabilidade existente nas características físicas e a ausência de dados na literatura especializada referente a

Os perdedores tentam abrir caminho para sair do buraco fazendo mais operações de trading, assim como os alcoólatras tentam mudar de destilado para vinho.. Todas