sistema de recomendaÇÃo baseado em rbc para suporte de ... · por meio de pesquisas cognitivas de...

20
1 SISTEMA DE RECOMENDAÇÃO BASEADO EM RBC PARA SUPORTE DE SOFTWARE Leandro Leites Zeferino <[email protected]> Orientador: Stanley Loh < [email protected]> Universidade Luterana do Brasil (ULBRA) – Sistemas de Informação Av. Farroupilha, 8001 - Bairro São José – CEP 92425-900 – Canoas/RS - Brasil 29 de novembro de 2010 RESUMO Este artigo apresenta um sistema de recomendação para suporte de software (Help Desk) chamado Publisos. O sistema foi implementado utilizando técnicas de Raciocínio Baseado em Casos (RBC). RBC é um método que busca resolver de forma automática, novos problemas com soluções já usadas anteriormente. Para isso, é preciso ter uma base de dados pré-existente para que o caso mais similar encontrado na base de conhecimento (BC) seja fortemente recomendado aos usuários do sistema. A BC é um banco de dados que contém os problemas e as soluções que já foram utilizadas em experiências anteriores. Com isso, o sistema trará maior agilidade, rapidez e precisão ao processo de atendimento do suporte e também no gerenciamento das informações. Foram aplicadas a técnicas de aquisição de conhecimento, técnicas avaliação de similaridade entre casos, técnicas de recuperação de casos de indexação e a técnica de reutilização de casos. Palavras-chave: Recomendação, Raciocínio Baseado em Casos, Suporte de software. ABSTRACT This article presents a recommendation system for software support (Help Desk) called Publisos. The system was implemented using the techniques of Case Based Reasoning (CBR). CBR is a method that automatically tries to ask new problems with solutions already used earlier. However, you must have a database pre-existing for the most similar case found in the knowledge base (BC) is strongly recommended for users of the system. CB is a database that contains the problems and solutions that have been used in previous experiments. The system will offer greater agility, speed and precision to the process of Technical Support and also support the management of information. We applied the techniques of knowledge acquisition, technical evaluation of similarity between cases, techniques for case retrieval and indexing technique for case reuse. Keywords: Recommendation, Case-Based Reasoning, Software Support. 1 INTRODUÇÃO Este artigo apresenta um sistema de Raciocínio Baseado em Casos (RBC) para ser usado na área de suporte de software. RBC é um sistema que auxilia na solução de problemas, é baseado em experiências passadas que serão armazenadas em uma base de conhecimento. A base de conhecimento é um banco de dados que contém os casos que foram utilizados anteriormente. O uso dessa ferramenta, chamada Publisos, visa facilitar o processo de atendimento de suporte permitindo mais agilidade na solução dos problemas. Com este sistema, a informação não ficará com um único técnico podendo ser dividido entre todos da área. O sistema RBC também poderá ajudar no treinamento de novos técnicos bem como ajudar a dar resposta aos problemas dos clientes de forma ágil. Nos dias de hoje é importante ter qualidade nos serviços prestados por qualquer empresa e para isso existem tecnologias apropriadas. No sistema de Help Desk, o RBC é a técnica que mais se adapta para melhorar a qualidade dos atendimentos; dará maior agilidade no processo de solução

Upload: dokhanh

Post on 19-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

1    

SISTEMA DE RECOMENDAÇÃO BASEADO EM RBC PARA SUPORTE DE SOFTWARE

Leandro Leites Zeferino <[email protected]> Orientador: Stanley Loh < [email protected]>

Universidade Luterana do Brasil (ULBRA) – Sistemas de Informação Av. Farroupilha, 8001 - Bairro São José – CEP 92425-900 – Canoas/RS - Brasil

29 de novembro de 2010

RESUMO Este artigo apresenta um sistema de recomendação para suporte de software (Help Desk) chamado Publisos.

O sistema foi implementado utilizando técnicas de Raciocínio Baseado em Casos (RBC). RBC é um método que busca resolver de forma automática, novos problemas com soluções já usadas anteriormente. Para isso, é preciso ter uma base de dados pré-existente para que o caso mais similar encontrado na base de conhecimento (BC) seja fortemente recomendado aos usuários do sistema. A BC é um banco de dados que contém os problemas e as soluções que já foram utilizadas em experiências anteriores. Com isso, o sistema trará maior agilidade, rapidez e precisão ao processo de atendimento do suporte e também no gerenciamento das informações. Foram aplicadas a técnicas de aquisição de conhecimento, técnicas avaliação de similaridade entre casos, técnicas de recuperação de casos de indexação e a técnica de reutilização de casos.

Palavras-chave: Recomendação, Raciocínio Baseado em Casos, Suporte de software.

ABSTRACT This article presents a recommendation system for software support (Help Desk) called Publisos. The system

was implemented using the techniques of Case Based Reasoning (CBR). CBR is a method that automatically tries to ask new problems with solutions already used earlier. However, you must have a database pre-existing for the most similar case found in the knowledge base (BC) is strongly recommended for users of the system. CB is a database that contains the problems and solutions that have been used in previous experiments. The system will offer greater agility, speed and precision to the process of Technical Support and also support the management of information. We applied the techniques of knowledge acquisition, technical evaluation of similarity between cases, techniques for case retrieval and indexing technique for case reuse.

Keywords: Recommendation, Case-Based Reasoning, Software Support.

1 INTRODUÇÃO

Este artigo apresenta um sistema de Raciocínio Baseado em Casos (RBC) para ser usado na área de suporte de software. RBC é um sistema que auxilia na solução de problemas, é baseado em experiências passadas que serão armazenadas em uma base de conhecimento. A base de conhecimento é um banco de dados que contém os casos que foram utilizados anteriormente. O uso dessa ferramenta, chamada Publisos, visa facilitar o processo de atendimento de suporte permitindo mais agilidade na solução dos problemas. Com este sistema, a informação não ficará com um único técnico podendo ser dividido entre todos da área. O sistema RBC também poderá ajudar no treinamento de novos técnicos bem como ajudar a dar resposta aos problemas dos clientes de forma ágil. Nos dias de hoje é importante ter qualidade nos serviços prestados por qualquer empresa e para isso existem tecnologias apropriadas. No sistema de Help Desk, o RBC é a técnica que mais se adapta para melhorar a qualidade dos atendimentos; dará maior agilidade no processo de solução

2    

dos problemas e também dará respostas precisas em tempo hábil, criando um vínculo de competência e confiabilidade.

O sistema RBC busca resolver novos problemas através de casos já existentes na base de conhecimento. Para tanto, é usada a melhor estratégia para aquisição das informações e também técnicas de indexação e recuperação em busca de casos similares. Os dados são armazenados em uma base de conhecimento onde são representados por casos reais. Logo, o sistema de RBC tem que ser capaz de encontrar um caso similar à situação atual e dar retorno ao usuário. Esta recuperação é feita por meio de uma técnica chamada de Recuperação de Casos, que visa encontrar um ou mais casos parecidos com o problema atual segundo Wangenheim (2003). Se não existir, na base de conhecimento, um caso que preencha todos os requisitos similares com a situação atual, então o sistema deverá ser atualizado. Para deixá-lo sempre atualizado, foi usada a técnica do Aprendizado – a cada problema resolvido com sucesso, o sistema deverá lembrar este caso para ser usado no futuro como um caso novo.

O presente artigo está organizado da seguinte forma: o capítulo 2 apresenta o que é um sistema de RBC – Raciocínio Baseado em Casos; no capítulo 3 explicita a Apresentação do Sistema; o capítulo 4 exemplifica a avaliação do sistema; no capítulo 5 é apresentada a Conclusão e no capítulo 6, as Referências.

2 RBC - RACIOCÍNIO BASEADO EM CASOS

O RBC é uma técnica que surgiu para resolver problemas atuais com soluções automáticas, através da recuperação de casos em uma base de conhecimento (BC) onde estão armazenadas experiências passadas.

Por meio de pesquisas cognitivas de (SHANK; ABELSON, 1977) sobre memória dinâmica, surgiu o RBC. A memória humana tem a facilidade de criar modelos de situações e de solução de problemas e do aprendizado com base em memórias episódicas (Wangenheim apud, Schank 2003). O conhecimento do ser humano fica gravado na memória em forma de roteiro. Este roteiro auxilia em uma ação que é determinante para a sua execução (Schank; Abelson, 1977). Com esse processo foi criada uma técnica de desenvolvimento de software importante para todas as áreas comerciais.

2.1 Modelo Básico de um Sistema de RBC

O modelo mais aceito para o processo do sistema de RBC é o Ciclo de RBC proposto por Amondt e Plaza (1994), que engloba um raciocínio composto por quatro tarefas. São elas: recuperar os casos mais similares, reutilizar esses casos para resolver o problema, revisar a solução proposta e reter a experiência para reutilizá-la no futuro.

3    

Figura 1 - Como funciona um sistema RBC

2.2 Elementos Básicos de um Sistema RBC

Os elementos básicos de um sistema RBC são: o conhecimento, que é armazenado em forma de casos; medidas de similaridade, em que por meio desta técnica, o sistema é capaz de saber qual caso é similar ao problema atual; adaptações, em que problemas antigos dificilmente são idênticos aos atuais; aprendizados, em que o sistema precisa estar sempre atualizado para, quando surgir novos problemas, satisfazer às necessidades da situação atual. Esses elementos induzem o sistema a adaptar-se para fornecer novas soluções.

2.3 Representação de Casos

Um caso é uma representação de um episódio que pode ser contextualizado de várias formas, como se fosse uma peça com seu conhecimento e aprendizado representando uma experiência real. Contém a experiência passada, que é o conteúdo do caso, e o contexto em que a lição pode ser usada (Wangenheim, 2003). Em cada situação, o caso apresenta-se de forma diferente tanto na forma como na apresentação. Duas medidas são importantes e devem ser representadas pelos casos: a funcionalidade da informação e a facilidade de aquisição da informação (Watson, 1997). Um caso é composto de dois componentes básicos: o problema e a solução deste problema. Na descrição do problema tem que haver informações úteis para a resolução dos mesmos como objetivos, restrições e atributos.

Como exemplo da descrição de um problema, podemos citar um conserto de um equipamento, descrevendo qual o seu problema e também o modelo deste equipamento. A descrição da solução pode ser de várias formas, desde a afirmação da solução ou até uma forma de um passo a passo da solução; como pode ser a descrição de um produto, ou até mesmo a descrição das características das pessoas ou em forma de um plano do que fazer. Um exemplo de um conserto de

RETENÇÃORECUPERAÇÃO

REÚSOREVISÃO

solução confirmada

solução adaptada

caso(s) mais similar(es)

problema (novo caso)

caso armazenado

Base de Casos

4    

um equipamento é a descrição da solução, que pode ser simplesmente avisar ao usuário que troque uma peça do equipamento.

2.4 Avaliação de Similaridade entre Casos

O objetivo do Raciocínio baseado em Casos é a reutilização de soluções conhecidas (Wangenheim, 2003). É procurado na base de conhecimento (BC) um caso com a descrição similar ao do problema atual.

É difícil ter uma medida do melhor caso entre vários na BC para resolver um determinado problema, a não ser que seja aplicada uma técnica de heurística. Entre os vários casos, o mais importante é quando este não precisa ser alterado ou modificado para solucionar a problemática atual. Isto significa que a similaridade em um sistema RBC precisa ser útil: o caso na base de conhecimento precisa ter similaridade com a situação atual (um caso útil é similar à questão atual); a similaridade é baseada em fatos (similaridade na solicitação de problemas); para saber qual caso é mais útil, é preciso definir uma medida (Burkhard, 1998).

Para definir se um caso é mais similar do que o outro é preciso determinar um grau numérico de similaridade entre os casos. É importante classificar a indexação das informações mais importantes e fixar a meta a ser atingida no sistema através da recuperação dos casos no sistema de RBC. Somente após a definição de um cenário da aplicação do sistema RBC é que se pode definir um conceito de similaridade.

O processo de indexação é utilizado para determinar quais os atributos são mais importantes na busca da informação. A indexação é que ajuda na pesquisa de uma maneira a facilitar o processo de recuperação de casos na criação de índices para melhorar a localização dos dados. Em geral, a indexação é um conjunto de atributos mais importantes que ajudam a identificar um caso para solução de uma situação atual. No julgamento de similaridade existe uma dependência dos objetivos a serem atingidos pelo processo de solução de problemas (Seifert, 1986). Portanto, a meta de recuperação de casos deve ser definida em relação ao cenário da aplicação definido (Gresse, 1999).

2.4.1 Tipos de Similaridade

São três os tipos de Similaridade: de Reflexividade – um objeto ou fato é similar a si mesmo; de Simetria - se A é similar a B, então B também é similar a A; e de transitividade – se A é similar a B e B é similar a C, então A também é similar a C (Wangenheim apud Wess 1995).

O julgamento da transitividade não é aceito por todos os escritores. O motivo é que “Um quadrado pequeno é similar a um quadrado grande. Um quadrado grande é similar a um círculo grande. Um quadrado pequeno e um círculo grande não são similares”. Devido à comparação ter mudado (a forma do objeto para o tamanho do objeto) podemos afirmar que a transitividade sempre será prejudicada com uma pequena mudança.

Conforme Wangenheim (2003) existem três maneiras de formalizar o conceito de similaridade, são elas: similaridade como Predicado, similaridade como Relação de Inferência e similaridade como Medida. A mais importante forma é a medida de similaridade e medida numérica de distância que quantifica a distância de semelhanças entre os objetos.

5    

a) para implementar a medida de similaridade precisa-se satisfazer os requisitos:

Sim(x,x) = 1 similaridade de reflexividade

Sim(x,y) = sim(y,x) similaridade de simetria

b) Para implementar a medida de distância precisa-se satisfazer os requisitos:

d(x,y ) = 0 similaridade de reflexividade

d(x,y) = d(y,x) similaridade de simetria

2.4.2 Medidas de Similaridade Local A similaridade local é determinada por meio da similaridade entre os atributos especificados no contexto de uma aplicação específica. Existe medida de similaridade para diferentes tipos de dados: números, símbolo binário, conjunto e intervalo, e neste artigo, trataremos o conceito relacionado à medida de similaridade de String. Segundo Wagenheim (2003) a medida de similaridade local é uma função que determina a similaridade entre duas entidades através da fórmula: Sim(x,y): (UxU -> [0,1]). Para fazer o cálculo da medida de similaridade entre strings, é preciso definir string por valores simbólicos. Duas palavras são consideradas similares quando são escritas da mesma forma, por exemplo, 'texto' e 'texto' são consideradas iguais e recebem o valor 1. Se fossem diferentes receberiam o valor 0. Esta medida chama-se correspondência exata.

Existe a medida da correção ortográfica, em que o número de caracteres iguais são calculados, por exemplo 'texto' e 'text' tem 4 caracteres iguais. Para calcular o grau de similaridade, basta dividir o número de caracteres similares (4) pelo número total da palavra (5) que vai ter o grau de similaridade igual a 0,8. Essa medida funciona para strings únicas.

Outra forma para medida de string é a chamada contagem de palavras idênticas. É usada para textos maiores e conta o número de palavras similares. Como exemplo, temos a entidade de informação 'não acesso o sistema' e o caso 'acesso ao sistema está bloqueado' - então, os números de palavras iguais são (2). O grau de similaridade entre essa string é a quantidade de palavras similares (2) dividido pelo total de palavras na consulta (5), assim teremos 2 dividido por 5 que terá o grau de similaridade igual a (0,4).

Existe ainda mais uma medida que é chamada de taxa do maior string comum, em que a soma das substring é computada, e as strings menores que três caracteres não são computados na consulta (Bergmann, 1997). Por exemplo, o atributo 'sistema não funciona' e o caso na BC 'não funcionando', então o valor de similaridade será calculado por:

|não| + | funciona| 3+8

(vi, vj) = ------------------------------------ = ------- = 0,7 |sistema| + |não| + |funciona| 15

2.5 Recuperação de Casos O processo de recuperação de casos se dá por meio de um conjunto de tarefas que necessariamente não precisam ser todas cumpridas. O assessoramento da situação, por exemplo, ajuda o técnico, juntamente com o sistema, a buscar o melhor caso através de um melhoramento da pesquisa. Para isso é preciso conhecimento do analista, pois durante a descrição do problema pelo cliente, o mesmo pode não descrever exatamente o que está ocorrendo e pode passar a informação com ruído. O assessoramento da situação tem como base fazer testes em busca de novo conhecimento para poder usar esse novo conhecimento em uma busca mais eficiente. Com a

6    

descrição do problema definido, o sistema RBC deve ser capaz de encontrar um caso apropriado e descrever a solução adequada para a situação atual (Wangenheim, 2003).

A meta da recuperação de casos é buscar casos similares com informações relevantes para que a situação atual seja resolvida. O casamento do problema e o caso na base de conhecimento é uma tarefa importante para essa recuperação de casos, e tem como objetivo encontrar um caso ou um conjunto de casos mais similares na BC, que contenha uma solução útil ou contemple parcialmente a consulta. Para que seja realizada a recuperação de casos é preciso fazer a relação do problema com o caso na base um cálculo através da medida de similaridade. Depois de ter um conjunto de casos similares, é feita uma seleção para escolha do melhor caso. O caso mais útil entre um conjunto de casos similares é geralmente escolhido pela avaliação do relacionamento em conjunto com o grau de similaridade. Para calcular o grau de similaridade existem técnicas, e a mais simples delas é a recuperação sequencial.

2.5.1 Recuperação Sequencial A recuperação sequencial é considerada uma técnica simples por sua implementação e também por permitir que use o conceito de similaridade em todos os casos da base. Uma de suas principais vantagens é de não precisar usar o método de indexação e de percorrer todos os casos de uma forma completa e correta. É considerada completa porque analisa todos os casos, e é considerada correta porque aplica a medida de similaridade em todos os casos da base. Para o sistema RBC é importante que tenha qualidade na solução e eficiência para que os usuários possam confiar e aceitar o sistema. A recuperação sequencial possui uma grande desvantagem em relação ao tempo de execução, em bases de dados grandes, onde é necessário percorrer toda a base gastando muito tempo. Uma das características do processo de recuperação é a eficiência do processo de recuperação e sua qualidade nas informações. Como a técnica sequencial é mais lenta, apesar de ser considerada completa e correta e usar a medida de similaridade por percorrer todos os casos, existem outras técnicas mais velozes como a recuperação em dois níveis (Wangenheim, 2003).

2.5.2 Recuperação de dois níveis com Recuperação Sequencial O processo de recuperação de dois níveis é uma recuperação em duas fases, desenvolvida no modelo MAC/FAC (Gentner; Forbus, 1991). Este processo tende a limitar a pesquisa ao máximo, evitando o número de comparações em toda a base. Nesse processo, todos os casos considerados ineficientes para a solução do problema atual são excluídos automaticamente, deixando separados os casos considerados úteis. Esse modelo faz uma pré-seleção de possíveis candidatos através de uma comparação rápida, chamada modelo MAC. Depois de feita a pré–seleção em toda a base, passa-se à segunda etapa, chamada modelo FAC, em que os melhores candidatos serão escolhidos por meio de comparações mais complicadas, usando a medida de similaridade somente nos casos escolhidos na primeira etapa. Nesse momento, é usada a recuperação sequencial utilizando-se da medida de similaridade em todos os casos desse conjunto de possíveis casos úteis, em que os casos são ordenados conforme a medida de similaridade proposta.

7    

Figura 2 - Modelo MAC/FAC

Na primeira fase do modelo MAC/FAC recupera-se um conjunto de possíveis casos através de várias consultas ao banco de dados. Na segunda fase, aplica-se a medida de similaridade nesse conjunto de casos. O resultado do conceito de similaridade aplicado nos casos é responsável pela ordenação dos casos que será mostrada ao usuário. Isto significa que a medida de similaridade deve ser realizada somente para os possíveis casos similares, e não para toda base de casos. Mas mesmo nesse método podem ocorrer erros como por exemplo, como não incluir um caso similar ao conjunto de casos potenciais e também porque poderá incluir um que não seja similar no conjunto de casos potenciais. Esses erros podem acontecer em uma falha no projeto da pré-seleção.

Para determinar a similaridade podemos citar a igualdade se todos os atributos correspondem ao caso. Igualdade parcial: um caso é candidato potencial se um caso na base possui pelo menos um atributo coincidente (Lenz, 1995). Suas principais vantagens estão na performance, pois será examinado um conjunto de casos menores e o custo de recuperação, porque a pesquisa é menor do que o método sequencial.

3 APRESENTAÇÃO DO SISTEMA DESENVOLVIDO O sistema de suporte (Publisos) é um software desenvolvido especificamente para a empresa

Progress Informática. Aborda um conjunto de procedimentos consistentes para ajudar o analista de suporte no processo de comunicação ao usuário a fim de solucionar seu chamado.

O sistema auxilia no gerenciamento das informações, facilita a busca das ocorrências na base de conhecimento e proporciona a um técnico ser capaz de visualizar todos os chamados associados a um problema.

No sistema, com o método de Raciocínio Baseado em Casos (RBC), todas as informações precisam ser registradas, desde as mais simples que levariam mais tempo para cadastrar do que para solucionar. O sistema precisa ser fácil de usar para solucionar problemas com eficiência e prestar um serviço de qualidade. Para isso, necessita ser eficiente para fazer uma simples busca e trazer a solução anterior para resolver a situação atual, facilitando o cadastro de um novo chamado que levaria mais tempo do que a própria solução. Hoje, os problemas enfrentados pelo sistema de Help Desk são a complexidade e o crescimento tecnológico. O analista de suporte emprega muito tempo para dar uma solução ao cliente, uma vez que os usuários, a cada dia, apresentam questões cada vez mais complexas. Outro fator que atrasa o atendimento ao cliente no sistema de Help Desk é que cada analista guarda para si o conhecimento adquirido, não compartilhando com outros membros do grupo. Em sistemas que não são utilizadas base de conhecimento, pode-se levar horas e até dias para ser encontrada a solução.

A Base de Conhecimento (BC) é uma biblioteca de solução de problemas, ou seja, um repositório contendo os problemas e dúvidas apresentados pelos usuários, bem como as soluções, anteriormente, utilizados. Seu uso se faz através de uma ferramenta de busca dentro da base

comparação simples

Se

leç

ão Melhor Caso

Etapa MAC

Base de casos

comparação simples

comparação simples

comparação simples

Cálculo de Similaridade

Etapa FAC

Cálculo de Similaridade

Se

leç

ão

8    

possibilitando aos técnicos certa agilidade na solução dos chamados. Uma base de conhecimento bem escrita traz benefícios à equipe de suporte, facilitando a solução e otimizando o atendimento. Outro fator importante é que o conhecimento permanece na empresa, mesmo quando o analista está ausente, e também auxilia o treinamento para novos funcionários do setor.

O projeto que foi desenvolvido refere-se a um sistema WEB que utilizará como base o sistema RBC conforme já mencionado. RBC é um método que busca resolver de forma automática, novos problemas com soluções já usadas anteriormente a partir de uma base de conhecimento.

Para fazer a modelagem do sistema, foram utilizados os diagramas de caso de uso, de sequência e o diagrama de atividades da UML (Unified Modeling Language). Dentre as tecnologias, são utilizadas as linguagens de programação Asp, Javascript e HTML e o banco de dados MYSQL.

Esse sistema foi desenvolvido para atender as necessidades dos analistas de suporte da empresa Progress Informática de ter um sistema na plataforma WEB, reduzindo as dificuldades encontradas pelo procedimento atual, no que se refere ao atendimento de suporte. A empresa atua no ramo de desenvolvimento de software para a área de publicidade e propaganda. Está no mercado há mais de 15 anos e conta com mais de mil clientes em todo o Brasil, com sede em Porto Alegre e filiais em Belo Horizonte, Recife, Campo Grande, Rio de Janeiro e São Paulo. Os programas facilitam o processo através de uma rede inteligente de tráfego e oferecem, além de suporte por e-mail e telefone, serviços especializados de treinamento e manutenção.

3.1 Representação do caso no Sistema Publisos No sistema Publisos o caso é composto pelo sistema, módulo, assunto, solicitação e pela

solução deste problema. O usuário deverá informar os atributos sistema, módulo e assunto que já apresenta somente aqueles que são conhecidos. A solicitação do problema é um campo livre onde deve ser registradas informações úteis para a resolução do caso atual.

Como exemplo da descrição de um problema no sistema do Publisos, pode-se citar um problema que o usuário tenha como “sumiu a contabilidade da fatura no faturamento quando gero um pedido de mídia”, descrevendo qual o sistema, o módulo e o assunto referente ao problema. A descrição da solução pode ser de várias formas, desde a afirmação da solução ou até uma forma de um passo a passo da solução; ou em forma de um plano do que fazer.

3.2 Recuperação de Casos no Sistema Para demonstrar a aplicabilidade da solução e a similaridade foi selecionado um problema

real da Progress Informática e foram obtidos os passos descritos nas próximas seções.

3.2.1 Solicitação do Problema O primeiro passo é descrever a solicitação do problema na tela de incluir caso, onde

constarão os campos principais para a busca da melhor solução. Este campo “solicitação” é um campo livre em que o usuário descreve a situação atual, como pode ser observado na Figura 3 abaixo.

9    

Figura 3 - Campo Solicitação

Os dados estão armazenados em uma Base de Conhecimento (BC), representada por uma

tabela chamada “Suporte”, com os campos: sistema, módulo, assunto, solicitação e solução entre outros. Depois de digitada a solicitação atual é preciso fazer a pesquisa na BC, clicando no botão pesquisar caso, para buscar na BC um caso mais similar.

Com base na solicitação digitada pelo usuário, o sistema elimina as palavras redundantes, da mesma forma que também desconsidera as palavras sem relevância para a pesquisa de similaridade. As palavras irrelevantes chamadas “stopwords” estão pré-definidas em uma tabela do banco de dados, chamada vocabulário. Por exemplo, na solicitação “sumiu a contabilidade da fatura no faturamento quando gero um pedido de mídia”, a contagem das palavras da solicitação ficará 7, retirando as stopwords como no exemplo abaixo: Exemplo: sumiu |a| contabilidade |da| fatura |no| faturamento |quando| gero |um| pedido |de| mídia

O total de palavras que não se repetem são 7, somando as palavras “sumiu, contabilidade, fatura, faturamento, gero, pedido, mídia”. As palavras que estão pré-definidas na tabela vocabulário que não devem ser contadas são: “a, da, no, quando, um, de” e chamaremos de resultado A.

A entrada de informação (caso de entrada) seria com os atributos: Sistema ‘Publimanager’, Módulo ‘Contabilidade’ e Assunto ‘Movimento Contábil’ e a solicitação ‘sumiu |a| contabilidade

10    

|da| fatura |no| faturamento |quando| gero |um| pedido |de| mídia’. Digamos que a representação do caso inicia como na Figura 4 abaixo.  

 

 Figura 4 - Exemplo do início da descrição da solicitação  

Antes de inciar a pesquisa no sistema vamos entender como funciona a recuperação do conhecimento na BC em busca de um caso similar através do processo Mac/Fac. O processo Mac faz uma pré-seleção de possíveis candidatos através de uma comparação rápida. Já o processo Fac usa a medida de similaridade somente nos casos escolhidos na primeira etapa.

3.2.2 Recuperações Mac no sistema A indexação é utilizada para determinar quais as entidades de informação são mais

importantes na busca de dados, e serve para facilitar a pesquisa na BC. Entidade de informação é cada palavra contida na representação do caso que o usuário digita na qual deseja pesquisar.

Na medida de similaridade de string, em geral, é usada a indexação para agilizar a pesquisa de um caso. Um conjunto de campos é mais importante e ajuda a identificar um caso do outro para solução de uma situação atual. Para que possamos encontrar um caso mais similar na base de conhecimento, temos que definir quais são os atributos utilizados para diferenciar um dos outros (WANGENHEIM, 2003). Esses atributos são chamados de índices, que são combinações importantes de campos que permitem distinguir os casos. No exemplo abaixo, os campos indexados são os campos sistema, módulo e assunto da tabela suporte.

Índice Sistema - O sistema onde ocorreu o problema.

11    

Índice Módulo - O módulo ajuda a diferenciar pelo fato do usuário sempre possuir vários módulos em um determinado sistema.

Índice Assunto - certos problemas são comuns a determinados módulos, por exemplo, o assunto refere-se a um determinado módulo. A Figura 5 abaixo mostra quais os campos são os índices:

Figura 5 - Campos de Indexação

O objetivo da recuperação de casos é buscar casos similares com informações relevantes

para que a situação atual seja resolvida com soluções usadas anteriormente. No Publisos foi usado o processo Mac/Fac, isto é, recuperação em dois níveis para fazer recuperação dos casos.

Com base nos índices na pesquisa de um caso, o sistema descarta o que for diferente dos filtros selecionados pelo usuário. A indexação faz a separação para o processo Mac recuperar somente os casos com alguma similaridade através dos atributos descritos acima. Veja na Tabela 1, os campos de indexação na tabela suporte da BC.

Tabela 1 - Campos Indexados

Atributo Significado Tipo de campo Sistema Sistema onde ocorreu o problema Campo indexado

Módulo Módulo onde ocorreu o problema Campo indexado

Assunto Assunto onde ocorreu o problema Campo indexado

Solicitação Descrição detalhada do problema ocorrido Campo textual

Solução do Problema Descrição da solução do problema Campo textual

12    

A entrada de informação tem os índices: no campo Sistema ‘Publimanager’, no campo Módulo ‘Contabilidade’ e no campo Assunto ‘Movimento Contábil’ esses campos o usuário escolhe o que conhece. O campo textual da solicitação é: “sumiu |a| contabilização |da| fatura |no| faturamento |quando| gero |um| pedido |de| mídia”. Digamos que a representação do caso inicia na BC como na Tabela 2.

Tabela 2 - Componentes de um Caso na BC

Sistema Módulo Assunto Solicitação Solução

Publimanager Contabilidade Movimento Sumiu a contabilização do faturamento quando gero um pedido de midia

Gerou movimento duplicado

Publiexpress Financeiro Caixa Não encontro o lançamento de hoje Erro no filtro

Publinet Atendimento Pit Como cadastrar um pit Opções pit

Publimanager Contabilidade Movimento sumiu a contabilidade da fatura no faturamento quando faturo um pedido

Deveria gerar um lançamento de débito

Publimanager Atendimento Pauta Não vejo as pautas da produção Recurso de visualizar

Publinet Produção Orçamento O valor bruto está diferente do PP O tipo de faturamento

Publimanager Contabilidade Fluxo Calcular o fluxo dos clientes do grupo A

Cálculo do Ativo

Publiexpress Mídia Plano de mídia

O valor líquido não bate com a receita Chegada de nota

Publimanager Utilitários Correio Como enviar um correio externo O ip não confere O processo MAC recupera um conjunto de possíveis casos através da consulta ao banco de

dados usando a indexação dos campos id_sistema, módulo e id_assunto. Com esse processo, a pesquisa fica otimizada, evitando o número de comparações em toda a base. Todos os casos considerados ineficientes para a solução do problema atual são excluídos automaticamente, deixando separados os casos considerados úteis. Esse modelo faz uma pré-seleção de possíveis candidatos através de uma comparação rápida. O resultado desta pesquisa está na Tabela 3 abaixo:

Tabela 3 – Resultado do processo MAC

Sistema Módulo Assunto Solicitação Solução

Publimanager Contabilidade Movimento Sumiu a contabilização do faturamento quando gero um pedido de midia

Gerou movimento duplicado

Publimanager Contabilidade Movimento sumiu a contabilidade da fatura no faturamento quando faturo um pedido

Deveria gerar um lançamento de débito

Neste momento foi feita uma busca somente pelos índices a partir de agora começa a calcular

a similaridade na BC dos registros selecionados pelo processo Mac. Na Tabela 3, onde somente foram pré-selecionados os casos através dos índices, é feita uma busca no campo “solicitação”, da BC, do mesmo modo que o passo anterior feito na digitação do usuário. O sistema elimina as palavras redundantes, da mesma forma que também desconsidera as palavras sem relevância para a pesquisa de similaridade na tabela vocabulário que chamaremos de resultado B.

Por exemplo, no campo solicitação da BC contém: “sumiu a contabilização do faturamento quando gero um pedido de mídia”, a contagem das palavras desta solicitação ficará 6 retirando as stopwords como no exemplo abaixo:

13    

Exemplo: sumiu |a| contabilização |do| faturamento |quando| gero |um| pedido |de| mídia

O total de palavras que não se repetem são 6, somando as palavras “sumiu, contabilização, faturamento, gero, pedido, mídia”. As palavras que estão pré definidas na tabela vocabulário que não devem ser contadas são “a, do, quando, um, de”.

Desta forma, foram descartados os casos irrelevantes para a pesquisa, mas ainda não foi usada a medida de similaridade. Neste momento, restaram apenas os casos compostos pelos índices: sistema “Publimanager”, módulo “Contabilidade”, e o assunto “Movimento Contábil”. Temos nesse momento o resultado A, que é a frase digitada pelo usuário sem as palavras redundantes e sem as stopwords e também o resultado B com a mesma regra. Só depois de limpar a frase retornada pelo processo Mac é que podemos fazer a comparação do resultado A com o B e usar a regra de similaridade no processo FAC.

3.2.3 Recuperação FAC do sistema Na segunda fase, aplica-se a medida de similaridade nesse conjunto de casos retornados pelo processo Mac de forma sequencial, em que é feito o cálculo de similaridade para todos os registros retornados neste processo. Suas principais vantagens estão no desempenho, pois será examinado um conjunto de casos menores.

Para efetuarmos a busca de um caso mais similar usaremos a medida de similaridade. O cálculo conta quantas palavras do resultado A são iguais ou estão contidas no resultado B e vice-versa. Neste passo é comparado o resultado A com o resultado B. O resultado A é comparado registro a registro de forma sequencial com os registros retornados pelo processo Mac, para contar quantas palavras do resultado A se encontra no resultado B (na segunda pesquisa).

Se a quantidade de palavras do resultado A for maior que a quantidade do resultado B, então se divide a quantidade de palavras iguais ou contidas pela a quantidade de palavras do resultado A. Caso a quantidade de palavras do resultado B for maior que a quantidade de palavras do resultado A então se divide a quantidade de palavras iguais ou contidas pelo resultado B. Calculado o número de palavras, o resultado do cálculo é carregado em uma tabela para depois ser ordenado de forma decrescente de similaridade.

Variáveis: SIM= similaridade;

qt= quantidade de palavras iguais ou contidas ; qtSol= quantidade de palavras no campo solicitação do banco;

qtVlr= quantidade de palavras digitada pelo usuário;

Cálculo: Se a quantidade de palavras digitada pelo usuário > Solicitação do banco

SIM= qt / qtVlr Se a quantidade de palavras no campo solicitação na BC > palavras digitadas pelo usuário

SIM= qt / qtSol

14    

Exemplo:

Solicitação digitada pelo usuário: - sumiu a contabilidade da fatura no faturamento quando gero um pedido de mídia;

Solicitação contida na BC: - sumiu a contabilização do faturamento quando gero um pedido de mídia.

Quando a similaridade é 1 então chamamos de similaridade de correspondência exata. Neste caso, não é esta resposta que o usuário receberá, pois quanto maior o grau de similaridade mais provável que seja a solução que o usuário procura.

A recuperação de casos tem como objetivo encontrar um caso ou um conjunto de casos similares na base de casos, que contenha uma solução útil ou contemple, parcialmente, a consulta através da medida de similaridade.

O resultado do cálculo de similaridade aplicado nos casos é responsável pela ordenação dos casos que será mostrado ao usuário. Os resultados servem para o analista pesquisar qual o melhor caso para resolver a situação atual. Pode-se também ser alterado e gerado um novo caso na BC. Vejamos na Figura 6 o resultado desta comparação:

Figura 6 - Resultado da similaridade

Clicando no ícone pesquisar caso no lado direito inferior, o sistema trará o resultado da pesquisa:

Tabela 4 – Resultado da pesquisa usando os índices Solicitação Sumiu a contabilidade da fatura no faturamento quando gero um pedido de mídia

0,86 Sumiu a contabilização do faturamento quando gero um pedido de mídia

0,71 Sumiu a contabilidade da fatura no faturamento quando faturo um pedido

15    

No caso que apresenta maior grau de similaridade (0,86) foram encontradas seis palavras iguais e sete na solicitação digitada pelo usuário. Então, neste caso basta dividir o total de palavras iguais que são seis pelo número maior de palavras que são sete que foram digitadas pelo usuário.

SIM= qt / qtsol se a quantidade de palavras na BC for maior que a solicitação digitada;

SIM= qt / qtvlr se a quantidade de palavras digitada for maior ou igual que na BC;

Como o total de palavras digitadas pelo usuário é maior usaremos a fórmula:

SIM= qt / Vlr

SIM= 6 / 7 = 0,86

3.3 Reutilizações de Casos

A reutilização de casos tem como objetivo constante de reter o conhecimento para que o sistema baseado em RBC continue incrementando sua base de casos para solucionar problemas mais complexos. Quando um caso atual é similar a um caso na BC, então um possível caso já pode ter sido resolvido anteriormente, neste momento o técnico pode adicionar novas características. Logo após o problema ser resolvido, a experiência é retida como um novo caso para solucionar problemas futuros.

Esta forma de aprendizado é uma grande vantagem do sistema RBC, pois aumenta o conhecimento específico para aplicação que está sendo usada. Sempre que um problema é resolvido com sucesso, a BC tem maior chance de encontrar situações similares para resolver um problema futuro, ou seja, para todo o caso que foi resolvido ou adaptado para resolução do caso atual é criado um novo caso onde a nova descrição e a nova solução é armazenada como um caso novo. O aprendizado do sistema baseado em RBC tem como objetivo melhorar o seu desempenho por meio de ajustes das regras de similaridade e aprendizado.

3.4 Exemplos de Uso

  Para avaliar o modelo proposto, foi utilizado um algoritmo usando a tecnologia RBC. Foram feitas comparações de qualidade de resposta da pesquisa em três situações distintas na  BC. Temos na BC um assunto sobre nfe (nota fiscal eletrônica), especificamente a solicitação digitada pelo usuário foi: “Geramos uma nova nfe e ao gerarmos esta fatura para a prefeitura, verificamos que existem dois números duplicados onde apenas um contém as informações do fornecedor”.

A idéia é pesquisar esta solicitação e encontrar na BC um caso mais similar possível como demonstrado nas Figuras 7, 8 e 9 abaixo: na BC tem 300 registros dos mais variados assuntos, e é entre esses assuntos que procuraremos pesquisar sobre nfe.

A Figura 7 abaixo demonstra a esquerda um número, que significa o grau de similaridade dos casos listados em ordem decrescente. Foi verificado que a pesquisa feita no teste trouxe entre os cinco primeiros casos um assunto referente ao proposto. Neste exemplo abaixo é de correspondência exata, onde a solicitação digitada pelo usuário é igual ao caso na BC e recebe o grau máximo de similaridade que é 1. Uma situação difícil de acontecer, mas que não pode ser descartada, pois pode ocorrer em algum momento da pesquisa.

16    

Figura 7 – Resultado correspondência exata

Para esclarecer melhor o resultado da pesquisa montamos a Tabela 5 com os graus de similaridade com seus respectivos resultados em ordem decrescente comparado com a solicitação do usuário.

Tabela 5 – Resposta da pesquisa com o grau de similaridade Solicitação Geramos uma nova nfe ao gerarmos esta fatura para a prefeitura verificamos que

existem dois números duplicados

1 Ao gerarmos uma NF fatura para a prefeitura verificamos que existem dois números duplicados

0,64 A NFE que foi enviada para a prefeitura, verificamos que existem dois números duplicados

0,31 Existe alguma forma de exportar o nº da NFE para o Publi, ou somente manualmente. Pq da um trabalho imenso.Aguardo.

No segundo exemplo, na Figura 8, o usuário digita apenas cinco (5) palavras e mesmo assim a pesquisa trouxe um resultado positivo, com um valor de similaridade mais baixo, pois não tinha palavras suficientes para fazer o cálculo de similaridade.

17    

Figura 8 – Exemplo utilizando pouca palavra na solicitação

Montamos a Tabela 6 com os graus de similaridade com seus respectivos resultados em

ordem decrescente comparado com a solicitação do usuário.

Tabela 6 – Resposta da pesquisa utilizando poucas palavras Solicitação Existe dois números duplicados na prefeitura

0,56 A nfe que foi enviada para a prefeitura verificamos que existe dois números duplicados

0,45 Geramos uma nova nfe e ao gerarmos esta fatura para a prefeitura verificamos que existe dois números duplicados

0,23 Existe alguma forma de exportar o nº da NFE para o Publi, ou somente manualmente. Pq da um trabalho imenso. Aguardo.

A resposta do sistema trouxe um resultado positivo para o usuário e, além disso, outros

casos que envolvem o assunto nfe. Por isso, o sistema de RBC é considerado o mais apropriado para um sistema de Help Desk. O objetivo da recuperação de casos é encontrar um conjunto de casos que possa ser útil ao usuário para resolver o problema atual. O sistema Publisos se tornará mais eficiente com o tempo, pois teremos mais casos na BC para serem analisados.

No terceiro exemplo, na Figura 9, o usuário digita uma solicitação que não é idêntica a que

se encontra na BC, mas existe a regra do contido, em que a palavra “gerar” está contida na palavra “gerarmos” na BC. Com isso, a pesquisa trouxe um resultado positivo, com um valor de similaridade igual a 1.

18    

Figura 9 – Regra do contido  

Para exemplificar o resultado da pesquisa montamos a tabela 7 com os graus de similaridades e seus resultados em ordem decrescente.

Tabela 7 – Resultado do contido

Solicitação Geramos uma nova nfe ao gerar esta fatura para a prefeitura verificamos que existem dois números duplicados

1 Geramos uma nova nfe e ao gerarmos esta fatura para a prefeitura verificamos que existem dois números duplicados

0,64 A nfe que foi enviada para a prefeitura verificamos que existem dois números duplicados

0,31 Existe alguma forma de exportar o nº da NFE para o Publi, ou somente manualmente. Pq da um trabalho imenso. Aguardo.

Lembrando que esses resultados foram conseguidos entre 300 registros na BC. Neste exemplo da Figura 9, o resultado foi alterado por somente uma única palavra que fez a diferença no grau de similaridade. O sistema trabalha na comparação da solicitação digitada com a solicitação do banco, verificando se as palavras estão contidas na frase uma da outra e conta como se fossem similares.

3.6 Implementação ASP, HTML e JavaScript, foram as linguagens de programação utilizadas no

desenvolvimento do sistema. Como banco de dados, foi utilizado o mysql e para a modelagem dos diagramas UML foi utilizada a ferramenta JUDE.

19    

4 AVALIAÇÃO DO SISTEMA Para a análise de performance do Publisos foram elaborados vários testes. A base de casos

continha 300 casos descritos e a função de recuperação do Publisos obtiveram-se em média nos cinco primeiros casos um caso referente ao assunto proposto. Para isso os 14 funcionários da empresa cadastraram diversos casos reais para depois fazer uma pesquisa sobre o assunto. Cada usuário efetou 10 pesquisas e entre essas dez a resposta foi positiva em oito delas, onde a resposta do sistema foi relevante para a solução da situação atual. Nos exemplos apresentado acima, o usuário conseguiu obter uma resposta adequada ao seu problema atual. O usuário poderá melhorar a resposta através de um melhor detalhamento da solicitação do problema sendo mais específico, dirigindo a descrição para palavras chaves e mais técnicas, retirando o ruído (palavras que não contribuem para determinação do problema). Enfim, neste exemplo, o Publisos atendeu aos seus objetivos, já que forneceu uma boa resposta ao usuário, proporcionando agilidade aos envolvidos no problema, o cliente e o analista. Também durante os testes do Publisos, o resultado foi muito positivo. Em torno de 80% dos testes obteve-se sucesso (uma solução anteriormente usada serviu para resolver um novo caso). Constatou-se que é possível aumentar o percentual de sucesso instruindo o usuário do Publisos a dirigir a solicitação do problema para aproveitar melhor as potencialidades do mecanismo de pesquisa, pelo uso de palavras técnicas e pela variação do limite do percentual de similaridade.

4.1 Implantação Este sistema de suporte WEB está em fase de implantação, sendo melhorado dia a dia com

ajuda dos técnicos. Foi implantado no ambiente de teste, a partir do mês de outubro do corrente ano. Pretende-se implantar essa solução no ambiente de produção até o início do ano de 2011. Até lá, os analistas de suporte efetuarão uma bateria de testes para detectar possíveis erros, para que esses possam ser corrigidos antes da implantação no ambiente de produção.

Como existe alta demanda de solicitações de suporte por parte dos usuários e o processo de desenvolvimento neste ambiente é feito todo manual, até o dia da implantação final, grande parte da carga horária de trabalho dos analistas de suporte estará concentrada nos testes desta ferramenta para que seja implementada sem erros. Para um melhor rendimento do cadastro de casos no sistema, inicialmente, os técnicos passaram por um treinamento com o objetivo de estarem capacitados para a utilização desta ferramenta.

5 CONCLUSÃO Ao desenvolver este trabalho foi possível aprender e aprofundar os conhecimentos

relacionados aos sistemas inteligentes. O uso de RBC no sistema Publisos foi fundamental para o desenvolvimento deste projeto, pois sem a utilização deste recurso, seria praticamente impossível desenvolver uma solução deste tipo. Neste artigo foi avaliado o método de RBC usando a técnica de recuperação de string.

A união de um sistema de Help Desk com o RBC otimiza e facilita o atendimento do processo de suporte dando ao cliente uma resposta ágil e eficiente. Com o sistema RBC, os usuários mais novos (menos experientes) podem adquirir conhecimentos que estão em uma BC, que poderia gerar meses de treinamento.

Em relação a trabalhos futuros é possível ter melhores resultados na avaliação, mesclando técnicas de similaridade de strings, dando um resultado melhor na busca na BC. Outra forma de melhorar o processo da pesquisa de similaridade é a utilização de sinônimos e tempo verbal. Desta forma, seria possível encontrar mais casos semelhantes e aumentar o grau de similaridade, buscando a eficiência total, que é o grau de similaridade igual a 1, chamado de correspondência exata. Este tipo de abordagem seria inovadora e de grande utilidade para o sistema de Help Desk.

20    

6 REFERÊNCIAS AAMODT, A.; PLAZA E. Case-Based Reasoning: Foundational Issues, Methodological Variations and System Approaches. Aicom, 1994.

ABELSON, R. Scripts, Plans, Goals and Understanding. Hillsdalle. NJ, Erlbaum, 1977. BERGMANN, R.; BREEN, S. et al. Initial Methodology for Building and Maintaining a CBR Application. ESPIRIT Project 22196, 1997. BURKHARD, H. D. Extending some Concepts of CBR: case-based reasoning technology from foundations to applications springer: Verlag, 1998. CORDEIRO, José Carlos. Técnicas para Gerenciamento de Projetos de Software, Rio de janeiro: Brasport, 2007. FURLAN, José Davi. Modelagem de Objetos através da UML, São Paulo: MAKRON Books, 1998. GENTNER, D.; FORBUS, K.D. MAC\FAC: a Model of Similarity Based Retrieval In Proc. ff the 13th Anual Conference of the Cognitive Science Society, 1991. SCHANK, R. Dynamic Memory: A Theory of Learning in Computers and People. Cambridge University Press, 1982. SEIFERT, C. M.; McKONN, G. et al. Memory Connections betwenn Tematially Similar Episodes. Journal on Exp. Psychology Memory Cognition, p.12, 1986. SOUZA, Ana Lúcia, FORMOSO, Francisco. Citações e Referências a Documentos Eletrônicos. Disponível em <http://www.simpros.com.br/upload/A05_2_artigo14647.pdf >. Acesso em 11 Jun. 2010

WANGENHEIM, Cristiane Gresse von; WANGENHEIM, Aldo Von. Raciocínio Baseado em Casos. Barueri, SP: Manole, 2003.

WATSON, I. Applying Case-Based Reasoning Tecniques for Enterprise Systems: Morgan Kaufmann Publisher, Califórnia, 1997.