Full text
Afonso Manuel Salazar Nogueira Comparação de Desempenho de Algoritmos de Machine Learning na Classificação de IT Incident Tickets Performance Comparison of Machine Learning Algorithms in Classifying IT Incident Tickets dezembro de 2020 UMinho|2020 Afonso Manuel Salazar Nogueira Comparação de Desempenho de Algoritmos de Machine Learning na Classificação de IT Incident Tickets
Afonso Manuel Salazar Nogueira Comparação de Desempenho de Algoritmos de Machine Learning na Classificação de IT Incident Tickets Performance Comparison of Machine Learning Algorithms in Classifying IT Incident Tickets Dissertação de Mestrado Integrado em Engenharia e Gestão de Sistemas de Informação Trabalho efetuado sob a orientação do Professor Doutor Miguel Abrunhosa de Brito Dezembro de 2020
i DIREITOS DE AUTOR E CONDIÇÕES DE UTILIZAÇÃO DO TRABALHO POR TERCEIROS Este é um trabalho académico que pode ser utilizado por terceiros desde que respeitadas as regras e boas práticas internacionalmente aceites, no que concerne aos direitos de autor e direitos conexos. Assim, o presente trabalho pode ser utilizado nos termos previstos na licença abaixo indicada. Caso o utilizador necessite de permissão para poder fazer um uso do trabalho em condições não previstas no licenciamento indicado, deverá contactar o autor, através do RepositóriUM da Universidade do Minho. Licença concedida aos utilizadores deste trabalho Atribuição-NãoComercial CC BY-NC https://creativecommons.org/licenses/by-nc/4.0/ Guimarães, 10 de dezembro de 2020 ______________________________________________
ii AGRADECIMENTOS Para que a realização de um projeto desta índole fosse possível, foram vários os intervenientes que me incentivaram e apoiaram em inúmeros momentos. Sendo assim, gostaria de manifestar o meu profundo e sincero agradecimento a todos aqueles que, de alguma forma, contribuíram para a elaboração deste trabalho. À Universidade do Minho, por toda a formação, bases académicas e científicas concedidas, assim como por estes cinco anos que considero, até então, os melhores anos da minha vida. Ao Professor Doutor Miguel Abrunhosa Brito, que aceitou orientar a minha dissertação de mestrado, teve sempre disponibilidade para me facultar todos os conselhos e sugestões, num ambiente muito amigável, tendo um papel determinante na correta execução deste trabalho. À minha família, em especial, aos meus pais, Júlia e António, por todos os valores, amor e sabedoria que me transmitiram, pelo trabalho árduo realizado para que nunca me faltasse nada na vida e pela compreensão de muitos dias e noites de ausência durante estes anos de estudante, e ao meu irmão, António, por toda a amizade e cumplicidade com que sempre me tratou. Aos amigos que a universidade me deu, por todos os momentos incríveis e claramente inesquecíveis que compartilharam comigo. À Luana, por todo o apoio, paciência, carinho e palavras prestadas ao longo destes verdes anos. À Sociedade Musical de Pevidém, por todos os bons momentos de descompressão que me proporcionaram durante esta fase, assim como todos os valores de empenho, dedicação e sucesso transmitidos que, de certa forma, foram aplicados no momento da elaboração deste trabalho. À Afonsina-Tuna de Engenharia da Universidade do Minho, por todas as “bebedeiras, serenatas e folia”, por todos os novos irmãos que me deu e por uma imensidão de momentos vividos que me alertaram para o quão bom é saborear a vida.
iii DECLARAÇÃO DE INTEGRIDADE Declaro ter atuado com integridade na elaboração do presente trabalho académico e confirmo que não recorri à prática de plágio nem a qualquer forma de utilização indevida ou falsificação de informações ou resultados em nenhuma das etapas conducente à sua elaboração. Mais declaro que conheço e que respeitei o Código de Conduta Ética da Universidade do Minho. Guimarães, 10 de dezembro de 2020 ______________________________________________
iv RESUMO Esta dissertação, inserida no projeto de dissertação de mestrado em Engenharia e Gestão de Sistemas de Informação do departamento de Sistemas de Informação da Universidade do Minho, tem como tema “Comparação de Desempenho de Algoritmos de Machine Learning na Classificação de IT Incident Tickets”, que deriva do estágio profissional que o autor realizou no Grupo Petrotec. Todos os dias, colaboradores dos inúmeros departamentos da instituição reportam incidentes tecnológicos, isto é, problemas relacionados com os mais variados elementos de trabalho do seu quotidiano que, a priori, possam ser resolvidos pelos profissionais de TI. Quando se deparam com algum problema, dirigem-se a uma plataforma onde podem detalhar categórica e textualmente o incidente ocorrido, de forma a que o support agent perceba facilmente o cerne da questão. Contudo, nem todos os colaboradores são rigorosos e precisos a descrever o incidente, onde, por muitas vezes, se verifica uma categoria totalmente desfasada com a descrição textual do ticket, o que torna mais demorada a dedução da solução por parte do profissional. Nesta dissertação, é proposta uma solução que visa atribuir uma categoria ao novo incident ticket através da classificação do mesmo, especificando o técnico informático especializado na solução do incidente em questão, sendo um mecanismo que recorre a técnicas de Text Mining, Processamento de Linguagem Natural (PLN) e Machine Learning que tenta reduzir ao máximo a intervenção humana na classificação dos tickets, diminuindo o tempo gasto na perceção e resolução dos mesmos. Com isso, a classificação do atributo relativo à descrição textual do ticket vai ser fulcral para a dedução do agente informático a resolver o incidente. Os resultados obtidos foram bastante satisfatórios, decifrando qual os melhores procedimentos de processamento textual a serem realizados, obtendo posteriormente, na maior parte dos modelos de classificação utilizados, uma acuidade superior a 90%, o que torna legítima a implementação de todas as metodologias adotadas num cenário real, isto é, no Grupo Petrotec. No que concerne à recolha, processamento e mining dos dados, teve-se em conta a metodologia Cross Industry Standard Process for Data Mining (CRISP-DM) e como metodologia de investigação utilizou-se a Design Science Research (DSR). PALAVRAS-CHAVE: TEXT MINING, PROCESSAMENTO DE LINGUAGEM NATURAL, INCIDENT MANAGEMENT PROCESS, CLASSIFICAÇÃO AUTOMÁTICA DE TEXTO, ROTEAMENTO AUTOMÁTICO DE TICKETS
v ABSTRACT This dissertation, included in the master's thesis project in Engineering and Management of Information Systems of the Information Systems department of the University of Minho, has the theme ‘Performance Comparison of Machine Learning Algorithms in Classifying IT Incident Tickets’, which derives from the professional internship that the author performed at Petrotec Group. Every day, employees from the numerous departments of the institution report technological incidents, that is, problems related to the most varied elements of their daily work that can be solved by IT professionals. When faced with a problem, they go to a platform where they can categorically and verbally detail the incident that occurred, so that the 'support agent' easily understands the heart of the matter. However, not all employees are rigorous and accurate in describing the incident, where there is often a category that is totally out of step with the textual description of the ticket, which makes the professional's deduction from the solution more time consuming. In this dissertation, a solution is proposed which aims to assign a category to the new incident ticket through the classification of the same, specifying the specialized support agent in solving the incident in question, being a mechanism, which uses Text Mining, Natural Language Processing (NLP) and Machine Learning techniques and tries to reduce as much as possible the human intervention in the classification of the tickets, decreasing the time spent in their perception and resolution. Therefore, the classification of the attribute related to the ticket's textual description will be central to the assignment of the ‘support agent’ to solve the incident. The results obtained were quite satisfactory, deciphering the best textual processing procedures to be carried out, subsequently obtaining, in most of the classification models used, an accuracy of more than 90%, which makes the implementation of all the methodologies adopted in a real scenario legitimate, that is, in the Petrotec Group. Regarding to data collection, processing and mining, the Cross Industry Standard Process for Data Mining (CRISP-DM) methodology was taken into account and Design Science Research (DSR) was used as the research methodology. KEYWORDS: TEXT MINING, NATURAL LANGUAGE PROCESSING, INCIDENT MANAGEMENT PROCESS, AUTOMATED TEXT CLASSIFICATION, AUTOMATED TICKET ASSIGNMENT
vi ÍNDICE 1. Introdução ........................................................................................................................... 1 1.1 Enquadramento e Motivação ...................................................................................... 1 1.2 Definição do problema ................................................................................................ 2 1.3 Objetivos ...................................................................................................................... 2 1.4 Infraestruturas ............................................................................................................. 4 1.5 Estrutura do documento ............................................................................................. 5 2. Abordagem Metodológica .................................................................................................. 6 2.1 Cross Industry Standard Process for Data Mining (CRISP-DM) ................................... 6 2.2 Design Sicence Resarch (DSR) .................................................................................... 10 2.3 Crisp DM vs Design Science Research ........................................................................ 13 3. Revisão de Literatura ........................................................................................................ 16 3.1 Processo de Pesquisa ................................................................................................. 16 3.2 Information Technology Service Management ......................................................... 17 3.3 Incident Management Process .................................................................................. 18 3.4 Text Mining e Machine Learning ............................................................................... 20 3.4.1 Introdução ao conceito ....................................................................................... 20 3.4.2 Áreas de Text Mining .......................................................................................... 22 3.4.3 Técnicas de Text Mining ..................................................................................... 26 3.4.4 Processo .............................................................................................................. 28 3.4.5 Presente e Futuro ............................................................................................... 35 3.4.6 Machine Learning ............................................................................................... 36 3.4.7 Multi Class Classification vs Multi Label Classification ...................................... 38 3.4.8 Algoritmos .......................................................................................................... 38 3.4.9 Métricas de Avaliação ........................................................................................ 44 3.5 Related Works ............................................................................................................ 47 3.5.1 Smart Dispatch ................................................................................................... 47 3.5.2 German Jordanina University ............................................................................. 48 3.5.3 XSEDE ticket system............................................................................................ 49
vii 3.5.4 Altintas and Tantung (2014) and Istanbul Technical University (ITU) Issue Tracking System ................................................................................................................ 50 3.5.5 Palshikar, Mudassar, Vin e Natu (2012) on Streamlining Service Levels for IT Infrastructure Support....................................................................................................... 52 3.5.6 SYMIAN: Analysis and Performance Improvement of the IT Incident Management Process 53 3.5.7 Relação entre estudos analisados ...................................................................... 54 4. Metodologia - Componente Prática ................................................................................. 56 4.1 Contextualização ....................................................................................................... 56 4.2 Compreensão do Negócio ......................................................................................... 56 4.3 Compreensão e Preparação dos Dados ..................................................................... 57 4.3.1 Dataset Idioma Português .................................................................................. 61 4.3.2 Dataset Idioma Castelhano ................................................................................ 64 4.3.3 Dataset Idioma Inglês ......................................................................................... 65 4.3.4 Processamento dos dados .................................................................................. 67 4.3.5 Processamento do texto ..................................................................................... 71 4.4 Modelação ................................................................................................................. 76 4.4.1 Feature Extraction e Feature Selection .............................................................. 77 4.4.2 Seleção do Modelo Ideal .................................................................................... 80 4.5 Avaliação ................................................................................................................... 84 4.5.1 Dataset Português .............................................................................................. 84 4.5.2 Efetuar Previsões ................................................................................................ 86 4.5.3 Dataset Castelhano e Inglês ............................................................................... 88 4.6 Discussão ................................................................................................................... 89 4.6.1 Dataset Português .............................................................................................. 89 4.6.2 Comparação Dataset Portugês (C3) vs. Castelhano vs. Inglês ........................... 94 5. Gestão do Projeto ............................................................................................................. 96 5.1 Análise de Riscos ........................................................................................................ 96
1 1. INTRODUÇÃO Neste capítulo, será apresentada o tema desta dissertação, assim como os motivos que levaram o autor a ter a temática em causa em consideração, apresentando os objetivos maiorais do projeto e, não menos importante, de que forma estará estruturado o presente documento. 1.1 Enquadramento e Motivação Com a evolução das tecnologias da informação, existe a necessidade de os departamentos de sistemas de informação transporem esse crescimento no que à Service Desk e Gestão de Tickets diz respeito. Estas componentes funcionam como um intermediário entre os clientes, colaboradores e o departamento de tecnologias de informação, permitindo o restauro das funções operacionais do seu quotidiano que possam estar em baixo com o menor impacto possível no negócio e no decorrer do seu trabalho (Miranda & Vieira, n.d.). Esta gestão e manutenção, tem como alicerce um sistema onde qualquer colaborador da empresa pode reportar um problema, através de uma descrição textual e seleção de uma categoria, podendo este ser algo relacionado com um equipamento envolvente do seu cenário de trabalho que esteja sujeito a uma intervenção informática, havendo a possibilidade de atribuir a responsabilidade de resolução a um dos profissionais do departamento informático que é especializado em problemas dessa índole, de modo a que o colaborador possa ver o seu problema resolvido o mais rapidamente possível. Relativamente aos tickets, todos incluem informação que caracteriza um problema que surgiu no decorrer dos serviços que um colaborador presta à empresa. O Grupo Petrotec utiliza um software específico, onde todos estes tickets podem ser organizados pelos profissionais de TI, permitindo a qualquer colaborador da empresa criar, apagar, atualizar e atribuir um ticket que deseja ver resolvido ao support agent adequado. De uma forma sucinta, o colaborador dirige-se à plataforma de HelpDesk, realizando a sua autenticação, onde solicita a criação de um ticket, onde pode detalhar o respetivo assunto, o tipo de problema e atribuir uma prioridade, assim como definir a categoria do incidente. O próximo passo passa por atribuir a resolução a um support agente, em conjunto com
2 características adicionais. Este último passo não é, de todo, obrigatório, sendo que um agente informático pode, na plataforma em questão, caso existam tickets não atribuídos, se responsabilizar por qualquer um que esteja enquadrado com o seu histórico de resolução de tickets. Por fim, o colaborador tem a opção de descrever textualmente os contornos da ocorrência a ser resolvida, sendo este processo concluído com a submissão do ticket, aguardando resposta por parte da equipa de profissionais de TI. 1.2 Definição do problema Nem todos os colaboradores descrevem e categorizam o problema que desejam ver solucionado de forma correta, colocando uma categoria de problema totalmente em desacordo com a descrição textual que inserem. Aliado a este fator, raramente atribuem o ticket a um profissional de sistemas de informação e, quando o fazem, é puramente aleatório e de forma errónea. Assim, torna-se complicado para um técnico informático aferir qual é verdadeiramente o cerne do problema reportado, pois inúmeras vezes deduz uma solução pela categoria do ticket apresentada na plataforma, mas quando vai averiguar a descrição do ticket denota uma má caracterização do problema. Com a falta de atribuição da resolução a um support agent, é necessária uma nova atribuição por parte dos profissionais de TI para o técnico informático correto, traduzindo-se num atraso na resolução do ticket. Sendo assim, seria interessante implementar um sistema que permita reconhecer a temática do ticket submetido, reencaminhando-o para um profissional de TI específico que tenha um histórico de resolução de problemas dessa natureza significativo. 1.3 Objetivos Numa primeira fase, com este documento, o autor pretende demonstrar a fundamentação teórica adquirida para uma futura investigação, explicando as bases do tema em estudo, assim como uma revisão literária do mesmo, justificando os motivos que o levaram a mergulhar nas áreas de Text Mining e Incident Management Process, assim como as técnicas a utilizar e os resultados que supõe obter. Assim, com o desenrolar desta dissertação, todos os fundamentos e conhecimentos adquiridos serão implementados na parte prática da dissertação.
3 Numa primeira fase, no que concerne à vertente teórica deste projeto, desde o estudo dos mais variados conceitos relacionados com a temática do projeto à análise de inúmeros estudos realizados por diversos autores que, de certa forma, partilham a mesma finalidade que este trabalho, irão constar, neste documento, alguns objetivos primários que o autor desta dissertação se propõe a alcançar. É importante, a nível estrutural, constar neste documento, para futuras leituras, o seu âmbito pioneiro e o que o mesmo pretende demonstrar. Sendo assim, o autor desta dissertação considera fulcral: • Adquirir conhecimento sobre o tema proposto; • Estudar soluções existentes ou experiências realizadas neste ramo; • Descrever a investigação proposta pelo autor, assim como os seus objetivos; • Descrever o plano deste projeto, assim como riscos identificados à realização do mesmo; • Transpor o conhecimento adquirido para a futura investigação e componente prática do projeto. Tendo em conta o problema ilustrado, pretende-se propor um sistema que permita analisar o texto inserido por um colaborador na descrição de um ticket, realizando a sua classificação recorrendo a técnicas de machine learning e técnicas de processamento de linguagem natural de maneira a que o mesmo seja automaticamente direcionado para um profissional indicado para a resolução desse problema, no intuito de reduzir o tempo perdido por parte desses profissionais na análise inicial do ticket. Assim, após uma eventual implementação desses mecanismos de automação de processos, será importante aferir a diferença de tempo entre o processo manual de atribuição dos tickets com o processo de redireccionamento automático dos mesmos. Não menos importante, registar quais os modelos que melhor caracterizam os problemas reportados, avaliar as técnicas de análise e classificação textual e escrutinar as potenciais melhorias observadas. Assim, no que diz respeito à vertente prática deste projeto, é necessário enunciar o que se pretende obter com o estudo efetuado e citar quais as conclusões a reter dos resultados finais desta componente prática. Na conclusão deste projeto, será feita uma revisão dos objetivos estipulados no início do mesmo com o que realmente se obteve nos resultados finais. Sendo assim, as conclusões máximas desta dissertação são: • Com o sistema proposto, reduzir o workload do processo de gestão de tickets;
4 • Justificar a utilização de técnicas de machine learning para melhorar o processo de categorização de tickets; • Combinar conhecimento adquirido na fase de fundamentação teórica do projeto; • Aplicar técnicas de PLN e algoritmos de machine learning no ramo de Incident Management; • Comparar o desempenho obtido por cada algoritmo de machine learning considerado. • Avaliar a quality improvement no processo de Incident Categorization com o método proposto; • Comparar desempenho dos métodos com o desempenho obtido noutras experiências relatadas na revisão da literatura. 1.4 Infraestruturas Para a realização deste projeto, serão utilizadas as ferramentas disponibilizadas pela empresa onde decorreu o estágio profissional que o autor desta dissertação realizou, Grupo Petrotec, assim como todo o material de estudo e dados essenciais à investigação. O Grupo Petrotec está inserido na indústria petrolífera, onde produz, comercializa e providencia assistência técnica a equipamentos específicos, contando com milhares de colaboradores nos mais determinados setores e departamentos, sendo assim elevada a probabilidade de ocorrência de um problema que seja reportado através do portal próprio da HelpDesk. Fruto deste percurso, o autor apercebeu-se da utilidade que teria um sistema de classificação automático dos tickets, pois o mesmo vivenciou a problemática num cenário real, onde inúmeras vezes denotava uma má categorização do ticket, com uma categoria definida em desacordo com a descrição do mesmo. Assim, surgiu a ideia de estudar a possibilidade de, através de um conjunto de dados relativos a tickets criados num determinado período de tempo, devidamente categorizados (com o técnico de informática que solucionou o incidente/ticket), com a descrição textual do ticket, decidir qual o melhor modelo, recorrendo a técnicas de Text Mining, Processamento de Linguagem Natural e Machine Learning, que melhor classifica e, implementando a solução num cenário real, que melhor reencaminha o ticket a um técnico de informática.
5 1.5 Estrutura do documento Este trabalho está dividido em seis capítulos. O primeiro é uma introdução sobre o caso de estudo, o seu enquadramento e a motivação que levou o autor a ter uma abordagem crítica sobre o mesmo, apresentando os objetivos que pretende obter com a análise profunda do tema. No segundo capítulo, serão descritos todos os passos das metodologias adotadas, a Cross Industry Standard Process for Data Mining (CRISP-DM) e a Design Science Research (DSR). O terceiro capítulo diz respeito à revisão da literatura e o estado da arte dos temas que irão ser abordados, nomeadamente, dos sistemas de gestão de incidentes, para que servem, como funcionam e a automatização dos seus processos. Para além disso, irão ser descritos conceitos tais como Text Mining e Text Categorization, Machine Learning e Linguagem Natural. Seguidamente, irão ser apresentados detalhadamente todos os passos realizados em cada fase da metodologia CRISP-DM, assim como a seleção dos dados, o seu processamento, a modelação e avaliação dos resultados obtidos. Não menos importante, haverá um ponto de discussão e comparação dos modelos de classificação de texto utilizados. O capítulo seguinte, terá em conta o planeamento do projeto, as tarefas a serem realizadas com uma sucinta descrição e uma análise de riscos. No último capítulo serão apresentadas as conclusões finais deste projeto, assim como um breve resumo do que o autor pretendia almejar, dificuldades e adversidades encontradas ao longo deste trabalho, os resultados obtidos aliados às melhores técnicas utilizadas e um ponto relacionado com eventuais trabalhos futuros a realizar enquadrados com a temática deste projeto. Sendo algo imperativo, constarão as referências bibliográficas utilizadas para a realização deste trabalho
6 2. ABORDAGEM METODOLÓGICA Neste capítulo, serão detalhadas as metodologias consideradas durante a realização desta dissertação, sendo elas a CRISP-DM (Cross Industry Process for Data Mining), utilizada como guião na componente prática deste projeto, e a DSR (Design Science Research), que fornece um conjunto de métricas ideiais para o processo de investigação efetuado nos momentos iniciais deste projeto. 2.1 Cross Industry Standard Process for Data Mining (CRISP-DM) Muitos profissionais especializados em data mining confessam que existe uma enorme complexidade na realização de projetos desta área, sendo que durante a sua execução são necessárias ferramentas e pessoas diferentes, dependendo o sucesso da combinação das ferramentas e as habilidades analíticas das pessoas (M.P. Bloothoofd, A. Francken, R. Graas Editorial, 2018). Assim, justifica-se a utilização de um modelo de gestão deste tipo de projetos. Segundo algumas informações, a metodologia Cross Industry Standard Process for Data Mining (CRISP-DM) ia ser descontinuada, sendo que até o site oficial da mesma, “CRISPDM.org” está em baixo. Ainda assim, continua a ser a metodologia mais utilizada em projetos de data mining, providenciando um modelo estruturado para a execução de projetos desse ramo, independentemente do setor industrial e da tecnologia utilizada, com o intuito de reduzir os custos de certos projetos, tornando-os mais confiáveis, rápidos e fáceis de gerir (Wirth, 2000). Independentemente dos rumores sobre o facto de esta metodologia negligenciar alguns aspetos na tomada de decisão e de estar desatualizada, o autor desta dissertação já entrou em contato com a mesma, utilizando-a noutros projetos de outras unidades curriculares, decidindo que seria a metodologia ideal. A metodologia CRISP-DM, representada na figura 1, define um ciclo de vida de um projeto de data-mining, sendo composto pelas seguintes fases:
7 • Compreensão do negócio: Nesta primeira etapa, é necessário identificar o problema do negócio que se pretende resolver, estabelecendo claramente os objetivos desejados. Assim, é necessário definir os critérios de sucesso que levarão o projeto a bom porto tendo em conta todo o espectro de problemas e informação disponível identificados (M.P. Bloothoofd, A. Francken, R. Graas Editorial, 2018). É possível verificar o objetivo de negócio no ponto, 4.2 Compreensão do Negócio; • Compreensão dos dados: Nesta fase, com os objetivos estabelecidos, é necessário recolher os dados dos mais variados recursos necessários para os atingir, identificando eventuais problemas com a qualidade dos dados, o conhecimento que se pode inferir sobre os mesmos, detetar informações que possam passar despercebidas numa primeira análise e concluir as principais características dos mesmos. Aqui, “Os dados requerem uma exploração adicional para abordar questões específicas de data mining”. (M.P. Bloothoofd, A. Francken, R. Graas Editorial, 2018) Esta etapa encontra-se definida no sub-capítulo 4.3 Compreensão e Preparação dos Dados; • Preparação dos dados: Esta etapa consiste na preparação dos dados para a fase seguinte, abrangendo todas as atividades para construir o conjunto de dados final a partir dos dados iniciais que passaram por um tratamento de qualidade e de limpeza Figura 1Fases do Modelo CRISP-DM
8 (M.P. Bloothoofd, A. Francken, R. Graas Editorial, 2018) Esta etapa encontra-se definida no sub-capítulo 4.3 Compreensão e Preparação dos Dados; • Modelação: Esta etapa diz respeito à construção do modelo após o pré-processamento dos dados através da seleção de uma técnica de modelação específica relacionada com o objetivo do data mining e com os seus parâmetros calibrados no intuito de melhorar os resultados (Wirth, 2000). Existem várias técnicas para o mesmo problema de data mining e algumas requerem um formato de dados específico. Pode se observar esta etapa no sub-capítulo 4.4 Modelação; • Avaliação: Nesta etapa, é preciso verificar os critérios de sucesso definidos na primeira fase, avaliando os resultados do modelo. Na eventualidade de não terem sido atingidos, deverá voltar-se à primeira etapa e estudar o que possa, eventualmente, ter sido mal delineado. No fim desta fase, uma decisão sobre o uso dos resultados do data mining deverá ser tomada (M.P. Bloothoofd, A. Francken, R. Graas Editorial, 2018). Esta fase pode ser encontrada no sub-capítulo 4.5 Avaliação. Esta etapa encontra-se definida no sub-capítulo 4.3 Compreensão e Preparação dos Dados; • Implementação: A fase final apoia-se nos resultados avaliados na fase anterior para definir uma estratégia para uma possível implementação. É considerada a parte final do projeto, mas nunca se deve deixar de monitorizar e gerir os resultados, adaptando o modelo sempre que for preciso (M.P. Bloothoofd, A. Francken, R. Graas Editorial, 2018). Este passo não será implementado, contudo, os modelos de classificação estão prontos para serem inseridos na instituição visada. Contextualizando a metodologia na problemática do projeto, estão representadas, na figura 2, as várias fases da metodologia CRISP-DM e os respetivos passos necessários para a finalidade pretendida, sendo que no capítulo quatro se abordará cada etapa individualmente.
9 Figura 2 - Fases da metodologia CRISP-DM para o projeto em análise Na figura 2 é possível verificar o enquadramento de todos os pontos desta metodologia com a temática do projeto, onde serão concebidos modelos de classificação textual, avaliando qual dos mesmos é o mais eficiente.
10 2.2 Design Sicence Resarch (DSR) A metodologia de investigação que o autor utilizou para a realização desta dissertação foi a Design Science Research (DSR), sendo um conjunto de técnicas e perspetivas, analíticas e sintéticas, utilizadas para desenvolver uma investigação, neste caso, de um ramo de sistemas de informação. Os conhecimentos necessários para realizar essa pesquisa em sistemas de informação envolvem dois paradigmas complementares, sendo elas a ciência do comportamento e a ciência do design [Hevner et al. 2004]. Esta metodologia tenciona potenciar o desempenho de investigações em Sistemas de Informação por meio de uma framework conceptual concisa para compreender, executar e avaliar a respetiva pesquisa (Edmilson Barcelos Rocha, 2015). Como se pode ver na figura 3, esta metodologia, originalmente concebida por Takeda et al. 1990, é constituída por cinco passos: • Consciencialização do problema: Nesta fase, a metodologia refere a importância de ter em mente as repercussões que um determinado problema poderia ter para a organização, identificando as métricas para anular os seus efeitos (Lacerda, Dresch, Proença, & Antunes Júnior, 2013); Figura 3 - Metodologia Design Science Research, retirado de "Design Science Research: Método de pesquisa para a engenharia de produção" (2014)
17 • Machine Learning; • Automated Text Classification; • Automated Incident Categorization; • Natural Language Processing; • Natural Language in Incident Management. O fator de atração para a seleção de um determinado artigo era a identificação, no título e abstract do artigo/documento encontrado, de algumas palavras-chave relacionadas com o tema em estudo. Dado que este estímulo não ocorreu com grande frequência, foi necessário ler para além do abstract do artigo, validando a utilidade desse documento para a investigação do autor desta dissertação. Noutros casos, seguindo a lógica da identificação de palavras chave, foram encontrados alguns artigos interessantes, contudo, era necessária uma determinada subscrição ou licença para os obter. Aqui, foram feitos registos nessas páginas e enviados emails aos autores dos documentos pretendidos, sendo que relativamente poucos responderam de volta. De seguida, foram realizadas pesquisas dos autores referenciados nos documentos encontrados, no intuito de combinar conhecimento, dando consistência à teoria adquirida. 3.2 Information Technology Service Management Em tempos, desde operações de negócio, registos de transações, comunicação organizacional e controlo de recursos eram atividades realizadas através de documentação física e, a maior parte, com a presença dos profissionais que prestam os mais variados serviços de manutenção e suporte. Atualmente, qualquer organização presta serviços a terceiros, podendo estes ser realizados através de tecnologias de informação, sendo os processos inicialmente referidos convertidos para uma componente eletrónica, não sendo necessário recorrer a uma atitude presencial. Segundo o Information Technology Service Management (ITIL(v4)), a Gestão de Serviços é definida como um conjunto de capacidades organizacionais especializadas em gerar valor aos clientes na forma de serviços, na medida em que os resultados esperados pelos clientes sejam obtidos sem a responsabilidade de certos custos e riscos (Cartlidge et al., n.d.). Tendo em conta que a tecnologia está a evoluir a um ritmo estonteante assim como a visão que a organização tem sobre a mesma, surge a necessidade de a organização fortalecer esta componente estratégica de gestão de serviços.
18 A Information Technology Service Management (ITSM) diz respeito ao conjunto de processos e práticas necessárias para dar suporte a tudo o que são serviços relacionados com tecnologias de informação de uma organização e que atendam às necessidades do negócio (Stoner, 2016). Esta manutenção dos serviços de TI é concedida por um conjunto de profissionais com valências adequadas no ramo das tecnologias da informação. Desta forma, as práticas e ferramentas da ITSM visam garantir um metabolismo organizacional robusto e consistente por parte das unidades corporativas, dando o devido feedback aos respetivos stakeholders. Assim, permitem manter a correta execução de todos os processos organizacionais, assim como um controlo do seu cumprimento, o que confere uma maior confiança administrativa (Stoner, 2016). O ITSM é uma abordagem às atividades relacionadas com tecnologias de informação, dando particular realce aos seus clientes, colaboradores e na manutenção adequada dos níveis de qualidade dos seus serviços, permitindo ao departamento de TI da organização, ter um acompanhamento direto do estado dos mesmos (Bonorino Xexéo, Geraldo Zimbrão da Silva, Leandro Guimarães Marques Alvim, Rio Janeiro, & -brasil, n.d.) Iden & Eikebrokk (2013) referem que o ITSM tem como principal objetivo manter um clima de satisfação entre os serviços prestados e nos clientes, revelando a importância de manter os níveis de qualidade dos serviços e garantir uma boa gestão das atividades do departamento de sistemas de informação através de processos claros, encarando a gestão de TI como um serviço. O ITSM tenciona alinhar e integrar as atividades de TI às atividades e objetivos de negócio (Shahsavarani & Ji, 2011), abrangendo funções que ultrapassam o departamento de TI (Bom et al., 2017). Numa revisão literária de publicações sobre ITSM entre 2000 e 2010, levada a cabo por Shahsavarani e Ji (2001), onde preocupavam-se em descobrir o estado da investigação geral sobre este tema, constataram que entre os 21 subtópicos de ITSM, um dos mais populares era o de incident management, com 7.1%. 3.3 Incident Management Process Como definido no ITIL v3, “um incidente é uma interrupção não planeada de um serviço de TI ou uma redução na qualidade de um serviço de TI. A falha de um item de configuração que ainda não afetou o serviço também é um incidente”. O principal objetivo do Incident Management (IM) é detetar todo o tipo de incidentes (que no contexto do problema se pode
19 nomear de ticket) e, na eventualidade de existirem, restaurar as operações afetadas pelo mesmo, o mais rapidamente possível, mitigando os efeitos que se possam sentir no progresso negócio da organização e no colaborador (Tang & Todo, 2013). Para tal, existem um conjunto de atividades que permitem alcançar o propósito deste processo, desde o momento em que o colaborador reporta o problema até que o mesmo seja resolvido por um técnico. Um support agent deteta um incidente através do Event Management, que é um processo que monitoriza todos os eventos que ocorrem com os equipamentos de TI (Tang & Todo, 2013). É nesta fase que o Incident Management Process (IMP) inicia, através da criação de um ticket por parte de um colaborador, técnico ou pessoal administrativo onde, através da plataforma de monitorização, os profissionais de TI tomam conhecimento. Deste modo, convém enunciar as práticas mais relevantes deste processo ((Teixeira Da Silva, Daniel, Faro, & Ribeiro, 2018) e (Ferreira,Matheus Correia, 2017)): • Incident Detection: Quanto mais cedo se detetar um problema, menor o possível impacto na atividade do utilizador e no negócio, sendo essencial ter um sistema de monitorização consistente. A deteção é feita através de avisos e triggers; • Incident Logging: A partir do momento em que alguém reporta um problema, seja ele via e-mail, telefone ou pela plataforma de HelpDesK, o mesmo tem de ser imediatamente registado. • Incident Classification: Numa fase inicial, o problema reportado tem de ser devidamente categorizado para que se consiga deduzir o tipo de incidente a registar, ao que se pode denominar este processo como Incident Categorization e, logo de seguida, é necessário definir uma prioridade ao incidente, pois, por exemplo, muitos utilizadores podem estar dependentes da sua resolução. • Incident investigation and diagnosis: Quando um incidente é registado, é necessário realizar prontamente um diagnóstico ao que foi descrito pelo utilizador que o submeteu, preocupando-se nos principais detalhes que possam levar ao cerne do incidente para uma correta eliminação do problema e respetiva resolução. Na eventualidade de o profissional a quem foi atribuído o incidente não o conseguir resolver, o mesmo deve atribuí-lo a outro técnico ou grupo de técnicos de TI.
20 • Incident Resolution and Recovery: A resolução que foi deduzida na fase do diagnóstico deve ser posta em prática, assegurando que o que outrora fora um problema tenha sido resolvido com alguns testes de verificação. • Incident Closure: Neste momento, é preciso confirmar que o problema reportado está efetivamente resolvido assim como a categorização definida ao mesmo, questionando os utilizadores se se encontram agradados com a operação realizada. Na perspetiva do profissional de TI, é oportuno registar as ações de resolução efetuadas pois num futuro próximo, problemas idênticos podem surgir e ter uma documentação com as medidas tomadas evitava uma maior perda de tempo na resolução do problema. No departamento responsável por dar suporte aos colaboradores de uma empresa, os profissionais têm características e competências diferentes uns dos outros, podendo cada um ser destacado a realizar suporte a um determinado tipo de incidentes. O processo de categorização do incidente (segundo processo) é aquele responsável atribuir uma categoria ao mesmo e, consequentemente, por definir a que profissional ou grupo de profissionais atribuir o ticket tendo em conta as suas valências (Teixeira Da Silva, Daniel, Faro, & Ribeiro, 2018). Tendo em conta o problema definido, o processo de categorização do incidente é feito manualmente, inserindo o tipo e a categoria (assim como uma descrição do problema) e, muitas vezes, incorretamente o que se traduz num gasto de tempo e de recursos mais considerável do que, ao invés disso, uma categorização automática desses incidentes que é o busílis desta proposta. 3.4 Text Mining e Machine Learning Neste sub-capítulo, serão explicados inúmeros conceitos fortemente relacionados com os temas de Text Mining e Machine Learning, termos essenciais para um bom entendimento do âmbito e das áreas envolventes deste projeto. 3.4.1 Introdução ao conceito O termo Text Mining (TM) é uma abreviação de text data mining (TDM), que se refere à procura minuciosa de pedaços de informação valiosos num determinado texto. A prática tem como base vários conceitos, tais como o processamento de linguagem natural, Information Retrieval, Information Extraction, Data Mining e linguística computacional (Burstein & W.
21 Holsapple, 2008). O conceito de Text Mining consiste num processo de análise de uma enorme quantidade não estruturada de texto proveniente dos mais variados documentos, extraindo novas informações para responder a perguntas específicas. Assim, fornece métodos básicos de pré-processamento como a identificação, a extração de características representativas e mecanismos que permitem identificar padrões complexos (Gulo & Thiago, 2015). Pode também ser denominado de Text Data Mining (TDM) ou Knowledge Discovery Textual Databases (KDT). É legítimo afirmar que o conceito de Text Mining é muito semelhante ao de Data Mining, contudo, as ferramentas de Data Mining são concebidas para trabalhar com dados estruturados, ao contrário do Text Mining. Com os mecanismos que têm à disposição, é possível descobrir novas informações, não identificadas anteriormente, a partir de diferentes recursos textuais (Vijayarani, Ilamathi, & Nithya, n.d.). No que a nível organizacional diz respeito, ao adotar os seus mecanismos, inúmeras tarefas manuais podem vir a ser reduzidas, poupando tempo e recursos que os support agents podem concentrar noutras atividades. Para melhor perceber as diferenças em alguns conceitos, convém diferenciar dados estruturados de dados não estruturados. Os dados estruturados têm uma organização específica, por norma, dispostos em linhas e colunas, em bases de dados relacionais e documentos Excel, por exemplo. Os dados não estruturados não têm uma organização nem estrutura delineada. O Text Mining visa resolver os problemas que surgem tanto no ramo de Data Mining, Machine Learning, Natural Language Processing, Information Retrieval e na gestão e classificação do conhecimento. As técnicas das Knowledge Discovery Textual Databases (KDD) e de Data Mining têm foco no processamento de bases de dados estruturadas. Já as técnicas de Text Mining são dedicadas à extração automatizada de informações de dados textuais não estruturados (Rajman & Commission, 1998). Como a maior parte dos métodos indutivos e estatísticos estão dependentes da estruturação dos dados em campos definidos, o Data Mining foca se somente na extração de informações de bases de dados estruturadas. Atualmente, a maior parte das informações relativas a um negócio e a uma organização consistem em dados não estruturados. É necessário a aplicação de técnicas que operem em dados textuais para extrair a respetiva informação neste tipo de dados, sendo assim necessário recorrer a métodos de Text Mining que conseguem decifrar a estrutura implícita dos textos, integrando um sistema de Processamento de linguagem Natural (Rajman & Commission, 1998). Aqui reside a principal
22 diferença, sendo que o Text Mining utiliza técnicas de data mining para encontrar padrões nos textos, só que o faz através de dados não estruturados. Como resultado, é possível afirmar que recorrer a técnicas de text mining é a melhor solução para as empresas onde grandes quantidades e variedades de informações precisam de ser combinadas e geridas (Fan, Wallace, Rich, & Zhang, 2006). 3.4.2 Áreas de Text Mining Neste ponto serão abordadas as mais variadas àreas do conceito Text Mining, detalhando cada uma, exultando a sua importância, os seus objetivos e como cada uma está, de forma direta ou indireta, relacionada entre todas. Data Mining Data Mining refere-se a uma pesquisa automatizada de um conjunto de padrões significativos (incluindo texto) armazenados em bases de dados digitais de grande tamanho ou distribuídas por toda a Web. Este conceito ganhou alguma popularidade nos anos 90, quando as grandes empresas concebiam Data Warehouses para registar uma enorme quantidade de informações digitais (Bekhuis, 2006). O processo de extração de informação de grandes bases de dados é uma tarefa um pouco demorada. Assim, o conceito de Data Mining consiste num mecanismo que permite analisar e resumir imensos dados, descobrindo um padrão relevante e adquirindo conhecimento pois o conhecimento é induzido a partir de informações extraídas dos dados (Mostafa, 2016). As ferramentas de Data Mining podem prever comportamentos e tendências futuras, tendo um peso importante nas tomadas de decisões por parte das empresas, poupando tempo e recursos desnecessários. O principal objetivo passa por extrair informações de uma base de dados e convertê-las numa estrutura compreensível para uso e análise posterior (Kumar & Bhatia, 2013). Information Retrieval O conceito de Information Retrieval está relacionado com a associação e recuperação de informações de um grande número de documentos baseados em texto, enquanto os sistemas e bases de dados de IR manipulam vários tipos de dados. Existem problemas comuns a sistemas de bases de dados de sistemas de IR e outros, tais como o controlo de ocorrência, a recuperação, gestão de transações e atualizações que apenas ocorrem em sistemas de bases
23 de dados (Vijayarani et al., n.d.). A recuperação de documentos é seguida por uma sumarização do texto que se concentra na consulta realizada pelo utilizador ou numa fase de extração de informação recorrendo a algumas técnicas. Como o Text Mining implica a aplicação de algoritmos muito complexos a grandes quantidades de documentos, a IR pode acelerar a análise significativamente reduzindo o número de documentos para análise, selecionando especificamente os mais relevantes (Kumar & Bhatia, 2013). Information Extraction A Information Extraction (IE) é responsável por extrair automaticamente informações estruturadas de documentos legíveis não estruturadas e/ou semiestruturados. Na maioria dos casos, esta tarefa inclui o processamento de textos em linguagem humana via o Processamento de Linguagem Natural (Kumar & Bhatia, 2013). Os dados a serem extraídos são normalmente fornecidos por um template que especifica uma lista de slots a serem preenchidos com substrings retirados do documento em questão (Kao & Poteet, 2005). O processo de identificação de palavras-chave nos documentos segue um método de pesquisa de sequências pré-definidas no texto, ao que se pode chamar de pattern matching, que avalia as relações entre todos as entidades identificadas, dando ao utilizador informação relevante (Vijayarani et al., n.d.) A maior parte das ferramentas de text mining usam IE, dado que é a base de tantas outras tecnologias de text mining (Fan et al., 2006). Processamento de Linguagem Natural O processamento de Linguagem Natural pode ser entendido, teoricamente, como um leque de técnicas computacionais para analisar e representar descrições textuais que sem encontrem em um ou mais níveis de análise linguística com o intuito de obter um processamento de linguagem semelhante ao que os humanos têm para um conjunto de tarefas ou aplicações (Grosz, 1982). O principal objetivo do Processamento de Linguagem Natural, um ramo em constante evolução da Inteligência Artificial, é o de processar uma determinada linguagem humana seguindo um conjunto de parâmetros dessa mesma linguagem. O principal desafio é o de que sistemas computacionais, recorrendo a um texto em uma linguagem formal e através de um conjunto de regras estruturadas, consigam interpretar e obter algum significado.
24 Para que estes sistemas tenham a capacidade de entender uma determinada linguagem, é necessário realizar um tratamento textual de tudo o que se considera informação relevante e não relevante para melhor estruturar as regras anteriormente enunciadas. De acordo com Erik Cambria, nem todos os algoritmos de processamento de texto possuem a real capacidade de interpretar frases e de captar informações significativas. Extrair, dividir e fazer um count do número de palavras de um determinado texto não confere o poder de interpretação lexical e semântica a estes algoritmos (Cambria & White, 2014). Para que o Processamento da Linguagem Natural e respetivos mecanismos sejam eficientes no que há correta interpretação textual diz respeito, necessita de alguns requisitos, tais como a criação e propagação de ligações dinâmicas, manipulação de estruturas recursivas constituintes, acesso a memórias lexicais, semânticas e episódicas, ter um controlo sobre vários processos de aprendizagem, sabendo manusear e reencaminhar a informação entre os mesmos (Cambria & White, 2014). Os níveis de processamento de linguagem natural podem ser entendidos como os níveis da linguagem que qualquer idioma pode apresentar. Para perceber melhor o que se passa dentro de um sistema de Processamento Natural de Linguagem, nada melhor do que explicar os diferentes níveis da linguagem (Liddy,2001): • Fonológico: este nível lida com a interpretação dos sons dentro e através das palavras. Para a análise fonológica, é necessário ter em contra três tipos de regras, sendo o primeiro relacionado com regras fonéticas, destinada aos sons dentro das palavras, o segundo relacionado com regras fonémicas, destinadas a variações da pronúncia devido ao fato de haver palavras que são pronunciadas em conjunto, e o terceiro relacionado com regras prosódicas, usadas na maneira como as frases são entoadas; • Morfológico: este nível lida com o estudo da estrutura e composição das palavras, com foco na análise das componentes individuais das mesmas. Os morfemas, pelos quais as palavras são compostas, dizem respeito às menores unidades de significado (prefixo, raiz, sufixo). O significado de cada morfema mantém-se o mesmo entre as palavras, o que permite ao ser humano entender o significado de cada um ao dividir uma palavra que não conhecem nos seus respetivos morfemas. Usando a mesma lógica, um sistema de processamento de linguagem Natural consegue obter o significado de cada morfema;
25 • Lexical: este nível está relacionado com o estudo no nível das palavras no que diz respeito ao significado lexical. Existem alguns processos que facilitam o entendimento das palavras, sendo que um deles é o de atribuir um identificador de partof-speech (classe de uma palavra, se é nome, adjetivo, verbo etc.) único a cada palavra. Neste processo, palavras que pertençam a mais que uma classe, recebem o identificador (tag) da classe mais provável, com base no contexto em que ocorrem; • Sintático: este nível está relacionado com a necessidade de descobrir a estrutura gramatical de uma frase, havendo uma análise individual das palavras existentes numa determinada frase. Para tal, é necessário uma bag of words, tal como um dicionário, que define a gramática e um interpretador. Esta análise sintática permite extrair as frases que transmitem mais significado do que palavras isoladas, como numa frase substantiva. Os resultados dos processos deste nível permitem uma representação da frase que demonstra as relações de dependência estrutural entre as palavras. Por vezes, torna-se difícil selecionar um interpretador pois várias gramáticas podem ser utilizadas. A sintaxe transmite significado na maior parte dos idiomas, pois tanto a ordem como a dependência contribuem para o significado; • Semântico: este nível de processamento lida com a determinação do que uma frase realmente significa, combinando características sintáticas e palavras cuja ambiguidade foi retirada com várias definições para o contexto fornecido. A desambiguação semântica é fundamental neste nível, pois permite que apenas um sentido dos múltiplos significados que uma palavra possa ter seja selecionado e incluídos na representação semântica da frase. Existem vários métodos que podem ser implementados para realizar a desambiguação, sendo que alguns requerem informações sobre a frequência com que cada significado ocorre num corpus (conjunto de documentos) específico, ou no geral, requerem consideração do contexto local e outros que utilizam conhecimento pragmático do assunto retratado do documento; • Discurso: um grande problema na análise de texto é a presença de ‘anáforas pendentes’ que remetem a outras frases (Johnson, Paice, Black, & Neal, 1993). Este nível concentra-se nas propriedades textuais como um todo que transmitem significado, fazendo conexões entre as frases componentes. Através da identificação de entidades referenciadas como anáforas (por norma um pronome), ocorre a remoção de anáforas, processo essencial deste nível. O reconhecimento da estrutura do texto determina as
26 funções das frases no texto, o que, por sua vez, contribui para a representação significativa do texto; • Pragmático: este nível lida com o uso do conhecimento do mundo real e com a compreensão de como isso influencia o significado do que está a ser transmitido. O nível pragmático tem como intuito explicar como um significado a mais é lido nos textos sem que ele seja codificado nele. Algumas aplicações que utilizam o processamento de linguagem natural utilizam algumas bases de conhecimento e módulos de inferência. 3.4.3 Técnicas de Text Mining Apesar de o conceito e respetiva aplicação do Text Mining ser algo não tão antiquado, é possível identificar algumas técnicas que irão ser enunciadas neste ponto. Text Categorization De acordo com Joachims (1998), o principal objetivo da categorização de texto passa pela classificação de documentos num número fixo de categorias pré-definidas, sendo que os documentos podem estar estruturados em múltiplas, exatamente uma ou nenhuma categoria. Recorrendo a técnicas de machine learning, tenciona-se obter os classifiers através de exemplos que executam as atribuições de categorias automaticamente. Ao categorizar um documento, o documento irá ser tratado como um conjunto de caracteres, sendo que cada palavra que apareça é inserida numa contagem que, no final, identifica os principais tópicos abordados pelo documento. Por norma, a categorização depende de um glossário para o qual os tópicos estão previamente definidos e as relações são identificadas pela pesquisa de termos grandes, sinónimos e termos relacionados (Vijayarani et al., n.d.). Colocando o processo num cenário real, se se tiver em consideração 𝑥𝑖 um documento de um conjunto de documentos Z, e {𝑧1,𝑧2,𝑧3,…} é o conjunto de categorias, então a classificação do texto ira atribuir uma categoria 𝑐𝑗 a um documento 𝑥𝑖 (Ikonomakis, Kotsiantis, & Tampakas, 2005). Nos últimos anos, houve um aumento do número técnicas estatísticas e de machine learning que geram automaticamente o conhecimento sobre categorização de texto com base nos training examples (Tan, 2000). Tais técnicas, incluindo Decision Trees (DT), K-nearestneighbor system (KNN), Rule Induction (RI), Gradient Descent Neural Networks (GDNN), Regression Models (RM), Linear Least Square Fit (LLSF) e Support Vector Machines (SVM) pressupõem a disponibilidade de um training corpus (conjunto de documentos) pre-labeled
33 Text Transformation Nesta fase, um documento é representado pelas palavras que os mesmos contêm e as suas ocorrências, podendo seguir duas abordagens, a Bag-of-Words ou o Vector Space. Este processo realiza a feature generation seguida pela selection task, sendo que a primeira representa documentos pelas palavras que contêm e as respetivas ocorrências em que a ordem das palavras não é significativa, e a segunda é um processo de seleção de um subconjunto de features com o intuito de as usar na criação dos modelos (Gohil & Preprocessing, 2015). • Intermediate Forms Para a fase específica de text mining, é necessário que os dados estejam estruturados de uma determinada maneira para poderem ser trabalhados, tendo os textos a analisar que ser convertidos num intermediate form. Por outras palavras, é um modelo de representação do conhecimento que visa expressar o conteúdo implícito do texto de maneira a que o mesmo possa ser consumido por um equipamento eletrónico, tal como um computador.(Justicia De La Torre, Martín-Bautista, Síanchez, & Vila, 2005). • Bag-of-Words O modelo de Bag-of-words (BOW), é uma forma de extrair características de um determinado texto para usar futuramente na modelação. Neste modelo, o texto é representado como um conjunto de palavras desordenadas, não tendo em consideração a gramática das mesmas. Como referido anteriormente, a uma palavra num determinado texto é atribuída um peso de acordo com a sua frequência, assim como a sua frequência nos restantes textos daquilo que se esteja a analisar. Assim, as palavras com os seus respetivos pesos podem ser visto como um modelo de Bag-ofwords (BOW) (George K & Joseph, 2014). Nesta representação, de todas as palavras que ocorrem num documento, são eliminadas todas as suas relações, sejam semânticas ou sintáticas (Justicia De La Torre et al., 2005). Exemplificando, suponha-se que existem dois documentos, onde no primeiro está escrito “O ticket foi fechado”, e no segundo “O ticket está à espera de resolução”. Será criado, primeiramente, um vocabulário onde constam todas as palavras únicas presentes nos dois textos, contendo 9 palavras: “O”,” ticket”,” foi”,” fechado”,” está”,
34 “à”, “espera”, “de”, “resolução “. Na tabela 2 abaixo representada, constam as ocorrências de cada uma destas palavras nos dois documentos. Tabela 2 - Representação ilustrativa de Bag-of-Words O ticket foi fechado está à espera de Resolução Texto 1 1 1 1 1 0 0 0 0 0 Texto 2 1 1 0 0 1 1 1 1 1 Finalmente, cada texto será representado por um vetor onde cada índice diz respeito à contagem de ocorrência representada na tabela 2 acima. Vetor texto 1 = [111100000] Vetor texto 2 = [110011111]. Modelo N-Gram O modelo de N-Gram é um modelo probabilístico de texto que avalia a dependência entre palavras, sendo que o n se refere ao número de palavras que se visa analisar essa relação de dependência. Um N-Gram é uma sequência de n palavras n-gram. Pode ser 2-gram (ou bigram), sendo uma sequência de duas palavras, tais como “trocar toner”, “toner impressora” ou “impressora falhou”. Pode se considerar uma sequência de 3 palavras, sendo um 3-gram (ou trigram), tais como “trocar toner impressora” ou “toner impressora falhou”(Jurafsky & Martin, 2019) . De acordo com (Justicia De La Torre et al., 2005), a representação via n-grams é um intermediate form mais vantajoso do que uma BOW, não só por não requerer uma preparação linguística das palavras, mas por conseguir modelar e transformar uma palavra de um determinado conjunto de documentos noutra palavra sem processá-la, apenas alterando alguns caracteres, evitando erros tipográficos.
35 Data Mining Neste ponto do processo, as técnicas Text Mining fundem-se com as técnicas tradicionais de Data Mining, usadas na base de dados estruturados resultante dos processos anteriores (Kumar & Bhatia, 2013). Avaliação Nesta fase, são avaliados os resultados. No fim deste processo, o resultado pode ser descartado ou o resultado gerado pode ser usado como input para o próximo conjunto de sequências (Kumar & Bhatia, 2013). Aqui, o desempenho dos classifiers deve ser tido em conta, sendo que o mesmo é calculado com recurso a uma taxa de erro (Alexandra, 2018). 3.4.5 Presente e Futuro Uma das componentes de Text Mining que se perspetiva que sofra alguma evolução é a análise semântica do texto. Como referido anteriormente, os Intermediate Forms desempenham um papel fulcral para que o texto possa ser processado por entidades computacionais, sendo que apresentam um certo grau de complexidade. Como é necessário obter uma relação semântica entre os termos descritos nos documentos, quanto maior a complexidade, mais difícil será esta operação, sendo que os equipamentos que processam esta análise têm um espetro limitado de palavras por segundo. É entusiasmante imaginar o quão mais eficaz e rápido este processo pode ser no futuro (Tan, 1999). Outra componente promissora a ter em conta no futuro é o processamento de texto em vários idiomas. A maior parte da literatura e de experiências realizadas até então, tem como base de investigação documentos escritos em inglês. Contudo, existe a necessidade de conceber algoritmos de processamento de texto que consigam processar textos escritos em vários idiomas e que consigam produzir intermediate forms independentes do idioma (Alwidian, Bani-Salameh, & Alslaity, 2015) o que, certamente, iria facilitar o processamento do material textual utilizado no trabalho prático deste projeto. Adicionalmente, prevê-se que no futuro as operações de text mining assim como queries de linguagem natural sejam independentes de uma componente humana, conseguindo selecionar os processos adequados à situação através do desenvolvimento de sistemas autónomos (Tan, 1999). Tal como trabalho desenvolvido nesta dissertação, o objetivo principal de muitos projetos que envolvem classificação de texto é a identificação de um autor, de uma categoria,
36 sendo que neste caso é o agente informático que resolve um incident ticket. Contudo, existem outro tipo de categoria, tais como o idioma nativo do autor, a idade, género, entre outros, que são também cruciais para identificação do autor e não a penas o tópico ou a descrição textual a ele atribuída. Para além de facilitarem, por exemplo, uma procura numa base de dados por certos tipos de texto, auxiliam na análise do desempenho do método aplicado em situações reais (Zechner, 2013). No que concerne aos métodos de classificação, a comunidade científica refere que os que se têm verificado com melhores desempenho são, por norma, o SVM e o Naive Bayes. Um dos fatores que prejudica o desempenho dos classifiers é a quantidade de informação a mais. Relativamente ao Naive Bayes, inicialmente definia-se como um método que assumia à priori que as features não se correlacionavam entre si. Contudo, o que se veio a verificar é que o método não assume que exista uma correlação entre valores próximos. Um exemplo dado é que dois textos, um com 15 palavras “tu” e outro com 17 palavras “tu”, o método atribui a probabilidade de esses textos terem sido escritos por um autor X, mas não assume, por exemplo, um texto com 15 palavras “tu” tenha sido escrito por esse mesmo autor X. Já o SVM, pode assumir demais. Um exemplo dado é que, sabendo que o autor X usa em média a palavra “a” mais do que a média geral, e ao analisar um texto onde essa mesma palavra aparece com muita frequência, a dedução que o mesmo faz é que esse texto tenha sido escrito pelo autor A (Zechner, 2013). Daí o problema de existirem training sets com algum desequilíbrio de ocorrências entre a categoria a prever, neste exemplo dado, os autores, pode levar a que as previsões e, consequente, desempenho sejam erradas. 3.4.6 Machine Learning Nos dias de hoje, para uma pessoa que está inserida no mercado das tecnologias de informação é raro não se deparar com o conceito de Machine Learning, conceito muito associado a Inteligência Artificial, podendo ser considerado como um dos seus recursos, justificando o mediatismo que tem vindo a obter e a possível vantagem competitiva que o mesmo pode trazer às organizações e o seu negócio. Com a evolução das tecnologias, evolui a capacidade de as máquinas conseguirem reconhecer padrões e de adquirirem conhecimentos de forma autónoma através de mecanismos computacionais que tem como alicerce o comportamento humano na resolução de certos problemas, nomeadamente, na forma como se modificam comportamentos pela própria experiência, através de uma análise
37 de dados e definição de algumas regras lógicas que visam otimizar o desempenho das próprias máquinas na resolução de problemas específicos. Machine Learning é uma forma de Inteligência Artifical que permite que um sistema aprenda com um conjunto de dados e não através de uma programação explícita (Langley & Carbonell, 1984). Dar instruções a um determinado equipamento informático para executar uma determinada tarefa exige que se defina um algoritmo completo e correto para essa mesma tarefa e, depois, programá-lo para o equipamento (Carbonell, Michalski, & Mitchell, 1983). Todas estas atividades são dispendiosas e necessitam de muito tempo para serem realizadas. Existem vários algoritmos de Machine Learning que adquirem conhecimento dos dados para prever e melhorar resultados, sendo que à medida que o fazem, é possível conceber modelos mais precisos, sendo o modelo o resultado do training dos dados em questão (Langley & Carbonell, 1984). Para obter essa precisão desejada, é preciso ter em atenção a informação que os dados contêm, descartando o que estiver a mais, sendo essencial haver uma limpeza consoante o tipo de dados usados no contexto (Deepti Vedala, 2018). Sendo que a problemática desta dissertação consiste na classificação de tickets consoante a sua categoria e tipo, irão ser abordados apenas alguns algoritmos inseridos nessa vertente. Os algoritmos de Machine Learning podem ser categorizados de duas maneiras, supervised ou unsupervised. Nos primeiros, Supervised Learning Algorithms, existem um conjunto de dados específicos que contêm variáveis alvo, aquelas que se pretendem considerar para uma futura seleção. Ao aplicar este algoritmo, através da experiência obtida, dados que possuam as características específicas com as variáveis-alvos selecionados como input. Com os dados selecionados e com o respetivo training dos mesmos, este algoritmo faz a previsão do target (variável-alvo) na test data (dados de teste) (Deepti Vedala, 2018). Quando a variável-alvo é contínua, é possível considerar que é um caso de regressão, o que permite perceber a correlação entre as variáveis. Por outro lado, quando os dados provêm de um dataset com um conjunto finito de valores, está-se perante um caso de classificação (Langley & Carbonell, 1984). No que diz respeito aos Unsupervised Learning Algorithims, os dados de input não têm nenhuma variável-alvo. Através dos dados, consegue-se deduzir alguns padrões e definir uma estrutura no qual o modelo a ser preparado é baseado. Este algoritmo segmenta dados em
38 grupos (clusters) ou em grupo de features. Os dados não selecionados geram os valores dos parâmetros e a classificação dos dados (Langley & Carbonell, 1984). 3.4.7 Multi Class Classification vs Multi Label Classification Relativamente a Multiclass-Classification, cada atributo no conjunto de dados train pertence a uma de N classes diferentes. O principal objetivo é conceber uma função que, dando um novo input, a mesma irá prever corretamente a classe à qual o novo ponto pertence (Rifkin, 2008). No que diz respeito a Multilabel-Classification, a mesma surgiu na necessidade de auxiliar tarefas de categorização de texto e de diagnósticos médicos. Por norma, documentos de textos podem pertencer a mias que uma classe conceptual. Um exemplo dado por (Tsoumakas & Katakis, 2007), um artigo onde constam reações da igreja cristã ao lançamento do filme “O Codigo Da Vinci” pode ser classificado nas categorias de “Sociedade”, “Religião e Artes” e “Filmes”. A principal diferença entre estes dois conceitos reside no facto que na multiclass-classification as classes são mutuamente exclusivas, ao contrário da multilabel-classification onde cada label representa uma tarefa diferente de classificação. 3.4.8 Algoritmos Nesta secção, serão detalhados alguns supervised learning algortihms que irão ser aplicados neste projeto, sendo necessário que, nos dados a estudar, a variável alvo esteja categorizada (labeled), na maior parte dos casos, corretamente, para os mesmos fazerem uma ‘aprendizagem’ precisa, de modo a que as previsões a serem efetuadas sejam o mais corretas possível. Multinomial Naive Bayes O primeiro método a ser referido é o Multinomial Naive Bayes (MNB), frequentemente aplicado em trabalhos onde a temática debruça-se na classificação de texto (Shiri, 2004). Primeiramente, convém esclarecer o conceito de Naive Bayes (NB) que, como refere (Hartmann, Huppertz, Schamp, & Heitmann, 2019), é um dos modelos probabilísticos de classificação mais simples, sendo que estima uma distribuição de um documento P(d|c) pertencente aos documentos de train e implementa a Bayes’ rule para estimar a P(c|d) para os documentos destinados ao test, onde toda a modelação do conjunto de documentos ocorre. Em tarefas de classificação de texto, considerando a abordagem ‘Bayesiana’, a mesma
39 assume que os dados de texto foram obtidos através de um modelo paramétrico, usando os dados de train para calcular ao que se designam de estimativas ‘Bayesianas’ ótimas dos parâmetros do modelo. Com as deduções estatísticas efetuadas, o modelo classifica os novos documentos de test usando a Bayes’ rule para inverter o modelo gerador e calcular a probabilidade posterior de que uma classe teria gerado o documento de test em questão. Assim, a classificação torna se uma simples questão de selecionar a classe mais provável (Maertens, Long, & White, 2017). De acordo com Zhang & Gao, 2011, assumindo um vetor de variáveis D = {d}, i = 1,2,…,n, representa o documento, onde 𝑑𝑖 diz respeito a uma letra, palavra ou outros atributos sobre um determinado texto na realidade, e um conjunto de C = {𝑐1,𝑐2, …,𝑐𝑘}, são as classes predefinidas. O objetivo da classificação de texto é atribuir uma class label 𝑐𝑗, onde j = 1, 2, …k, desde C a um determinado documento. O método de classificação NB é por natureza um método probabilístico híbrido: 𝑃(𝐶𝑗|𝐷) = 𝑃(𝑐𝑗)𝑃(𝐷|𝑐𝑗) 𝑃(𝐷) (1) Na fórmula (1) acima representada, o P (𝑐𝑗) fornece informação acerca da probabilidade da classe 𝑐𝑗, P(D) é a informação das observações, obtidas do texto a ser classificado e, por último, P(D|𝑐𝑗) é a distribuição de probabilidade do documento D no espetro das classes. O mesmo afirma que irão ocorrer duas tarefas executadas por este método separadamente. Primeiro, com as informações totalmente integradas, estimar a probabilidade do documento D pertencer a uma determinada classe 𝑐𝑗. De seguida, atribui a classe em que o documento obteve maior probabilidade, sendo: 𝑐∗(𝐷)=𝑎𝑟𝑔𝑗𝑚𝑎𝑥𝑃(𝑐𝑗|𝐷) (2) Continuando com (Zhang & Gao, 2011), assume-se que os atributos 𝑑𝑖. pertencente a D são independentes um do outro, já que a probabilidade condicional P(D|𝑐𝑗) não pode ser consumida por um sistema de forma tão direta na prática. Sendo assim, considera-se: 𝑃(𝐷|𝐶𝐽) =ΠiP(di|cj) (3)
40 O modelo (3) acima representado é denominado de Native Bayes que, convergindo com o primeiro modelo (1) enunciado nesta secção fica: 𝑃(𝑐𝑗|𝐷) =𝑃(𝑐𝑗)ΠiP(di|cj) 𝑃(𝐷) (4) Tendo em conta que a amostra de informação P(D) é idêntica a cada classe 𝑐𝑗, j=1, 2,..., k a segunda fórmula apresentada nesta secção torna-se: 𝑐∗(𝐷)=𝑎𝑟𝑔𝑗𝑚𝑎𝑥𝑃(𝑐𝑗)Πi𝑃(𝑑𝑖|𝑐𝑗) (5) Relativamente ao modelo Multinomial Naive Bayes, o mesmo foca-se na frequência das palavras nos documentos, modelando a distribuição das mesmas num documento como um multinominal. Cada documento é uma sequência de palavras ordenadas, extraídas do mesmo vocabulário V. O comprimento dos documentos é assumido como independente. Considera se que a probabilidade de ocorrência de cada palavra num documento é independente do contexto e posição da palavra no documento. Cada documento 𝑑𝑖 é extraído de uma distribuição multinominal de palavras com tantas tentativas independentes quanto o comprimento de 𝑑𝑖(Maertens et al., 2017). De acordo com (Maertens et al., 2017), considerando 𝑁𝑖𝑡 o número de ocorrências de uma palavra 𝑤𝑡 (feature) num documento 𝑑𝑖, sendo V o tamanho do vocabulário anteriormente, a fórmula da distribuição multinominal passa a ser: 𝑃(𝑑𝑖|𝑐𝑗;𝜃) =𝑃(|𝑑𝑖|)|𝑑𝑖|! Π 𝑡=1 |𝑉| 𝑃(𝑤𝑡|𝑐𝑗;𝜃)𝑁𝑖𝑡 𝑁𝑖𝑡! (6) Support Vector Machines Os Support Vector Machines (SVM) representam um algoritmo de machine learning muito utilizado em projetos desta índole (Ruz, Henríquez, & Mascareño, 2020). O principal objetivo dos Support Vector Machines é encontrar um hyperplane (definido como um subespaço cuja dimensão é menos um que a dimensão do seu próprio espaço) ótimo como
41 solução para um learning problem, isto é, num determinado espaço n-dimensional (sendo n o número de features), encontrar o hyperplane que classifica distintamente os data points em consideração é o objetivo máximo. Os ditos Support Vectors são os data points que estão mais próximos do hyperplane, ingluenciando a posição e orientação do mesmo. A formulação mais básica do SVM é a linear, onde o hyperplane já referido, encontra-se num espaço de dados de input x. Assim, o SVM encontra o hyperplane num espaço diferente do espaço de dados de input x, pois esse hyperplane encontra-se numa feature space induzida por um Kernel k, sendo através dele que o espaço de hipóteses é definido como um conjunto de hyperplanes na feature space induzido por k (Evgeniou & Pontil, 2001). De acordo com (Joachims, 1998), os SVM têm como base o princípio da minimização estrutural do risco que visa encontrar uma hipótese h para a qual seja possível garantir o menor erro verdadeiro. Mas o que é o menor erro verdadeiro? Consegue-se definir como a probabilidade de h errar num test exemple selecionado de forma aleatória. É possível conectar, através de um limite superior, o erro verdadeiro de uma hipótese h com o erro de h no conjunto de dados de train, assim como a complexidade de h. Os SVM encontram a hipótese h que minimiza, aproximadamente, esse limite no erro verdadeiro, controlando eficazmente a dimensão VC de h. A dimensão VC (Vapnik.Chervonenkis) afirma que se existe um conjunto de n pontos que podem ser rompidos pelo método classificador e não existe um conjunto de n+1 pontos que podem ser rompidos igualmente pelo classificador, então a dimensão VC do classificador é n. Através de uma kernel function apropriada, os SVM tem a capacidade de ‘aprender’ de forma independente da dimensionalidade da feature space, medindo a complexidade das hipóteses com base na margem com a qual separam os dados, não com base no número de features (Joachims, 1998). Existem 4 tipo de kernel functions, sendo elas a Linear, Polynomial, Radial Basis Function e a Sigmoid. É fulcral uma boa seleção de uma kernel function, uma vez que a mesma define a feature space no qual as instâncias do training set serão classificadas (Ikonomakis, Kotsiantis, & Tampakas, 2005). Logistic Regression O método Logistic Regression (LR) visa estimar os efeitos das variáveis independentes nas variáveis dependentes como probabilidade. Assegurando a determinação dos fatores de risco como probabilidade, é um método que investiga a relação das variáveis dependentes
42 com as variáveis independentes em fases binárias ou múltiplas. Este método que pode ser considerado uma alternativa à Linear Regression, dado que a suposição da normalidade falha na eventualidade de se tratar de um caso de uma variável discreta binária ou multi-categórica (Korkmaz, Güney, & Yüksel YİĞÎTER, 2012). Usada primordialmente em ciências biológicas, é atualmente utilizada em estudos em que a variável dependente (a target a ser prevista) é categórica. A LR modelará uma hipótese de um determinado resultado tendo como base características individuais e independentes. Como a hipótese é considerada uma razão, o que será efetivamente modelado é o logaritmo da hipótese (Sperandei, 2014). Considerando n a probabilidade de um determinado evento, βi representa os coeficientes de regressão associados ao grupo de referência e xi são as variáveis interpretativas, considera-se a função: log(𝜋 1−𝜋)= 𝛽0 + 𝛽1𝑥1 + 𝛽2𝑥2 + ⋯ 𝛽𝑚𝑥𝑚 Random Forest Random Forest é um método de classificação que surge da evolução das Decision Trees. Para classificar uma nova instância, uma Decision Tree faculta uma classificação para os dados de input, já o Random Forest coleta as classificações e seleciona a melhor previsão obtida como resultado (Mao & Wang, 2012). As Decision trees são concebidas estruturando um conjunto de amostras de train via substituição, o que significa que a mesma amostra pode ser selecionada várias vezes, enquanto outras podem até não ser selecionadas. Estima-se que dois terços dessas amostras são usadas para realizar o train das Decision Trees e, o terço em falta, é direcionado para uma técnica de cross-validation interna para calcular o desempenho do modelo Random Forest resultante (Belgiu & Drăgu, 2016). Através do método de Bootstrap, usado para obter alguns dados estatísticos de um dataset original, repartindo-o de forma aleatória em subconjuntos de dados com o mesmo tamanho que o dataset original, tendo como base a reposição, é possível efetuar o train de várias Decision Trees, em paralelo, em vários subconjuntos do dataset usados para train, através de diferentes subconjuntos de features disponíveis. É fulcral realçar a importância do Bootstrapping, dado que é o mesmo que garante que cada Decision tree no Random Forest seja única. O próximo passo surge quando o método Random Forest agrega todas as distintas
49 incorreta da categoria do ticket leva ao reencaminhamento errado do mesmo para o grupo de resolução errado. Tendo acesso a inúmeros tickets, o principal objetivo era o de descobrir qual o algoritmo de machine learning que obtém um melhor modelo de classificação de tickets preciso. Numa primeira experiência, cada ticket estava representado com a sua descrição textual sem qualquer tipo de pré-processamento. Os algoritmos utilizados foram o J48 (Tree-based), DecisionTable (Rule-Based), NaiveBayes (Bayes-Based), Sequential Minimal Optimization (SMO, SVM-based) e o StringToWordVector VSM. Numa primeira fase, concluíram que o algoritmo SVM seria o mais preciso na construção de um modelo de classificação de tickets e, para melhorar os resultados da previsão efetuada, o Lovins Stemmer foi ativado os parâmetros da feature vectorization foram ajustados através da implementação das flags da inverse document frequency, abordada no ponto anterior (IDF), e da Term Frequency (TF) para true. Com as novas configurações, os algoritmos foram revalidados, verificando-se um aumento de precisão no SMO, nomeadamente de 53,8% para 59,5%. Numa segunda experiência, testaram os efeitos do processamento textual do ticket na precisão dos algoritmos, verificando um aumento no algoritmo SMO para 69,9%. Concluíram rapidamente que o pré-processamento textual deve ser sempre considerado na metodologia proposta pelos mesmos para limpar os training ticket values do texto desnecessário que tem um efeito negativo na precisão da classificação. Numa terceira fase, testaram o efeito de adicionar mais informação destruturada no training e test data dos tickets. Assim, além do conjunto de dados inicias que incluíam a descrição pré-processada dos tickets, foram produzidos dois conjuntos de dados a seguir: um dataset que incorpora o título e a descrição pré-processados dos tickets em cada instância do ticket, bem como outro dataset que contém o título, a descrição e os comentários préprocessados do ticket. Verificaram algoritmo baseado em SVM teve um melhor desempenho em todos os casos, podendo atingir uma precisão de 81,4%. 3.5.3 XSEDE ticket system A informação relatada neste ponto não deriva diretamente do documento original que retrata o estudo que G.Son, V.Hazlewood e G.Peterson desenvolveram (2014), pois retrata um dos documentos que o autor desta dissertação não teve acesso por falta de licenças, mas provém de outros estudos e de outras pesquisas de outros autores que fizeram referência à
50 investigação realizada por Son et al.(2014). O XSEDE ticket system é um sistema de tickets que quando deteta a criação de um ticket por parte de um colaborador ser agrupados manualmente em categorias predefinidas pelo remetente do ticket ou pela equipe de operações. Na sua investigação, Son et al. (2014), estudaram o desempenho dos algoritmos de machine learning Naive Bayes (NB), assim como Multinomial NB (baseado em NB), e o Softmax Regression Neural Network (SNN), aplicados na automatização da categorização de tickets do sistema XSEDE ticket system. Apenas o atributo “subjetct” dos tickets (assunto/categoria) foi utilizado para gerar uma lista de palavras como input e uma lista manual de grupos de palavras para melhorar a precisão dos algoritmos. Os algoritmos de text mining utilizaram a input word list para selecionar as input words nos tickets. O Multinomial NB é utilizado para classificação com features discretas, tendo em conta a frequência das palavras nos documentos e as sequências das mesmas que melhoram a classificação. Para o training, utilizaram um dataset com 7042 tickets e para test, um dataset com 717 tickets. Posteriormente, recorreram a técnicas de PNL e text mining para tratar a informação dos datasets, como a atribuição de tags e a associação dos tickets a categorias, stopwords e a Term Frequency vs Inverse Document Frequency. Para o classificador, o algoritmo usa como input uma lista de palavras composta por assuntos de emails. Os autores repararam que o Multinomial NB e o SNN registaram uma melhor precisão geral (até cerca de 85,8%, através de duas seleções simultâneas de categorias). Mais precisamente, usando o Multinomial NB obtiveram cerca de 70% de precisão e o SNN 68%. Para além disso, as informações do service provider resource (como o nome do sistema), poderiam ser extraídas dos tickets com cerca de 90% de precisão (Son et al., 2014). 3.5.4 Altintas and Tantung (2014) and Istanbul Technical University (ITU) Issue Tracking System O sistema proposto (uma extensão para integrar num Issue Tracking System) pelos autores baseia-se num processo de classificação repartido em duas fases para atribuir o ticket reportado à unidade de suporte mais adequada. A primeira fase da classificação, visa detetar a categoria relacionada ticket que está diretamente relacionada com o grupo de resolução desse tipo de problemas, enquanto a que a segunda fase da classificação tenta determinar a subcategoria ou a unidade relacionada com a categoria específica que descreve qual o tipo de
51 problema no grupo de resolução determinado. A regra estipulada era, se a confiança da previsão de cada classificação fosse maior que o valor limite predeterminado, o ticket iria ser atribuído à categoria ou subcategoria relevante. Caso contrário, a classificação manual do ticket tinha de ser executada por um support agent para atribuir a categoria ou subcategoria adequada (Altintas, Cuneyd Tantug, Tr, & Tr, 2014). Na figura 4, está representada a arquitetura do sistema proposto pelos autores: Para realizar a investigação, foi utilizado um dataset com cerca de dez mil tickets no idioma turco, recolhidos da ITU (Istanbul Technical University) Issue Tracking System, uma Figura 4 - Arquitetura do sistema proposto, retirado de “Machine Learning Based Ticket Classification in Issue Tracking Systems”
52 aplicação web onde os utilizadores podem submeter vários tickets. Os atributos do ticket consistem na sua data, utilizador que o criou, categoria (relacionada com a unidade de resolução), subcategoria (relacionada com o tipo de problema na unidade de resolução), ticket subject (assunto) que consiste em texto de linguagem natural, sendo o atributo crítico para o processo de categorização. No tratamento de texto, realizaram uma limpeza geral, eliminando html tags. Depois, foram aplicadas algumas técnicas, tal como a Feature Extraction, baseada na abordagem de bag-of-words recorrendo à técnica TemFrequency vs Inverse Document Frequency, com remoção das stopwords. Foram utilizados diversos algoritmos de machine learning, tais como o Suppor-Vector Machine (SVM), Naive Bayes (NB), K-Nearest Neighbours (KNN) e Decision Tree (DT). Dos resultados obtidos, o algoritmo SVM alcançou uma precisão de classificação de categorias entre 85% e 90%, o NB entre 49% e 85%, o KNN entre 70 % e 75% e o DT manteve-se sempre perto dos 85%. 3.5.5 Palshikar, Mudassar, Vin e Natu (2012) on Streamlining Service Levels for IT Infrastructure Support Palshikar, Mudassar, Vin, e Natu (2012) realizaram um estudo que tinha como objetivo simplificar os níveis de serviço nas infraestruturas de sistemas de informação, encontrando o nível de resolução correto para cada ticket, reduzindo o tempo, os esforços e os custos para a gestão dos tickets, sem afetar as cargas de trabalho e a satisfação do utilizador. Assim, realizaram uma pesquisa de algoritmos baseados em estatística para identificar problemas adequados para o right-shift, que é o envio de um ticket de um grupo de resolução com um nível mais baixo de conhecimento para um grupo de resolução com um nível mais alto (o ticket move-se para baixo na estrutura da service desk, e para identificar o left-ship, que é o oposto do primeiro. Tais mudanças podem ocorrer devido a vários motivos. No que diz respeito aos algoritmos para identificar esses shifts, em inúmeros datasets analisados, obtiveram maioritariamente right-shift candidates. Repararam que os resultados obtidos por esses algoritmos estatísticos mudam substancialmente variando a ℎ0 (hipótese nula). Contudo, descobriram que valores de 0,60 e 0,75 dão frequentemente resultados satisfatórios. Os impactos previstos dependem do valor de α, que os utilizadores definem como 0.20, 0.25 ou 0,50. Valores mais altos reduzem os benefícios previstos. A investigação levada a cabo pelos autores revelou muita das razões que podiam estar na fonte dos shifts. Deduziram que uma das razões podia estar relacionada com a própria dificuldade do nível de resolução tickets,
53 pois existe um escalonamento na estrutura da service desk quando um grupo de resolução não consegue lidar com o problema. Outra razão pode estar relaciona com questões administrativas que, por serem consideravelmente mais baratas, contratam pessoal com valências em TI duvidosas ou menos experiente, o que acaba, no futuro, por se traduzir num aumento de shifts, e haverão diferenças no escalonamento dos tickets devido à diferença do tempo de resolução que uma equipa mais experiente tem, comparando com uma equipa menos experiente. 3.5.6 SYMIAN: Analysis and Performance Improvement of the IT Incident Management Process Claudio Bartolini, Cesare Stefanelli e Mauro Tortonesi (2010) estudaram de que forma se pode otimizar do desempenho da organização de um departamento de TI de uma organização, dado que é tarefa complexa que requer tecnologias de suporte à decisão. Para tal, estudaram uma ferramenta utilizada para a análise do desempenho e otimização do incident management function num departamento de TI. O SYMIAN, explora um event simulador que, como o nome indica, simula o comportamento destes departamentos para avaliar o seu desempenho no que à gestão de incidentes diz respeito. Assim, permite aos utilizadores especificar, incrementalmente, o conjunto de mudanças que desejam ver aplicadas à organização para definir uma configuração organizacional alternativa, que será testada em conjunto com algumas métricas de desempenho. Por outras palavras, permite modificações ao nível da organização dos grupos de resolução, poendo haver combinação dos mesmos e incident routing. O SYMIAN divide os incidentes em várias categorias, de acordo com a quantidade de trabalho necessária para repor o serviço a cada nível de suporte. Todas as categorias de incidentes estão divididas em vários níveis de gravidade, com um aumento do tempo médio para o incident closure ou o escalonamento para um nível de support group mais elevado. Ao grupo de atributos categoria e gravidade, são lhes atribuídos aleatoriamente uma distribuição de probabilidade, que permite a configuração da quantidade necessária de trabalho para cada incidente. Na investigação dos autores, pretendem maximizar a média de incidentes fechados diariamente, bem como minimizar a média do tempo de resolução do incidente. Para isso, é avaliado a gestão de incidentes de uma empresa fictícia, ‘INCS’R’US’, composta por 3 níveis de suporte (0-2), 31 grupos de suporte e resolução de incidentes e 348 operadores. Os 31
54 grupos são divididos tendo em conta o turno (work shift) dos operadores. O incident routing nesta organização fictícia é assumido como sendo unidirecional, ou seja, os support groups de nível N só podem receber incidentes de support groups de nível N-1, sendo que só podem subir de nível quando é para dar suporte a grupos de nível N+1. Existem 4 categorias de incidentes (A-D) e 3 níveis de gravidade (1-3). Duas experiências (simulações) foram realizadas. Após a primeira simulação, foram realizadas alterações sugeridas pela ferramenta para melhorar o desempenho da organização, tais como a transferência de 8 operadores do nível HelpDesk (nível 0) para dar suporte a 4 grupos do nível 1, mais a mudança de 3 operadores de um grupo de nível 1 para outro de nível 2, e a transferência de 2 operadores entre grupos de nível 2. Na segunda simulação, os resultados mostrarem que a realocação dos operadores foi essencial para melhorar o desempenho do sistema como um todo. A organização da empresa fictícia ‘INCS’R’US’ teve uma melhoria de 10.5% no que diz respeito à média de incidentes diários resolvidos e uma diminuição do tempo médio de resolução. Apesar de ser uma empresa fictícia, o caso de estudo foi projetado para representar a complexidade organizacional de empresas reais. Com este estudo, os autores conseguiram demonstrar a eficácia do SYMIAN para a otimização do desempenho da gestão de incidentes nas organizações e no respetivo suporte às TI. 3.5.7 Relação entre estudos analisados Este ponto tem como intuito demonstrar os inúmeros procedimentos realizados nos related works enunciados, verificando a consistência e validade dos mesmos, expondo que semelhanças a nível de estudos, processos e métodos se encontram entre os mesmos. Assim, serão enunciados os métodos estudados, expondo a sua preferência e/ou eficiência avaliada numa escala entre 1 e 5, sendo que o 5 representa o valor mais eficiente e 1 o valor menos eficiente. É possível, também, encontrar na tabela 4 alguns cenários que foram recorrentes nos estudos analisados, sendo eles respeitantes à consideração de processamento textual, assim como a inserção de alguns atributos adicionais, para além do atributo relativo à variável textual (como a categoria do ticket, neste caso, ou prioridade), analisando a relevância que estes passos possam ter tido no aumento do desempenho dos modelos, numa escala de 1 a 5, sendo o 5 muito relevante e o 1 muito pouco relevante. Na tabela 4 é possível verificar algumas dessas semelhanças:
55 Tabela 4 - Modelos e Procedimentos adotados no Related Works Modelos Preferência/eficiência (1-5) Procedimentos Relevância (1-5) Support Vector Machines 5 1. Processamento textual quase nulo 2 Multinomial Naive Bayes 4 K-Nearest Neighbours 3 1 + 2. Com processamento textual 3 Decision Trees 4 DecisionTable (Rule-Based) 2 2 + 3. Term Frequency-Inverse Document Frequency 4 Sequential Minimal Optimization (SMO, SVMbased) 3 StringToWordVector VSM 3 3 + 4. Inserção novos atributos 5 Softmax Regression Neural Network (SNN) 4 Analisando a tabela 4, é possível afirmar que foram vários os modelos estudados pelos autores das mais variadas investigações no ramo do text mining, classificação de texto e, em especial, da classificação de tickets. De todos os estudos analisados, dão destaque aos Support Vector Machines, atingindo muito bons resultados nos cenários testados. Dos modelos convencionais mais conhecidos, deram bons resultados os modelos Multinomial Naive Bayes e o Deciosn Trees. Não menos importante de referir, os resultados foram escalando à medida que se foram implementando algumas técnicas de processamento e de representação textual. Assim, dão enfâse na remoção de stopwords e na técnica de Term Frequency – Inverse Document Frequency incluída na Feature Extraction, passos a serem referenciados num ponto mais avançado deste documento. Assim, é importante reter para a execução deste trabalho que a etapa do processamento textual deve incluir, pelo menos, estes dois passos destacados, sendo fulcral, pelo menos, incluir dois dos modelos referenciados de modo a dar consistência aos estudos apresentados pela comunidade científica. Relativamente aos modelos, ter-se á em consideração alguns mencionados nesta revisão literária, sendo eles o SVM, MNB e KNN, mas irão se acrescentar os modelos Random Forest, Logistic Regression e o Stochastic Gradient Descent Classifier.
56 4. METODOLOGIA - COMPONENTE PRÁTICA 4.1 Contextualização Neste ponto, irão ser detalhadas todas as fases da metodologia selecionada, CRISP-DM, inseridas num projeto de classificação de texto. A primeira fase, relativa à compreensão do negócio, irá se justificar a necessidade e/ou as vantagens de se estudar um tópico relacionado com classificação textual num mundo de trabalho onde se prestam serviços de suporte a Tecnologias de Informação. Na segunda fase, é importante compreender os dados adquiridos, assim qual a facção dos mesmos que serão fulcrais para a análise efetuar. Não menos importante, serão escrutinados todos os passos de processamento dos mesmos que se considerem essenciais. No quarto ponto, modelação, os modelos serão construídos, onde serão realizadas algumas previsões. Por último, será determinado qual o modelo que obteve melhores resultados num leque de cenários experimentais, através da comparação de um conjunto de métricas já referenciadas neste documento. 4.2 Compreensão do Negócio Atualmente, a maior parte das organizações dispõe de uma plataforma onde os seus colaboradores podem reportar os mais variados incidentes relacionados com fatores tecnológicos, categorizando-os inúmeras vezes, de forma errada, ainda que por vezes a descrição textual seja clara em relação ao problema real. Ao receberem notificação do ticket, por norma, os técnicos selecionam os incidentes a resolver pela categoria definida pelo colaborador. Contudo, ao analisarem a descrição, percebem que a categoria não coincide com a descrição detalhada. Com este tipo de circunstãncias, para além de dificultar o trabalho dos support agents, o tempo de resolução aumenta, o que não é benéfico para a organização. Atribuir uma categoria, neste caso, a um support agent, ao ticket que acaba de ser criado e registado no sistema Reduzir o workflow com a ‘triagem’ sugerida pela classificação Automatizar o processo de resolução de incidentes da organização Diminuição de tempo/custos Figura 5 - Sistema de Classificação de Tickets ideal
57 Para tal, após um conjunto de processos, é necessário identificar quais as melhores técnicas de processamento de texto a realizar, assim como aferir quais os modelos de machine learning que melhor contribuem para a classificação do texto, sendo esta a finalidade máxima do projeto. Estes passos encontram-se resumidos na Figura 5. 4.3 Compreensão e Preparação dos Dados Nesta secção, serão discutidos alguns pontos importantes para a compreensão dos dados, com uma descrição detalhada dos dados fornecidos e usados para o projeto, assim como todo o pré-processaamento efetuado aos mesmos, desde a sua limpeza, remoção de caracteres especiais, números e todos os restantes passos a serem enunciados para que no fim, os dados apresentem um formato que possa ser consumido pelas ténicas de classificação. Para a realização deste projeto, foi fornecido pela equipa de Tecnologias de Informação da empresa onde o autor desta dissertação realizou seu estágio profiisional, um dataset com 8837 linhas e 12 colunas, sendo que cada linha diz respeito a um ticket, num volume total de 5.3 MB, contendo uma quantidade significativa de informação dos tickets registados desde março de 2018 até fevereiro de 2020. É importante analisar e descrever cada coluna de modo a ser percetível a sua relevância para os processos que se seguem, pois nem todas têm tanta importância para a classificação desejada. Cada ticket registado tem duas datas, a de criação e a data da última atualização do estado do ticket que, por norma, é o de conlcusão. De seguida, tem como atributo a prioridade definida em 5 níveis, o estado de resolução do incident ticket dividio em 6 níveis, a fonte através da qual o ticket foi registado, o colaborador que registou o incidente e o técnico que o resolveu, o departamento e o edifício de onde o ticket foi concebido e dois atributos que vão ser convergidos em um, sendo eles o assunto e a descrição textual do ticket, onde o primeiro é uma descrição sucinta do segundo, onde o incidente é detalhado ao promenor. Por fim, existem duas colunas relativas ao tipo do ticket, definido em 9 categorias, e ao sub-tipo de ticket, definido em 31 categorias. Na tabela 5 abaixo representada, estão identificados o período dos registos por idioma e respetivo número de incident tickets registados.
58 Tabela 5 - Distribuição de tickets por dataset, tendo em conta o período Dataset por Idioma Período de registos Número de tickets registados Dataset Português 12/03/2018-12/02/2020 4881 Dataset Castelhano 13/03/2018-12/02/2020 1620 Dataset Inglês 04/05/2018-11/02/2020 930 Tendo em conta que organização tem departamentos em vários pontos do globo, foram identificados três idiomas nas descrições dos tickets. De modo a dividir os datasets por idioma, foram aplicados três métodos diferentes de deteção de texto para que a segregação fosse o mais precisa possível. Posto isto, existem três datasets, um em português, um em castelhano e outro em inglês. É importante ter em conta que alguns support agents apenas dão suporte técnico a colaboradores que reportam os incidentes numa determinada linguagem e existem outros que já não se encontram em funções na organização, fator que irá influenciar algumas transformações adicionais nos datasets. No que concerne aos agentes informáticos, os principais estão situados em Portugal, correspondendo a um grupo de 6 profissionais, sendo eles o “Agente1”, “Agente2”, “Agente3”, “Agente4”, “Agente5”, “Agente6”, sendo o primeiro o mais antigo e o sexto o mais jovem da equipa. Todos estes enunciados dão suporte a toda a organização, independentemente do idioma. Contudo, existem alguns técnicos que apenas dão suporte a um idioma especídico, no caso do idioma inglês, onde o técnico “Agente7” e “Agente8” somente atuam. Na tabela 6, é possível verificar as remoções de técnicos ocorridas em cada dataset: Tabela 6 - Distribuição de Agentes Informáticos por Dataset Support Agent Ocorrência por Dataset A ser removido por cessão de funções ou por não ser relevante “Agente6” Português,Castelhano Não “Agente9” Inglês Sim “Agente10” Português,Castelhano,Inglês Sim “Agente11” Inglês Sim
65 Figura 11 - Distribuição de Tickets por Agente Informático – Castelhano Existe uma ligação entre o técnico “Agente1” e o tipo de ticket SAP, dado que o mesmo é o responsável pela resolução da maioria dos tickets dessa índole. Mais uma vez, este técnico elevou-se perante os outros, apresentando uma distribuição avultada. Para este dataset, assim como para o dataset com o idioma inglês, dada a sua quantidade de incidências mais reduzida, o oversampling não será tão significativo como com o dataset com idioma português, sendo interessante analisar o comportamente das classes (agentes) maioritárias. 4.3.3 Dataset Idioma Inglês Este dataset têm um volume total de cerca de 0.6 MB, com 930 linhas e 12 colunas. No fundo, este conjunto de dados representa todos os tickets registados no período enunciado em departamentos localizados seja no Reino Unido ou na India. Relativamente aos support agents, foram novamente removidos os mesmos dois técnicos que nos datasets anteriores, mas estão presentes mais dois técnicos que não constam nos datasets relativos ao idioma português e castelhano por se tratarem de colaboradores que dão suporte somente no Reino Unido e na Índia. Nas figuras 12 e 13 a seguir, estão representadas a ocorrência de tickets por tipo de ticket e o número de ocorrências por cada técnico.
66 Figura 12 – Distribuição de Tickets por Tipo de Ticket – Inglês Neste dataset, o tipo de ticket mais relevante é, mais uma vez, o IT General Support. Não menos importante de referir, há um tipo de ticket, ainda que em quantidades reduzidas, nunca foi reportado nos datasets anteriores, sendo ele o Navision. Figura 13 – Distribuição de Tickets por Agente Informático – Inglês
67 Analisando a figura 13, constata-se que existem dois ténicos que apenas surgem neste dataset, sendo eles o “Agente7” e o “Agente8” que resolvem tickets sejam eles criados no Reino Unido ou na Índia. 4.3.4 Processamento dos dados Neste ponto, serão referidas todas as transformações efetuadas aos dados. Para a manipulação dos mesmos, foram utilizadas duas linguagens de Data Science, R e Python, sendo que para a primeira especificada trabalhou-se com a versão 4.0.0 e para a segunda com a versão 3.7.6, tendo em conta que existe muita documentação online e por serem recomendadas por muitos investigadores para projetos desta índole. No que concerne a uma análise precoce e arcaica aos dados, assim como o processo de deteção de linguagem para a eventual divisão do dataset por idioma, assim como algumas transformações adicionais tais como a remoção de técnicos não relevantes, a linguagem R tornou-se muito intuitiva para a realização destas tarefas iniciais. Para a fase da modelação foi utilizada uma biblioteca própria para a modelação dos dados, scikit-learn, que fornece inúmeros algoritmos de machine learning supervisionados e não supervisionados, contribuindo com muitos métodos auxiliares como a cross validation e feature selection. Primeiramente, abriu-se o ambiente de trabalho próprio para a linguagem R, RStudio, onde se importou o ficheiro com toda a informação dos tickets disponibilizados. De seguida, estarão enunciados um conjunto de passos efetuados respeitantes ao processamento dos dados. Convergir colunas O primeiro passo do processamento dos dados diz respeito à união das colunas subject e note transformando-as numa nova coluna denominada de texto. Tendo em conta que são descrições textuais do incident ticket e dado que se irá realizar uma verificação dos termos presentes em cada ticket, é ideal existir apenas um atributo referente à descrição do incidente. Este primeiro passo pode ser observado na figura 14. Figura 14 - União das colunas Subject e note
68 Remoção de Técnicos não relevantes O segundo passo da manipulação dos dados, tem como finalidade a remoção dos registos atribuídos a agentes que não se encontram em funções na organização. Tendo em conta que a target a ser prevista é, por si só, o support agent, faz todo o sentido este passo ser considerado antes da divisão do dataset por idioma. Este passo pode ser analisado na figura 15. Figura 15 - Remoção de Agentes Informáticos não relevantes Em baixo na figura 16, estão representadas a versão antes e depois da remoção dos agentes não relevantes para a classificação, verificando-se uma diminuição drástica dessas mesmas versões (por motivos de confidencialidade, as imagens alusivas à remoção dos técnicos de informática encontram-se desfocadas). Figura 16 - Constituição de Agentes Informáticos antes e depois da remoção efetuada
69 Deteção de idioma e divisão do dataset Para a deteção de idioma, foram importados três packages em R, sendo eles o cld2, cld3 e textcat de modo a que a eventual deteção de idioma fosse o mais precisa possível. O primeiro package, tem como base um Naive Bayesian classifier, o segundo, utiliza um modelo de rede neuronal para a identificação da linguagem. Por último, o package texcat recorre a ngram text categorization para identificação do idioma. Após este processo, conclui-se que que o algoritmo de deteção do cld2 obteve melhores resultados. Por fim, realizou-se a divisão do dataset em 3 novos datasets por idioma. Remover valores nulos Ao analisar o dataset, foram encontrados alguns campos com valores Na (nulos) na coluna do texto que certamente teriam de ser removidos já que não contém termos a ser processados. A remoção destes valores está representada na figura 17. Figura 17 - Remoção de valores nulos Selecionar colunas importantes para a classificação Como mencionado anteriormente, apenas algumas colunas serão consideradas essenciais para a classificação a realizar, sendo as mesmas a categoria, neste caso o support agent e a descrição textual do incidente ticket. Este passo pode ser observado na figura 18. Figura 18 - Seleção de colunas essenciais
70 Random Oversampling Tendo em conta que alguns algoritmos de machine learning não lidam bem com unbalanced data, foi tomada a decisão de se multiplicar registos de agentes com pouca ocorrência no dataset, de modo a obter uma distribuição equilibrada. Esta multiplicação, no caso do dataset com idioma português, por exemplo, pode ser observada na figura 19. Figura 19 - Random Oversampling Na figura 20 abaixo, pode-se verificar o resultado deste processo. Figura 20 - Distribuição de tickets por Agente Informático após Random Sampling
71 Codificação categórica Nesta fase, atribui-se uma label numérica, a cada support agent, sendo que se trata de uma variável de texto categórica (string), pois a mesma será necessária para um método estatístico denominado chi-square, já referenciado, que será mencionado noutra fase deste processamento, sendo um dos seus parâmetros. Está, assim, representada na figura 21, a codificação categórica. Figura 21 - Codificação do atributo relativo ao Agente Informático 4.3.5 Processamento do texto A maior parte dos algoritmos de machine learning, nomeadamente os que irão ser implementados neste projeto, necessitam que os dados textuais sejam convertidos num formato vetorial de tamanho fixo, isto é, os classificadores estão à espera de vetores de features numéricas, pois só assim será possível que os mesmos os possam consumir, daí o passo específico de manipulação do texto ser tão importante, para que a implementação dos algoritmos de machine learning seja concebida. De forma resumida, este ponto que visa alterar a forma como o texto é representado para que a sua gestão em todo o processo de classificação de texto seja facilitada e, diga-se, possível. Este processo é essencial para remover conteúdo do texto que não irá acrescentar matéria programável para a classificação, o que facilitará o trabalho dos métodos de classificação. Assim, ‘estão em cima da mesa’ algumas abordagens a ter em conta para extrair as melhores features do texto. Uma das soluções seria optar pelo modelo, já referenciado nesta dissertação, da Bag-of-Words (BOW) que, neste caso, ao analisar cada incident ticket, tinha em consideração a presença (diferente de frequência) de cada palavra presente no texto, ignorando a ordem em que ocorrem. Contudo, as abordagens selecionadas foram a Term Frequency (TF) e Inverse Document Frequency (IDF), já definidas neste mesmo documento. Para tal, será usada uma biblioteca indicada para machine learning tasks, scikit-learn,
72 anteriormente citada, com a componente sklearn.feature_extraction.text.TfidfVectorizer para estimar, como o nome sugere, essa mesma representação vetorial da TF-IDF para cada descrição textual dos tickets. Para tal, é necessário recorrer a um conjunto de mecanismos que removam conteúdo desnecessário do texto. De seguida, estão representados alguns dos processos realizados para efetuar uma limpeza geral os dados. 1. Remover HTML tags Tendo em conta que, após uma análise aos dados e ao campo específico da descrição detalhada do ticket, ficou clara a existência de algumas tags HTML. Sendo que não representam nenhum contributo para a classificação, decidiu-se optar pela sua remoção. 2. Converter para minúsculas De modo a que o texto processado seja considerado uniforme, todas as palavras foram convertidas para minúsculas. 3. Remover caracteres especiais e pontuação Alguns tickets apresentam uma quantidade elevada de caracteres especiais, quer por engano do colaborador, ou porque deduzem que os mesmos ajudariam na compreensão do sentido do texto. Contudo, para a análise pretendida, os mesmos serão removidos, assim como toda a pontuação encontrada. Um ponto importante de referir é que esta remoção é executada com a substituição dos caracteres especiais e pontuação por espaços em brancos, porque ao remover estes símbolos, algumas palavras ficavam juntas, por exemplo, a frase “trocar PC. Agendar para amanhã”, ao remover o ponto final, a frase tornar-se-á a “trocar PCAgendar para amanhã”, sendo que é imperativo substituir por espaço em branco para que o próximo passo do processamento resolva de vez esta situação. 4. Remover espaços em branco Este passo é essencial na medida em que as palavras serão analisadas uma a uma, sendo que um espaço em branco pode ser considerado uma palavra e como não tem importância significativa, é imperativo removê-los. 5. Remover stopwords Como referido já nesta dissertação, as stopwords são palavras que não apresentam nenhuma relevância para a análise pretendida. Pode tratar-se de palavras como “de”, “o”,
73 “a”, entre outras (preposições, artigos), que ocorrem com muita frequência nas descrições os tickets. Sendo assim, as mesmas serão removidas. 6. Stemming Este passo refere-se ao processo de reduzir uma palavra à sua raíz. No caso da palavra “amigo”, a mesma seria reduzida a “amig”. 7. Tokenization Este processo diz respeito à fase de dividir um texto num conjunto de tokens, neste caso, cada palavra desse texto representaria um token 8. TfidfVectorizer Neste passo, todos os textos são convertidos numa matriz de TF-IDF features. O que diferencia este processo do CountVectorizer é que este úlitmo considera o número de vezes que uma palavra ocorre num documento, já o TfidfVectorizer tem em atenção o peso geral de uma palavra num documento. Através da contagem de ocorrências de uma palavra num documento, ele calcula o peso de cada palavra, facilitando na análise de palavras com frequências similares. Assim, é conveniente detalhar os parâmetros definidos no método especificado, sklearn.feature_extraction.text.TfidfVectorizer: • sublinear_tf: causa um aumento logarítmico no score da tfidf em comparação com a frequência de um termo específico. Surge na problemática de que, por exemplo, existem 15 ocorrências de um termo num texto, mas isso não quer dizer que não sejam 15 vezes mais importantes que 1 ocorrência desse termo. Neste caso, este parâmetro é definido como True para usar essa forma logarítmica. • min_df: ao construir um vocabulário, ignora os termos que tem uma TF estritamente inferior ao limite fornecido. Neste caso, este parâmetro foi fornecido como 5, ou seja, uma palavra precisa de estar pelo menos em 5 descrições textuais de um ticket para ser considerada. • norm: de modo a reduzir o enviesamento do comprimento do documento, este parâmetro de normalização é utilizado ao passo que a score da tfidf de cada termo escala de modo proporcional, tendo como base a score total desse documento. Este
74 parâmetro foi definido como l2 de modo a assegurar que as representações vetoriais das features tenham uma norma euclidiana de 1. • ngram_range: este parâmetro representa os limites inferior e superior do intervalo de valores n para diferentes n_grams a serem extraídos do texto. Os valores de n a serem usados estão compreendidos entre 𝑚𝑖𝑛_𝑛 ≤𝑛 ≤max_𝑛. Exemplificando, um ngram_range de (1,1) representa unigrams, (1,2) representa unigrams e bigrams e (2,2) apenas são considerados bigrams. No caso específico deste projeto, especifíca-se tanto unigrams e bigrams, logo especifíca-se (1,2). • stopwords: definido como português, castelhano ou inglês, dependendo do dataset que se está a processar. Nas figuras 22, 23 e 24, é possível verificar a diferença do texto em alguns exemplos, antes e depois do tratamento do mesmo nos 3 diferentes datasets. Figura 22 - Exemplo dataset portugues Figura 23 - Exemplo dataset castelhano Figura 24 - Exemplo dataset inglês
81 Tabela 10 - Cenários considerados Cenário (C) Variação N-gram C1 Unigrams+Bigrams+Stopwords+Stemming-Oversampling C2 Oversampling+Unigrams+Bigrams+Stopwords+Stemming C3 Oversampling+Unigrams+Bigrams+Stopwords C4 Oversampling+Unigrams+Bigrams C5 Oversampling+Stopwords+Unigrams C6 Oversampling+Stopwords+Bigrams Primeiramente, foi implementado o método k-fold cross validation explicado na revisão literária, sendo que o mesmo permite dividir o dataset em k partes, sendo que k-1 partes são usadas para train e a parte restante para test, repetindo até k vezes estarem concluídas. A biblioteca scikit-learn oferece uma função própria para cross-validarion, onde foi definido que as partes (folds) a ser dividido seriam k= 5. Tenda em conta os algortimos padrão especificados pelos trabalhos relatados neste documento, assim como aqueles idolatrados pela comunidade científica e académica como os que mais se adequam para projetos de calssificação de texto, foi decidido realizar uma comparação de desempenho entre os seguintes métodos de classificação: Random Forest Classifier, Linear Support Vector Machine, MultinomialNB, Logistic Regression, K-Neighbours Classifier e Stochastic Gradient Descent Classifier. Convém enunciar os tipos de métodos SVM que a biblioteca scikit-learn providencia, sendo que se irão usar dois tipos diferente, sendo eles o LinearSVC e o SGDClassifier: • LinearSVC • SGDClassifier • SVC
82 • NuSVC Figura 29 - Algoritmos selecionados Na figura 29 é possível verificar a definição e respetiva configuração de cada modelo a ser testado. Com uma 5 fold cross-validation, será possível obter o desempenho para cada modelo. O objetivo passa por escolher um modelo com a melhor precisão para a eventual previsão em analises futuras. Seguidamente, irão ser comparadas as accuracies da cross validation efetuada e das previsões, eventualmente, realizadas, sendo que o algoritmo que apresente melhores resultados será tido em conta para a construção do modelo. Cada modelo de machine learning precisa de ser parametrizado para que o seu comportamento possa ser ajustado a um determinado problema. Será, assim, preciso definer os parâmetros específicos para cada modelo. Na tabela 11 abaixo, é possível verificar as configurações selecionadas para cada algoritmo:
83 Tabela 11 - Parametrização efetuada Algoritmo Configurações Valor Random Forest • N_estimators (número de árvores de decisão em cada ‘forest’) 200 • Criterion (função que mede a qualidade da divisão) gini • max_depth (Máxima profundidade de cada árvore) 3 • random_state 0 LinearSVC • loss (função de perda) squared_hinge • multi_class (determina a estratégia multi-class) ovr • max_iter (Número máximo de iterações) 1000 • Kernel (tipo de kernel) rbf Multinomial Naive Bayes • Alpha 1.0 • Fit_prior (Define a existência ou não da aprendizagem das probabilidades da classe) true • Class_prior (Probabilidades da classe) Nenhuma Logistic Regression • random_state 0 • penalty (especifica a norma usada para penalização) l2 • max_iter 200 KNN • n_neighbors (Define o número de ‘vizinhos’) 5 • weights (função de peso a usar na previsão) Uniforme SGDC • max_iter 100 • penalty l2 • loss squared_hinge Após a seleçao do modelo ideal, é hora de avaliar as previsões efetuadas, assim como as métricas definidas para análise. Assim, para serem considerados modelos viáveis, foram estipulados alguns critérios, tendo em conta o conhecimento existente da temática de text mining e text classification, sendo eles: • A Acuidade/Accuracy tem de ser superior a 80%; • A Precisão/Precision tem de ser superior a 75%;
84 • A Sensibilidade/Recall tem de ser superior a 80%; • A Taxa de erro não deverá ultrapassar o valor de 20%. Independentemente dos resultados, é importante referir que quanto maior a acuidade, melhor, sendo que estamos num projeto que tem como intuito comparar o desempenho enrte os diferentes modelos utilizados, sendo que mesmo que não atinjam os limites considerados, haverá na mesma a suposta comparação. 4.5 Avaliação Nesta secção, irão ser apresentados e discutidos os resultados obtidos nos testes especificados na fase anterior. Inicialmente, irá se apresentar os resultados obtidos em todos os cenários no dataset com idioma português onde, numa primeira parte, será representado o desempenho de cada algoritmo em cada cenário após a cross-validation no momento da seleção do modelo ideal. De seguida, serão avaliados todos os resultados das previsões do modelo ou modelos selecionados (os que apresentem melhores resultados) para as mesmas, através da análise de matrizes de confusão e das métricas anteriormente enunciadas (precisão, sensibilidadel, f-score). Numa segunda parte, irão ser apresentados os resultados do dataset com idioma castelhano e inglês que apenas vivenciaram um cenário. 4.5.1 Dataset Português Na tabela 12 estão representadas as acuidades obtidas de cada modelo selecionado na cross-validation. Tabela 12 - Acuidade e Desvio Padrão obtidos em cada cenário Acuidade Média Desvio Padrão Cenário Algoritmo C1 C2 C3 C4 C5 C6 C1 C2 C3 C4 C5 C6 KNN 58,21% 81,5% 81,26% 81,16% 80,85% 83,11% 4,67 6,92 6,99 7,3 5,99 2,98 LinearSVC 65,09% 97,35% 97,51% 97,6% 94,17% 90,57% 4,01 0,41 0,98 0,35 0,65 0,91 LR 65,73% 91,73% 92,21% 92,55% 88,95% 87,48% 4,64 0,49 0,52 0,45 0,55 0,98 MNB 63,35% 86,48% 87,35% 87,63% 82,44% 83,21% 3,7 0,36 0,39 0,38 0,78 0,52 RF 40,51% 29,36% 29,94% 29,96% 30,51% 27,81% 2,8 1,05 1,47 1,28 1,23 0,8 SGDC 65,32% 92,74% 93,14% 93,46% 89,18% 87,21% 4,56 0,61 0,46 0,36 0,59 1,04
85 Como se pode constatar na tabela 12, o Linear Vector Support Classifier obteve um melhor desempenho em relação aos restantes, tendo os modelos Logistic Regression e Stochastic Gradient Descent Classifier obtido resultados interessantes. Esta análise, verificase, no geral, igual para todos os cenários, excetuando o primeiro. De modo a manter um equilíbrio entre o número de processos standard alusivos ao processamento de texto utilizados e a acuidade obtida, decidiu-se ter em consideração o cenário 3 (C3) que corresponde a este meio termo. A acuidade media do desempenho obtido pelos modelos selecionados na crossvalidation, tendo em consideração k=5, sobre os dados destinados ao train, pode ser analisada na figura 30. Figura 30 - Acuidade de cada modelo após Cross-Validation Analisando a figura 30, fica claro a diferença do algoritmo Random Forest para os restantes que obtiveram resultados relativamente semelhantes. Está, a título de
86 exemplificação, na figura 31, a representação dos diagramas de extremos e quartis, alusivo ao desempenho obtido pelos modelos na cross-validation no Cenário 3 (C3). Através da figura 31, assim como o diagrama que a mesma representa, é possível cimentar o melhor desempenho obtido pelo LinearSVC. 4.5.2 Efetuar Previsões Após a análise anterior, é necessário avaliar as previsões efetuadas por cada modelo, no cenário C3. Para isso, 67% do conjunto de dados foi utilizado para train e os restantes 33% utilizados para test. Seguindo as normas padronizadas de projetos de data-mining, o conjunto de dados destinados para train serão, por ventura, trabalhados e ‘treinados’, sendo que os dados destinados para test serão usados para aferir o desempenho dos modelos. O próximo passo diz respeito ao fit dos dados usados para train aos modelos. A partir deste momento, pode-se obter várias métricas, sendo a primeira a matriz de confusão, onde será possível, pela sua finalidade natural, observer o número de categorias corretamente e incorretamente previstas, tentando perceber as suas diferenças. Não menos importante, métricas como a precisão, sensibilidade e f1-score, anteriormente referenciadas e detalhadas, também serão obtidas após este processo. De seguida, estão representados, para cada modelo, os resultados do precesso de modelação. Figura 31 - Diagrama de Extremos e Quartis (C3)
87 Tabela 13 - Métricas de Avaliação dos Modelos Precisão Sensibilidade F1-Score Support Erro Acuidade Tempo(s) LinearSVC 93,06% 93,12% 93,08% 5137 6,87% 93,12% 1.1702 LR 88,63% 88,65% 88,57% 5137 11,34% 88,65% 51.54 SGDC 89,87% 90,01% 89,93% 5137 9,9% 90,01% 21.3412 MNB 85,36% 85,03% 84,81% 5137 14,96% 85,03% 0.4999 KNN 81,58% 63,42% 64,32% 5137 36,57% 63,42% 46.16 RF 68,95% 29,21% 20,38% 5137 70,78% 29,21% 13.04 Relativamente aos resultados obtidos em cada modelo após o processo de modelação, é claro, a partir da tablela 13, que os dois modelos semelhantes, LinearSVC e SGDC, apresentam os melhores resultados, 93,12% e 90,01% de acuidade, respetivamente. Contudo, o tempo de modelação do SGDC foi bastante maior, vencendo assim, claramente perante os outros, o LinearSVC. Isto deve-se ao facto do LinearSVC tentar encontrar o hiper-plano, que pode ser considerada uma linha que separa melhor as classes, maximizando a margem ou distância entre os pontos mais próximos das diferentes classes. Olhando para o modelo LR e MNB, os dois não diferem muito no que diz respeito aos resultados, obtendo 88,65% e 85,03% de acuidade, respetivamente, mas o MNB é o que consome menos tempo dos modelos todos, sendo um fator muito positivo no que toca à temática de poupar tempo e recursos. Esta situação deve-se ao facto de o MNB considerar que cada feature/palavra é condicionalmente independente, separando a ocorrência de cada palavra em si da ocorrência das outras palavras num determinado ticket, o que se torna computacionalmente mais rápido. Observando o desempenho do modelo RF, percebemos que apresenta uma diferença significativa entre a precisão obtida e as restantes métricas, o que significa que a probabilidade de atribuir um novo incident ticket a uma classe que se apresente como maioritária, ainda que por uma diferença substancial, pois efetuou-se um oversampling nas classes minoritárias, é enorme, o que demonstra que o RF se revelou péssimo para este tipo de classificação textual. Seguindo-se com o melhor modelo neste cenário, temos representada na figura 32 a matriz de consufão normalizada do LinearSVC:
88 Figura 32 - Matriz de Confusão LinearSVC Como podemos observar, as linhas diagonais representam a percentagem de vezes com que as categorias reais foram previstas corretamente e, como podemos analisar, as previsões certeiras superam, na maior parte delas, os 90%. Não menos importante, categorias como o “Agente6”, o “Agente3” e o “Agente5” que inicialmente eram categorias minoritários, sofreram um oversampling mais elevado que as restantes, o que significa que a feature space é muito consistente, o que se reflete na elevada percentagem nestas classes neste modelo. 4.5.3 Dataset Castelhano e Inglês Nesta fase, é importante realçar que para estes dois datasets, apenas se considerou um cenário, o cenário 1 (C1). Tabela 14 - Acuidade e Desvio Padrão no Dataset Castelhano e Inglês Métrica LinearSVC MNB LR RF KNN SGDC Castelhano Acuidade Média 82,67% 81,04% 82,1% 78,97% 80,1% 81,35 Desvio Padrão 1 1,4 1,4 0,03 1,1 1,9 Inglês Acuidade Média 80,16% 78,39% 78,51% 57,56% 77,09% 77,19 Desvio Padrão 4,65 2,68 3,25 0,51 77,19 3,5
89 Analisando a tabela 14, é possível verificar que o Linear SVC obteve, novamente, melhores resultados. No geral, comparando com o dataset português, é de rápida perceção que o tamanho da amostra a analisar teve grande influência na acuidade obtida, apresentando um ligeiro decréscimo. Seguindo a lógica da apresentação de resultados efetuada no dataset português, serão apresentados os resultados obtidos nestes dois datasets na tabela 15. Tabela 15 - Métricas Dataset Castelhano e Inglês Algoritmo Precisão Sensibilidade F1-score Acuidade Taxa Erro Tempo(s) Castelhano LinearSVC 79,17% 81,93% 78,77% 81,93% 18,06% 2,19 MNB 71,20% 80,03% 75,26% 80,03% 19,96% 0,69 LR 71,30% 80,6% 74,71% 80,6% 19,39% 29,98 RF 61,35% 78,32% 68,8% 78,32% 21,67% 53,36 KNN 78,99% 81,17% 76,81% 81,17% 18,82% 28,68 SGDC 77,75% 80,41% 78,76% 80,41% 19,58% 24,88 Inglês LinearSVC 82,12% 83,72% 82,26% 83,72% 16,27% 1,19 MNB 78,29% 77,4% 74,17% 77,4% 22,59% 0,79 LR 79,10% 78,4% 75,52% 78,4% 21,59% 17,68 RF 41,77% 57,14% 42,76% 57,14% 42,85% 46,47 KNN 77,60% 79,06% 78,17% 79,06% 20,93% 8,7 SGDC 80,46% 81,72% 81,03% 81,72% 18,27% 10,2 4.6 Discussão Neste ponto, serão discutidos os resultados obtidos, esmiuçando as potênciais causas de um bom ou mau desempenho registado nos mais diversos métodos estudados, explicando os resultados em cada cenário nos 3 diferentes datasets, apresentando as respetivas conclusões no que ao melhor método diz respeito. 4.6.1 Dataset Português Com as matrizes de confusão, é possível comparar as vezes que uma categoria foi prevista correta e incorretamente. Como se observa na matriz apresentada, o eixo y representa o valor real, sendo que o eixo x representa o valor previsto. A linha diagonal revela
90 o número de vezes que uma determinada categoria, neste caso, o agente informático, foi previsto corretamente. Já as restantes células, representam o número de vezes que uma determinada categoria foi prevista como outra categoria. Isto revela alguma ambiguidade dessas mesmas categorias, por exemplo, na matriz de confusão do modelo LinearSVC, o técnico “Agente1” foi previsto como “Agente4” 5,95% das vezes, sendo que este último foi previsto como “Agente1” 6,99% vezes (sendo as percentagens mais avultadas das células alusavas às classificações erróneas), o que demonstra que ambos resolvem tickets com descrições muito parecidas ou, por outras palavras, costumam tratar de incident tickets com o mesmo tipo. Esta situação ocorre inúmeras vezes para outras categorias. Na tabela 16 estão representados os resultados das métricas de desempenho dos todos os modelos enunciados anteriormente, na classificação relativa ao cenário 3 (C3). Tabela 16 - Métricas obtidas, por classe, em cada modelo Categoria Métrica LinearSVC(%) LR(%) RF(%) MNB(%) KNN(%) SGDC(%) “Agente1” Precisão 89,01 80,69 24,17 73,4 82,35 86,2 Sensibilidade 87,4 82,57 99,65 82,13 31,4 80,32 F1-Score 88,2 81,62 38,9 77,52 45,47 83,16 Support 1159 “Agente2” Precisão 90,34 88,31 0 90,94 27,33 86,72 Sensibilidade 91,42 81,8 0 67,96 93,38 86,46 F1-Score 90,88 84,93 0 77,7 42,28 86,59 Support 665 “Agente3” Precisão 97,21 95,21 93,56 91,07 92,2 93,25 Sensibilidade 96,96 90,53 23,86 87,62 50,75 95,95 F1-Score 97,09 92,81 38,02 89,31 65,47 94,58 Support 792 “Agente4” Precisão 90,04 84,8 100 81,71 85,66 84,89 Sensibilidade 87,05 80,52 5,15 73,19 29,43 84,3 F1-Score 88,52 82,6 9,8 77,22 43,81 84,59 Support 873 “Agente5” Precisão 96,1 90,6 100 88,52 94,52 93,24 Sensibilidade 98,43 99,03 7,6 98,79 95,89 98,43 F1-Score 97,25 94,63 14,14 93,37 95,2 95,76 Support 828 “Agente6” Precisão 97,15 95,87 100 92,91 96,81 97,01
97 tecnologias a serem utilizadas de compreender o seu funcionamento 3. Limitações impostas na obtenção de dados essenciais para a realização do projeto 5 6 Dar a entender quais os dados necessários ao orientador de estágio 4. Abordagem errada sobre os requisitos do projeto 5 5 Estudar melhor os requisitos inerentes a projetos desta índole, garantindo sempre uma boa comunicação tanto com o orientador do estágio como o orientador da dissertação 5. Avaria do equipamento(s) de trabalho 5 4 Executar sempre a manutenção do(s) equipamento(s), estimando-os realizando uma utilização saudável do(s) mesmo(s) 6. Infraestruturas tecnológicas sem capacidade de realizar o projeto 5 4 Assegurar que as infraestruturas existentes são as mais adequadas para a realização do projeto 7. Perda/Roubo de material digital ou de equipamento(s) 5 3 Realizar backups dos ficheiros alusivos ao projeto e guardá-los sempre 8. Planeamento das tarefas mal delineado 4 7 Fazer uma revisão do planeamento, ajustando o devido tempo para as tarefas mais urgentes 9. Complexidade dos dados do projeto 4 7 Questionar o orientador de estágio sobre a possibilidade de obter dados mais concretos e pedir auxílio ao
98 orientador da dissertação na sua compreensão 10. Atrasos ou incumprimentos das tarefas propostas 4 6 Assumir uma atitude responsável e encarar todas atividades a realizar com seriedade 11. Elevada carga de trabalho exterior ao projeto 3 6 Definir uma melhor gestão do tempo através do planeamento semanal de tarefas Para a realização desta tabela e, tendo em conta que o autor é o único sujeito exposto, assim como os equipamentos necessários à elaboração do projeto, a possíveis riscos e perigos, o primeiro passo foi definir um conjunto de elementos e fatores de onde poderiam derivar alguns riscos, assim como os dispositivos tecnológicos utilizados, os locais de trabalho utilizados e o percurso entre os mesmos. A partir daqui, foram identificados alguns riscos como as respetivas consequências, estimando-se o impacto e a probabilidade que teriam no desenvolvimento deste projeto. Um dos riscos identificados foram as “limitações impostas na obtenção de dados essenciais para a realização do projeto”, pois os dados com que o autor pretendia explorar e tratar dizem respeito a informações de colaboradores da empresa onde o mesmo realizou um estágio e, por questões de proteção de informação, podiam colocar alguns entraves na obtenção de dados fulcrais para a realização do projeto. O autor também considerou a “perda ou roubo de material digital ou de equipamento(s)” um risco importante, dado a quantidade de acontecimentos relatados por muitos estudantes que perderam toda a sua investigação e, dado que para a realização deste projeto o autor necessita de muito material, tanto físico como digital, deslocando-se entre vários locais, é necessário ter muita cautela com o que o envolve. Outro risco identificado foi a “complexidade dos dados do projeto” aliado a outro risco que tem a ver com a “inexperiência em manusear algumas ferramentas”, pois para além de nunca ter trabalhado no ramo do text mining, o autor precisou de perder muito tempo a explorar ferramentas que permitem tratar uma quantidade enorme de dados que lhe foram, eventualmente, facultados pela empresa.
99 Sendo que o que foi anteriormente citado se relacionava com as previsões de riscos na fase inicial do projeto, é fulcral enunciar a perspetiva do autor após a conclusão do mesmo. Infelizmente, algumas situações que eram impossíveis de prever, tais como a situação da pandemia da COVID-19, vieram dificultar a boa execução do projeto, pois dado que o autor se encontrava a realizar um estágio profissional, a imposição do tele trabalho e mais algumas tarefas adicionais requisitadas, vieram atrasar o trabalho a ser desenvolvido, sendo que o autor estava à espera de alguns dados que, de alguma forma, tardaram a chegar, assim como a carga de trabalho provocada por esta doença, sendo que o estágio era num departamento de sistemas de informação, se adensou significativamente. Como se não bastasse, aquando a conceção do documento final de dissertação, o autor desta dissertação encontrou problemas com o seu próprio disco rígido, ouvindo-se alguns click sounds no mesmo, dando problemas no arranque do sistema operativo. Houve a necessidade de realizar um clone do disco e a proceder à sua substituição.
100 6. CONCLUSÃO Num mundo onde a transformação digital se está a tornar imperativa, é importante para as organizações acompanharem essa evolução constantemente. Nem todas as empresas auferem vantagens quer a nível de automação de processos quer a nível lucrativo, mas é um facto que a conversão padrão de um mero papel para um sistema digital ou, por outras palavras, informático, tem influenciado positivamente qualquer instituição que o implemente, dado que as funcionalidades que esse mesmo sistema confere potenciam a entidade organizacional na ótica do consumo de recursos e tempo. Na perspetiva da empresa onde o realizador desta dissertação realizou um estágio profissional, no qual se baseou para a escolha do tema da mesma, é fulcral lidar com uma quantidade enorme de dados que, muita das vezes, não estão corretamente estruturados, sendo um dos pontos que levam à necessidade da classificação de texto, independentemente do facto de a empresa já possuir muito dos seus processos em formato digital. Durante o estágio profissional que o autor desta dissertação realizou, deparou-se, na plataforma de suporte aos colaboradores onde os mesmos reportam alguns incidentes, nomeadamente, tickets , que alguns se encontram mal categorizados, o que implicam uma análise mais exaustiva dos mesmos, com uma posterior atribuição desses incidentes ao agente informático mais indicado, nos casos em que não se adequam aos técnicos que inicialmente pretendiam resolver esse tipo de tickets, mas que foram induzidos em erros pela ‘falsa’ descrição/categorização do mesmo. Existem inúmeros estudos de métodos de classificação de texto com recurso a técnicas de machine learning, mas apenas alguns no que concerne à classificação de tickets e a sua atribuição automática, com algumas soluções e estudos já existentes retratadas neste documento. Assim, de modo a cumprir os objetivos e responder às questões colocadas no início do documento, foi proposto um sistema classificador de tickets que recorre a técnicas de machine learning que, com um conjunto de processos alidados à manipulação dos dados fornecidos, conseguisse categorizar automaticamente novos Incident IT Tickets. Este mesmo sistema tem como alicerce a descrição textual dos mesmos e do agente informático que resolveu aquele ticket. Para tal, foram seguidas, de forma detalhada, as metodologias Design Science Research (DSR) e Cross Industry Standard Process for Data Mining (CRISP-DM), constituindo a base de todo o sucesso deste projeto, desde as diretrizes providenciadas para
101 a construção do estado da arte e dos artefactos a serem concebidos (técnicas de processamento de texto e modelos de classificação de texto), já enunciados no início deste documento. Primeiramente, a fase de recolha e análise primordial dos dados. Antes da fase de processamento de texto, foi necessário selecionar que atributos seriam necessários para a fase seguinte, envolvendo ferramentas de deteção de linguagem. Para além destas alterações, verificou-se que existiam alguns agentes informáticos com poucas ocorrências, tendo sido importante o processo de oversampling para que o fit dado nos modelos fosse o mais correto possível. De seguida, foi efetuada uma limpeza do texto muito semelhante ao que se descreveu na revisão de literatura no tópico relativo ao processamento de texto, removendo números, espaços em branco, caracteres especiais, stopwords e aplicando o processo de stemming. De realçar que os métodos TfidfVectorizer() e CountVectorizer(), que, no espetro de todos os passos de Processamento de Linguagem Natural, inseridos na Feature Extraction, são os que se revelaram mais fundamentais, na medida em que é possível verificar quais os termos com mais relevância para a classificação, conseguindo converter um conjunto de palavras numa representação vetorial de modo a que os modelos os consigam ‘consumir’. Seguidamente, o conjunto de dados foi dividido em train e test data Para o próximo passo, foi necessário estudar alguns algoritmos e a sua respetiva parametrização, assim como inúmeros testes efetuados noutras experiências realizadas, avaliando os seus desempenhos e a maneira como foram implementados. Assim, foram escolhidos seis algoritmos, sendo eles o Multinomial Naive Bayes, Linear Support Vector Classifier, K-Nearest Neighbours, Logistic Regression, Random Forest e Stochastic Gradient Descent Classifier. Para a sua avaliação e comparação, foi tido como base algumas métricas tais como a precisão, sensabilidade, f1-score, taxa de erro e o tempo de execução de cada um. Analisando os resultados, no caso do estudo com o dataset com idioma português, foi possível verificar que o modelo que obteve melhores resultados foi o LinearSVC (93,12% de acuidade), não descartando o modelo SGDC e Logistic Regression que obtiveram bons resultados (90,01% e 88,65% de acuidade, respetivamente), ficando para último, de forma decrescente, o Multinomial Naive Bayes, KNN e Random Forest. Neste ponto de vista, podese afirmar que os resultados vêm alicerçar os estudos já efetuados na comunidade científica, dado que os mesmos não diferem muito dos resultados conseguidos e relatados na revisão da literatura. De realçar que, para este caso, o oversampling teve um efeito positivo nos
102 resultados obtidos e que as aplicações de várias técnicas de processamento de texto se verificaram fulcrais para o aumento significativo dos resultados dos modelos. Já no caso dos datasets com idioma castelhano e inglês, verificou-se que um tamanho mais reduzido de amostra e a não implementação de um tipo de oversampling tem um efeito, neste caso, negativo nos desempenhos. Relativamente ao desempenho obtido pelos algoritmos, o mesmo veio dar realce à análise efetuada como dataset português. Com a aplicação de um sistema que classifica automaticamente os tickets como o proposto, o tempo de análise e de resolução iria reduzir drasticamente, assim como os custos relacionados com os recursos envolvidos no processo manual de atribuição de tickets ao agente informático, dado que este processo iria ser automatizado. Como trabalho futuro, um dos primeiros pontos a experimentar seria utilizar outros métodos de oversampling tais como SMOTE (Synthetic Minority Oversampling Technique) e ADASYN (Adaptive Synthetic Sampling Approach). Outra situação a testar seria comparar a influência de se ter em consideração mais n-grams. Não menos importante, descartar a junção da coluna do assunto e da descrição textual e fazer uma comparação das métricas separadamente, assim como adicionar a coluna do tipo, prioridade e sub-categria à descrição textual, realizando, novamente, as respetivas comparações. Outro ponto interessante a estudar no futuro seria a utilização de uma arquitetura de redes neuronais, comparando 3 algoritmos específicos, tais como o Convolutional Neural Network (CNN), Recurrent Neural Network (RNN) e Hierarchical Attention Network (HAN).
103 REFERÊNCIAS BIBLIOGRÁFICAS Al-harbi, O. (2019). A Comparative Study of Feature Selection Methods for Dialectal Arabic Sentiment Classification Using Support Vector Machine. IJCSNS International Journal of Computer Science and Network Security, 19(1), 167–176. Altintas, M., Cuneyd Tantug, A., Tr, M. E., & Tr, T. E. (2014). MACHINE LEARNING BASED TICKET CLASSIFICATION IN ISSUE TRACKING SYSTEMS. Retrieved from http://worldconferences.net Alwidian, S. A., Bani-Salameh, H. A., & Alslaity, A. N. (2015). Text data mining: A proposed framework and future perspectives. International Journal of Business Information Systems, 18(2), 127–140. https://doi.org/10.1504/IJBIS.2015.067261 Bahassine, S., Madani, A., Al-Sarem, M., & Kissi, M. (2020). Feature selection using an improved Chi-square for Arabic text classification. Journal of King Saud University - Computer and Information Sciences, 32(2), 225–231. https://doi.org/10.1016/j.jksuci.2018.05.010 Belgiu, M., & Drăgu, L. (2016). Random forest in remote sensing: A review of applications and future directions. ISPRS Journal of Photogrammetry and Remote Sensing, 114, 24–31. https://doi.org/10.1016/j.isprsjprs.2016.01.011 Berrar, D. (2018). Cross-validation. Encyclopedia of Bioinformatics and Computational Biology: ABC of Bioinformatics, 1–3(January 2018), 542–545. https://doi.org/10.1016/B978-0-12809633-8.20349-X Edmilson Barcelos Rocha. (2015). Design Science Research para o Desenvolvimento de um Modelo da Participação em Bate-papo. ISys - Revista Brasileira de Sistemas de Informação, 8(1), 18–41. Evgeniou, T., & Pontil, M. (2001). Workshop on Support Vector Machines : Theory and Applications. Machine Learning and Its Applications: Advanced Lectures, (January 2001), 249–257. https://doi.org/10.1007/3-540-44673-7 George K, S., & Joseph, S. (2014). Text Classification by Augmenting Bag of Words (BOW) Representation with Co-occurrence Feature. IOSR Journal of Computer Engineering, 16(1), 34–38. https://doi.org/10.9790/0661-16153438 Guo, G., Wang, H., Bell, D., Bi, Y., & Greer, K. (2003). KNN model-based approach in classification. Lecture Notes in Computer Science (Including Subseries Lecture Notes in
104 Artificial Intelligence and Lecture Notes in Bioinformatics), 2888(November 2012), 986– 996. https://doi.org/10.1007/978-3-540-39964-3_62 Hartmann, J., Huppertz, J., Schamp, C., & Heitmann, M. (2019). Comparing automated text classification methods. International Journal of Research in Marketing, 36(1), 20–38. https://doi.org/10.1016/j.ijresmar.2018.09.009 Hussein, E., & Aliwy, A. (2018). Improving Feature Selection Techniques for Text Classification Esraa Hussein Abdul Ameer Alzuabidi. (November). Iden, J., & Eikebrokk, T. R. (2013). Implementing IT Service Management: A systematic literature review. International Journal of Information Management, 33(3), 512–523. https://doi.org/10.1016/j.ijinfomgt.2013.01.004 Ikonomakis, M., Kotsiantis, S., & Tampakas, V. (2005). Text classification using machine learning techniques. WSEAS Transactions on Computers, 4(8), 966–974. https://doi.org/10.11499/sicejl1962.38.456 Joachims, T. (1998). Text categorization with Support Vector Machines: Learning with many relevant features. https://doi.org/10.1007/bfb0026683 Jurafsky, D., & Martin, J. H. (2019). N-Gram Language Models N-Gram Language Models. Speech and Language Processing. Justicia De La Torre, C., Martín-Bautista, M. J., Síanchez, D., & Vila, M. A. (2005). Text mining: Intermediate forms for knowledge representation. Proceedings - 4th Conference of the European Society for Fuzzy Logic and Technology and 11th French Days on Fuzzy Logic and Applications, EUSFLAT-LFA 2005 Joint Conference, (December 2013), 1082–1087. Korkmaz, M., Güney, S., & Yüksel YİĞÎTER, Ş. (2012). the Importance of Logistic Regression Implementations in the Turkish Livestock Sector and Logistic Regression Implementations/Fields. Journal of the Faculty of Agriculture of Harran University, 16(2), 25–36. Lacerda, D. P., Dresch, A., Proença, A., & Antunes Júnior, J. A. V. (2013). Design Science Research: Método de pesquisa para a engenharia de produção. Gestao e Producao, 20(4), 741–761. https://doi.org/10.1590/S0104-530X2013005000014 M, H., & M.N, S. (2015). A Review on Evaluation Metrics for Data Classification Evaluations. International Journal of Data Mining & Knowledge Management Process, 5(2), 01–11. https://doi.org/10.5121/ijdkp.2015.5201 Maertens, R. M., Long, A. S., & White, P. A. (2017). Performance of the in vitro transgene
105 mutation assay in MutaMouse FE1 cells: Evaluation of nine misleading (“False”) positive chemicals. Environmental and Molecular Mutagenesis, 58(8), 582–591. https://doi.org/10.1002/em.22125 Mao, W., & Wang, F.-Y. (2012). Cultural Modeling for Behavior Analysis and Prediction. Advances in Intelligence and Security Informatics, 91–102. https://doi.org/10.1016/b978-0-12-397200-2.00008-7 Meesad, P., Boonrawd, P., & Nuipian, V. (2011). A Chi-Square-Test for Word Importance Differentiation in Text Classification Natural Language Processing Techniques and Application. View project Text Classification View project A Chi-Square-Test for Word Importance Differentiation in Text Classification. (January). Retrieved from https://www.researchgate.net/publication/267711810 Misra, S., & Li, H. (2020). Noninvasive fracture characterization based on the classification of sonic wave travel times. In Machine Learning for Subsurface Characterization. https://doi.org/10.1016/b978-0-12-817736-5.00009-0 Morariu, D. I., Ulescu, R. G. C., & Breazu, M. (2013). Feature Selection in Document Classification. The Fourth International Conference in Romania of Information Science and Information Literacy. Palshikar, G. K., Mudassar, M., Vin, H. M., & Natu, M. (2012). Streamlining Service Levels for IT Infrastructure Support Streamlining Service Levels for IT Infrastructure Support. (August 2015). https://doi.org/10.1109/ICDMW.2012.118 Peffers, K., Tuunanen, T., Rothenberger, M. A., & Chatterjee, S. (2007). A Design Science Research Methodology for Information Systems Research. http://doi.org/10.2753/MIS0742-1222240302 Qaiser, S., & Ali, R. (2018). Text Mining: Use of TF-IDF to Examine the Relevance of Words to Documents. International Journal of Computer Applications, 181(1), 25–29. https://doi.org/10.5120/ijca2018917395 Rifkin, R. (2008). Multiclass Classification - 9.520 Class 06. Retrieved from http://www.mit.edu/~9.520/spring08/ Rodríguez, J. D., Pérez, A., & Lozano, J. A. (2010). Sensitivity Analysis of k-Fold Cross Validation in Prediction Error Estimation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 32(3), 569–575. https://doi.org/10.1109/TPAMI.2009.187 Ruder, S. (2016). An overview of gradient descent optimization algorithms. 1–14. Retrieved
106 from http://arxiv.org/abs/1609.04747 Ruz, G. A., Henríquez, P. A., & Mascareño, A. (2020). Sentiment analysis of Twitter data during critical events through Bayesian networks classifiers. Future Generation Computer Systems, 106, 92–104. https://doi.org/10.1016/j.future.2020.01.005 Sebastiani, F. (2002). Machine Learning in Automated Text Categorization. ACM Computing Surveys, 34(1), 1–47. https://doi.org/10.1145/505282.505283 Shahsavarani, N., & Ji, S. (2011). Research in Information Technology Service Management (ITSM): Theoretical Foundation and Research Topic Perspectives. CONF-IRM 2011 Proceedings, 30. Shiri, A. (2004). Introduction to Modern Information Retrieval (2nd edition). Library Review, 53(9), 462–463. https://doi.org/10.1108/00242530410565256 Song, S., Chaudhuri, K., & Sarwate, A. D. (2013). Stochastic gradient descent with differentially private updates. 2013 IEEE Global Conference on Signal and Information Processing, GlobalSIP 2013 - Proceedings, (December 2013), 245–248. https://doi.org/10.1109/GlobalSIP.2013.6736861 Sperandei, S. (2014). Understanding logistic regression analysis. Biochemia Medica, 24(1), 12– 18. https://doi.org/10.11613/BM.2014.003 Susan Li (2018). Multi-Class Text Classification with Scikit-Learn. Towards Data Science.( https://towardsdatascience.com/multi-class-text-classification-with-scikit-learn12f1e60e0a9f) Tan, A.-H. (1999). Text Mining: The state of the art and the challenges. Proceedings of the PAKDD 1999 Workshop on Knowledge Disocovery from Advanced Databases, 8, 65–70. https://doi.org/10.1.1.38.7672 Taneja, S., Gupta, C., Goyal, K., & Gureja, D. (2014). An enhanced K-nearest neighbor algorithm using information gain and clustering. International Conference on Advanced Computing and Communication Technologies, ACCT, 325–329. https://doi.org/10.1109/ACCT.2014.22 Teixeira Da Silva, S. A., Daniel, R., Faro, S., & Ribeiro, M. (2018). Automatization of Incident Categorization Co-Supervisor. Tsoumakas, G., & Katakis, I. (2007). Multi-label classification: An overview. International Journal of Data Warehousing and Mining, 3(3), 1–13. https://doi.org/10.4018/jdwm.2007070101