Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando...

110
UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO SapiSim Um módulo para identificação de coautorias nas produções científicas do SAPI por Luis Fernando Balsini Itajaí (SC), novembro de 2012

Transcript of Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando...

Page 1: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

UNIVERSIDADE DO VALE DO ITAJAÍ

CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR

CURSO DE CIÊNCIA DA COMPUTAÇÃO

SapiSim Um módulo para identificação de coautorias nas produções científicas do SAPI

por

Luis Fernando Balsini

Itajaí (SC), novembro de 2012

Page 2: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

UNIVERSIDADE DO VALE DO ITAJAÍ

CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR

CURSO DE CIÊNCIA DA COMPUTAÇÃO

SapiSim Um módulo para identificação de coautorias nas produções científicas do SAPI

Área de Sistema de Informação

por

Luis Fernando Balsini

Relatório apresentado à Banca Examinadora

do Trabalho Técnico-científico de Conclusão

do Curso de Ciência da Computação para

análise e aprovação.

Orientador: André Luís Alice Raabe, Dr

Itajaí (SC), novembro de 2012

Page 3: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

RESUMO

Balsini, Luis Fernando. SapiSim. Um módulo para identificação de coautorias nas produções

científicas do SAPI. Itajaí, 2012. 104. Trabalho Técnico-científico de Conclusão de Curso

(Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas da Terra e do

Mar, Universidade do Vale do Itajaí, Itajaí, 2012.

Este projeto tem como tema principal o desenvolvimento de um módulo de identificação de

coautorias nas produções científicas do SAPI 2.0. O SAPI é um sistema que gerência o

registro e a comprovação das produções científicas de uma instituição de ensino superior

fornecendo informações qualificadas para os gestores. O desenvolvimento do módulo

SapiSim é importante, pois o sistema SAPI apresenta redundâncias em relatórios de grupos. O

módulo SapiSim trará maior confiança nos resultados obtidos em relatórios conjuntos dos

escores dos docentes. As produções científicas são cadastradas no currículo Lattes e

importadas para o SAPI. O currículo Lattes gerencia uma base de dados sobre pesquisadores.

Ao cadastrar uma produção científica ocorre a inserção manual de atributos pelo docente,

podendo ocorrer erros de digitação. Por este motivo uma mesma produção pode ter diferentes

atributos o que dificulta com que sejam identificadas como sendo a mesma produção. Foi

realizada uma análise de métodos e técnicas utilizadas em outros trabalhos onde se pode

observar que as técnicas de tokenização, normalização e retirada de stopwords são

fundamentais para este trabalho e também a métrica de similaridade textual, a distância de

Levenshtein como sendo a melhor e mais confiável maneira de se determinar a similaridade

entre duas produções. As técnicas propostas foram implementadas em uma versão de testes do

sistema SAPI e foram conduzidos dois estudos de caso com docentes da UNIVALI. Os

resultados ilustram a conclusão da ferramenta alcançando o seu objetivo, de encontrar a

grande maioria das coautorias viabilizando a validade da abordagem e possibilitam que sua

implantação como novo módulo do sistema SAPI seja concretizada em um futuro próximo.

Palavras-chave: Tratamento de redundâncias. Tratamento da linguagem natural. Métrica de

similaridade textual.

Page 4: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

ABSTRACT

This project has as main theme the development of an identification module authorships

scientific production in the SAPI 2.0. SAPI is a system that manages the registration and

verification of the scientific production of a higher education institution providing quality

information for managers. The module development is important because the system has

redundancies in SAPI group reports. The module SapiSim bring greater confidence in the

results obtained in joint reports of scores of teachers. The scientific products are registered in

the Lattes curriculum and imported into the SAPI. Curriculum Lattes manages a database of

researchers. When registering a scientific manual editing occurs by the teacher attributes,

typographical errors may occur. For this reason the same production run may have different

characteristics which makes them to be identified as being the same output. An analysis of

methods and techniques used in other studies where one can observe that the techniques of

tokenization, normalization and removal of stopwords are fundamental to this work and also

the textual similarity metric, the Levenshtein distance as the best and most reliable way to

determine the similarity between two productions. The proposed techniques were tested in the

software and two case studies with UNIVALI researchers were conducted showed. The

results illustrate the tool completes reaching your goal, to find the vast majority of co-

authorships enabling the validity of the approach and enable their deployment as new SAPI

module system is implemented in the near future.

Keywords: Handling redundancies. Treatment of natural language. textual similarity metric

Page 5: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

LISTA DE TABELAS

Tabela 1. Comparação de produções cientifica entre dois docentes. ....................................... 13

Tabela 2. Comparativo entre trabalhos pesquisados. ............................................................... 39

Page 6: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

LISTA DE FIGURAS

Figura 1. Diagrama de integração de tecnologias SmartClient ................................................ 21

Figura 2. Modelo de Dados do SAPI 2.0 .................................................................................. 23

Figura 3. Matriz Distância de Levenshtein ............................................................................... 32

Figura 4. Passo a passo Distância de Levenshtein .................................................................... 32

Figura 5 Diagrama de Classe – Pacote Controle. ..................................................................... 50

Figura 6 Diagrama de Classes – Pacote Tratador. .................................................................... 52

Figura 7 Diagrama de classe – Pacote Similaridade................................................................. 54

Figura 8 Diagrama de classe – Pacote Modelo ......................................................................... 55

Figura 9 Diagrama de Classe – Pacote Acessa Banco. ............................................................. 56

Figura 10. Tela do sistema SAPI 2.0 – TEL001. ...................................................................... 61

Figura 11. Tela do sistema SAPI 2.0 – TEL001. ...................................................................... 61

Figura 12. Tela do Módulo SapiSim – TEL002 ....................................................................... 62

Figura 13. Tela do Módulo SapiSim – TEL002. ...................................................................... 63

Figura 14. Tela do Módulo SapiSim – TEL003. ...................................................................... 64

Figura 15. Tela do Módulo SapiSim – TEL003. ...................................................................... 65

Figura 16. Tela do Módulo SapiSim – TEL003. ...................................................................... 65

Figura 17. Tela do Módulo SapiSim – TEL003. ...................................................................... 66

Figura 18. Tela do sistema SAPI 2.0 – TEL001 ....................................................................... 66

Figura 19. Tela do Módulo do SapiSim – TEL004. ................................................................. 67

Figura 20. Tela do Módulo SapiSim – TEL004. ...................................................................... 68

Figura 21. Tela do Módulo do SapiSim – TEL005. ................................................................. 69

Figura 22. Resultado do estudo de caso 1. ............................................................................... 73

Figura 23. Resultado do estudo de caso 2. ............................................................................... 76

Figura 24. Diagrama de classe – Controle. ............................................................................... 87

Figura 25. Diagrama de classe – Pacote Tratador. ................................................................... 90

Figura 26. Diagrama de classe – Pacote Similaridade.............................................................. 94

Figura 27. Diagrama de classe – Pacote Modelo. ..................................................................... 97

Figura 28. Diagrama de classe – Pacote Acessa Banco. .......................................................... 99

Page 7: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

LISTA DE QUADROS

Quadro 1.StopWords em português.......................................................................................... 26

Quadro 2. StopWords em inglês ............................................................................................... 27

Quadro 3. Algoritmo de Levenshtein em Java. ........................................................................ 84

Quadro 4. Algoritmo Cosine Similarity ................................................................................... 85

Quadro 5. Definição dos atributos da classe IdentificaCoautoria. ........................................... 88

Quadro 6. Descrição dos métodos da classe JPAIdentificaCoautoriaDAO. ............................ 89

Quadro 7. Descrição dos atributos da classe JPACommandDAO. .......................................... 89

Quadro 8. Descrição dos métodos da classe JPACommandDAO. ........................................... 89

Quadro 9. Descrição dos atributos da classe JPAStopWordsDAO .......................................... 90

Quadro 10. Descrição dos métodos da classe JPAStopWordsDAO ........................................ 91

Quadro 11. Descrição dos atributos da classe JPANormalizacaoDAO.................................... 91

Quadro 12. Descrição dos métodos da classe JPANormalizacaoDAO .................................... 91

Quadro 13. Descrição dos métodos da classe

JPANormalizacaoEStopWordsTrabalhosEmEventosDAO.............................................. 92

Quadro 14. Descrição dos métodos da classe

JPANormalizacaoEStopWordsProjetoDePesquisaDAO .................................................. 92

Quadro 15. Descrição dos métodos da classe JPANormalizacaoEStopWordsLivroDAO ....... 93

Quadro 16. Descrição dos métodos da classe

JPANormalizacaoEStopWordsCapituloDeLivroDAO ..................................................... 93

Quadro 17. Descrição dos métodos da classe JPANormalizacaoEStopWordsBancaDAO ...... 93

Quadro 18. Descrição dos métodos da classe

JPANormalizacaoEStopWordsArtigoPublicadoDAO...................................................... 94

Quadro 19. Descrição dos atributos da classe JPAFormulasSimilaridadeDAO ...................... 95

Quadro 20. Descrição dos métodos da classe JPAFormulasSimilaridadeDAO ....................... 96

Quadro 21. Descrição dos atributos da classe JPACalculoSimilaridadeDAO ......................... 96

Quadro 22. Descrição dos métodos da classe JPACalculoSimilaridadeDAO .......................... 96

Quadro 23. Descrição dos atributos da classe Copia ................................................................ 98

Quadro 24. Descrição dos métodos da classe Copia. ............................................................... 98

Quadro 25. Descrição dos métodos da classe JPAProducaoDAO. ........................................ 102

Quadro 26. Descrição dos atributos da classe Produção. ....................................................... 103

Quadro 27. Descrição dos métodos da classe Produção ......................................................... 104

Quadro 28. Descrição dos métodos da classe JPAAutomaticoMonitoriaDAO. ..................... 105

Quadro 29. Descrição dos atributos da classe AutMon. ......................................................... 105

Quadro 30 . Descrição dos métodos da classe AutMon. ........................................................ 106

Quadro 31. Algoritmo da Formula de Similaridade ............................................................... 109

Quadro 32. Algoritmo da Formula de Similaridade ............................................................... 110

Page 8: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

LISTA DE EQUAÇÕES

Equação 1 ................................................................................................................................. 12

Equação 2 ................................................................................................................................. 29

Equação 3 ................................................................................................................................. 30

Equação 4 ................................................................................................................................. 32

Equação 5 ................................................................................................................................. 33

Equação 6 ................................................................................................................................. 35

Equação 7 ................................................................................................................................. 44

Equação 8 ................................................................................................................................. 44

Equação 9 ................................................................................................................................. 44

Equação 10 ............................................................................................................................... 45

Equação 11 ............................................................................................................................... 45

Equação 12 ............................................................................................................................... 45

Page 9: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

LISTA DE ABREVIATURAS E SIGLAS

TTC Trabalho Técnico-científico de Conclusão de Curso

UNIVALI Universidade do Vale do Itajaí

SAPI Sistema de Avaliação de Produção Institucional

CNPq Conselho Nacional de Desenvolvimento Científico e Tecnológico

XML Extensible Markup Language

GPL General Public Licence

PUC-RS Pontíficia Universidade do Rio Grande do Sul

PLN Processamento da Linguagem Natural

UML Unified Modeling Language

RIA Rick Internet Application

HTML Hyper Text Markup Language

GUI Graphical User Interface

POJO Plain Old Java Objects

DAO Data Access Objects

MVC Model-View-Controller

CRUD Create-Read-Update-Delete

HTTP HyperText Transfer Protocol

API Application Programming Interface

JSON JavaScrip Objetc Notation

KDT Knowledge Discovered in Texts

SGBD Sistema de Grenciamento de Banco de Dados

KDD Knowledge Discovered in Databases

MT Mineração de Texto

RI Recuperação de Informação

URL Uniform Resource Locator

WEB World Wide Web

SRI Sistema de Recuperação de Informação

Page 10: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

SUMÁRIO

1 INTRODUÇÃO .................................................................................... 12

1.1 PROBLEMATIZAÇÃO .................................................................................. 13

1.1.1 Formulação do Problema ............................................................................. 13

1.1.2 Solução Proposta .......................................................................................... 14

1.2 OBJETIVOS ..................................................................................................... 15

1.2.1 Objetivo Geral .............................................................................................. 15

1.2.2 Objetivos Específicos .................................................................................... 15

1.3 METODOLOGIA ............................................................................................ 15

1.4 ESTRUTURA DO TRABALHO ..................................................................... 16

2 FUNDAMENTAÇÃO TEÓRICA ...................................................... 17

2.1 SISTEMA SAPI ................................................................................................ 17

2.1.1 Detalhamento da Versão 2.0 do SAPI ......................................................... 17

2.2 MINERAÇÃO DE TEXTO ............................................................................. 23

2.2.1 Processamento da Linguagem Natural (PLN) ............................................ 24

2.2.2 Retirada de StopWords ................................................................................ 25

2.3 MODELOS DE RECUPERAÇÃO DE INFORMAÇÕES ............................. 27

2.3.1 Modelo booleano........................................................................................... 28

2.3.2 Modelo da busca direta ................................................................................ 28

2.4 MEDIDAS BÁSICAS DE AVALIAÇÃO E EFICIÊNCIA DE

SISTEMAS ............................................................................................................. 29

2.4.1 Recordação ................................................................................................... 29

2.4.2 Precisão ......................................................................................................... 30

2.5 MÉTRICAS DE SIMILARIDADE TEXTUAL ............................................. 30

2.5.1 Distancia de Levenshtein ............................................................................. 31

2.5.2 Distância do Cosseno .................................................................................... 32

2.6 BIBLIOTECA SIMMETRICS ........................................................................ 34

2.7 ANÁLISE DE TRABALHOS SIMILARES ................................................... 36

2.7.1 ScriptLattes .................................................................................................. 36

2.7.2 Análise de Redes de Colaboração entre Pesquisadores .............................. 37

2.7.3 Análise das Áreas de Interesse dos Pesquisadores ..................................... 37

2.7.4 Remoção de ambiguidade das autorias de objetos bibliográficos .............. 38

3 DESENVOLVIMENTO ...................................................................... 41

3.1 DESCRIÇÃO GERAL DO SAPISIM ............................................................. 41

3.2 REQUISITOS FUNCIONAIS ......................................................................... 41

3.3 REQUISITOS NÃO FUNCIONAIS ................................................................ 41

3.4 REGRAS DE NEGÓCIO ................................................................................. 42

3.5 CÁLCULO DA SIMILARIDADE .................................................................. 43

3.5.1 Formula de Similaridade ................................... Erro! Indicador não definido.

3.6 DIAGRAMAS DE CLASSES .......................................................................... 46

3.6.1 Pacote Controle ............................................................................................ 50

Page 11: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

3.6.2 Pacote Tratador ............................................................................................ 51

3.6.3 Pacote Similaridade...................................................................................... 53

3.6.4 Pacote Modelo .............................................................................................. 55

3.6.5 Pacote Acessa Banco .................................................................................... 55

3.7 CASO DE USO ................................................................................................. 57

3.7.1 UC03 Confirmar / Rejeitar produções científicas ...................................... 57

3.8 TELAS DO MÓDULO SAPISIM ................................................................... 60

4 RESULTADOS ..................................................................................... 70

4.1 ESTUDO DE CASO 1 ...................................................................................... 71

4.2 ESTUDO DE CASO 2 ...................................................................................... 75

4.3 CONSIDERAÇÕES SOBRE OS ESTUDOS DE CASOS ............................. 77

5 CONCLUSÕES .................................................................................... 78

APÊNDICE A. ALGORITMOS DE MÉTRICAS DE

SIMILARIDADE ..................................................................................... 83

APÊNDICE B. DETALHAMENTO DE CLASSES ............................ 86

Page 12: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

12

1 INTRODUÇÃO

Este trabalho propõe a criação de um novo módulo para o sistema SAPI – Sistema de

Avaliação da Produção Institucional. O SAPI gerência o registro e a comprovação das

produções científicas de uma instituição de ensino superior fornecendo informações

qualificadas para os gestores da instituição, poder tomar decisões acerca da produtividade

de seus docentes. O desenvolvimento do Sistema SAPI foi iniciado na UNIVALI no ano de

2002 e segue em constante aprimoramento.

O SAPI importa as produções dos docentes a partir dos currículos inseridos na

Plataforma LATTES e também a partir de produções inseridas diretamente pelos docentes

no sistema. A Plataforma Lattes é uma base de dados de currículos de pesquisadores e

instituições, das áreas de Ciência e Tecnologia, atuando no Brasil. O sistema de currículos

Lattes surgiu da necessidade do Conselho Nacional de Desenvolvimento Cientifico e

Tecnológico (CNPq) de gerenciar uma base de dados sobre pesquisadores em C&T para

credenciamento de orientadores no país. (PACIEVITCH, 2009). O SAPI avalia estas

produções e gera um escore. Este escore é um valor numérico que representa os critérios de

avaliação definidos pelos gestores da instituição (SAPI, 2011).

Com o desenvolvimento de uma nova versão do sistema SAPI em 2011, a

experiência pessoal do autor deste TTC, que atua como estagiário do sistema SAPI,

permitiu identificar uma necessidade nesta versão referente a identificação de produções de

docentes coautores.

A coautoria é um aspecto importante de ser identificado, pois poderá aprimorar os

resultados de análise de grupos de pesquisa e unidades institucionais (como cursos e

centros) que possuam coautores frequentes. Por exemplo, um relatório da produtividade dos

docentes de um curso sem considerar coautoria será a soma (união) de todas as produções

destes. Ao considerar a coautoria excluem-se desta soma as produções idênticas, ou seja, as

produções de docentes de um mesmo curso, que sejam coautoras serão retiradas desta soma,

(intersecção entre eles) consequentemente não ocorrendo redundância conforme ilustra a

Equação 1.

)( coautoriaesprodDocentPcurso Equação 1

Segundo Chalco e Junior, (2009), as produções acadêmicas são frequentemente

desenvolvidas por pesquisadores que pertencem ao mesmo grupo ou pesquisadores de fora

Page 13: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

13

do grupo, mas que colaboram com o mesmo. Por exemplo, uma produção do tipo, artigo

completo em periódico às vezes pode possuir dois autores, caracterizando uma coautoria.

Por exemplo, as produções são cadastradas no currículo Lattes (CNPq) pelo docente

e capturada pelo SAPI por meio de um arquivo XML. As produções cadastradas possuem

vários atributos, e muitos deles são digitados, como (titulo do evento, nome do evento,

etc...).

O currículo Lattes, até o ano de 2012, não apresentava nenhum tipo de suporte para

identificar produções de coautoria, obrigando a realização do tratamento deste problema

dentro do próprio SAPI. Com isso o problema que está sendo abordado neste TTC está em

identificar a coautoria de produções presentes na base de dados do sistema SAPI 2.0

utilizando para isso a comparação dos atributos das produções dos currículos dos docentes.

1.1 PROBLEMATIZAÇÃO

1.1.1 Formulação do Problema

Na versão do SAPI 1.0, é realizada a identificação de coautorias, mas ocorrem erros

em sua identificação com resultados ainda distantes do ideal. Com o início do

desenvolvimento do SAPI 2.0 em 2011 surgiu a oportunidade de se tratar as redundâncias

entre produções coautoras de uma forma mais robusta.

O problema de identificação de coautorias tem como principal dificuldade a

comparação entre duas produções de dois docentes que ao inserirem-nas em seus currículos

Lattes o fazem com pequenas diferenças na forma de digitação. Um exemplo está ilustrado na

Tabela 1.

Tabela 1. Comparação de produções cientifica entre dois docentes.

Autor André Luis Alice Raabe Cesar Albenes Zeferino

Título do

trabalho

Bipide: Ambiente de Desenvolvimento

Integrado para Utilização dos

Processadores BIP no Ensino de Programação

Bipide: ambiente de desenvolvimento integrado

para utilização dos processadore BIP no ensino de

programação

Nome do

Evento

XX Simpósio Brasileiro de Informática na

Educação

SIMPÓSIO BRASILEIRO DE INFORMÁTICA NA

EDUCAÇÃO - SBIE 2009, 20.

Ao analisar a Tabela 1 verifica-se que ocorrer diferenças sutis de digitação, por

exemplo, letras (maiúsculas e minúsculas), erros ortográficos (Processadores e

processadore), a falta de símbolos e palavras (XX) ou sobra de palavras (- SBIE 2009, 20.).

Page 14: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

14

Estas diferenças dificultam que as produções sejam identificadas como sendo a

mesma produção, dependendo de uma abordagem que utilize a similaridade textual e não a

exatidão.

1.1.2 Solução Proposta

A solução proposta é desenvolver um módulo de identificação de coautorias de

produções científicas presentes na base de dados do sistema SAPI 2.0, utilizando para isto,

uma combinação de regras heurísticas e métricas de similaridade textual para identificar

apenas casos de atributos idênticos entre produções, mas também caso de produções

similares.

Este problema já foi abordado no trabalho de Chalco e Junior, (2009), o qual detecta

produções similares através da comparação entre todas as produções acadêmicas presentes

em um conjunto de dados. As produções só são consideradas iguais, se a porcentagem de

similaridade entre elas for maior que a porcentagem definida pela ferramenta.

Ainda neste trabalho foi utilizada a similaridade entre dois strings baseando-se na

distância de Levenshtein (1966), a qual é obtida através do numero mínimo de operações,

inserções, eliminação ou substituição de caracteres necessários para transformar um texto

em outro, ou seja, na comparação entre dois strings similares, usando a distância de

Levenshtein (1966), sempre terá a strings que está analisando (mandante), e a strings

analisada, então o algoritmo de Levenshtein (1966), analisará a strings analisada tendo a

strings mandante como modelo, com o objetivo de descobrir caracteres que estejam faltando

(inserções) ou que existe caracteres a mais (eliminação) ou até mesmo caracteres que só

precisam ser substituídos (substituição) entre os dois strings com o objetivo da strings

analisada seja transformada na strings mandante, que para no final seja retornado o número

de operações realizadas que servirá para a realização de uma média que resultará na

similaridade entre estes dois strings.

Para a determinação da similaridade entre strings e redução do risco de erros na

realização do cálculo da similaridade, foi utilizada a biblioteca SimMetrics. Esta biblioteca

Java de licença livre GPL (Gereral Public License) implementa algoritmos de similaridade

entre strings, utiliza métricas e resultados normalizados, para facilitar comparações entre os

algoritmos.

Page 15: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

15

1.2 OBJETIVOS

1.2.1 Objetivo Geral

Desenvolver um módulo para o sistema SAPI 2.0 que identifique coautorias entre

produções acadêmicas.

1.2.2 Objetivos Específicos

Pesquisar e documentar conceitos relacionados à similaridade de atributos;

Definir algoritmos de similaridade textual para comparação dos atributos;

Definir heurísticas e regras para ponderar a similaridade entre os atributos das

produções;

Testar e avaliar o módulo SapiSim no Sistema de Avaliação de Produção

Institucional (SAPI) da Universidade do Vale do Itajaí (UNIVALI).

1.3 METODOLOGIA

A etapa inicial do TTC foi o levantamento bibliográfico a análise de trabalhos

correlatos, buscando conhecer outras ferramentas com a finalidade similar que pudesse

auxiliar na definição de soluções para o módulo SapiSim. Além disso, foi apresentado o SAPI

e as tecnologias utilizadas em seu desenvolvimento como SmartClient, Hibernate e Padrões

de Projetos.

A segunda etapa foi à definição das heurísticas de similaridade que acabaram sendo

definidas utilizando a notação de regras de negócio que foram apresentadas no capítulo 3. Em

paralelo foram iniciados testes para apropriação das tecnologias utilizadas com o

desenvolvimento de pequenas aplicações de acesso a banco de dados.

A terceira etapa foi o estudo e implementação do módulo SapiSim integrado ao

SAPI. O módulo foi desenvolvido usando um branch no ciclo de desenvolvimento do SAPI

de forma que o código gerado pode ser integrado mais facilmente a versão do SAPI que se

encontra em uso.

Page 16: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

16

A quarta etapa foi à realização de dois estudos de caso com docentes típicos usuários

do SAPI e que possuíam um bom número de coautorias. Para realização dos testes diversas

necessidades e aprimoramentos foram identificados e implementados no módulo SapiSim.

A quinta e última etapa foi à produção desta monografia integrando os resultados e

redigindo as conclusões do trabalho.

1.4 ESTRUTURA DO TRABALHO

Este documento está estruturado em cinco capítulos. O Capítulo 1, Introdução,

apresenta o problema, solução e objetivos deste trabalho. No Capítulo 2, Fundamentação

Teórica, é apresentada uma revisão bibliográfica sobre: Sistema SAPI 2.0, Mineração de

texto, Modelos de Recuperação de Informações, Medidas básicas de avaliação e eficiência de

sistemas, Algoritmos de similaridade textual, Biblioteca SimMetrics, assim como uma análise

de trabalhos similares.

O Capítulo 3 apresenta o desenvolvimento detalhado do sistema que foi

desenvolvido, incluindo sua especificação e a sua modelagem em UML. O capítulo também

discute como foi implementado o módulo, apresentando a metodologia que foi utilizada no

desenvolvimento.

No Capítulo 4, apresentam-se os resultados das análises dos estudos de casos, onde

são abordados os resultados finais, e para concluir no capítulo 5 são apresentadas as

conclusões. O texto ainda inclui dois apêndices que complementam os diagramas de classes.

Page 17: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

17

2 FUNDAMENTAÇÃO TEÓRICA

Esta fundamentação teórica foi separada em seções que são as seguintes:

1. Sistema Sapi: Apresenta um detalhamento dos assuntos pertinentes para este

trabalho;

2. Mineração de texto: Apresenta técnicas de manipulação e tratamento de texto;

3. Modelos de Recuperação de texto: Apresenta os modelos de recuperação de texto,

mais pertinentes para este trabalho;

4. Medidas Básicas de Avaliação e Eficiência de Sistemas: Apresenta duas medidas,

Precision e Recall.

5. Métrica de similaridade textual: Relata a métrica de similaridade textual definida e a

descrição de seus algoritmos;

6. Biblioteca SimMetrics: Relata a biblioteca SimMetrics e seus métodos; e

7. Análise de Trabalhos similares: É feita a análise de trabalhos, que poderão ajudar

este TTC, com suas técnicas, com seus erros e acertos.

2.1 SISTEMA SAPI

SAPI – Sistema de Avaliação da Produção Institucional. O SAPI gerencia o registro

e a comprovação das produções de uma instituição de ensino superior fornecendo

informações qualificadas para os gestores de uma instituição poder tomar decisões acerca da

produtividade de docentes.

O SAPI importa as produções dos docentes a partir dos currículos inseridos na

Plataforma LATTES e também a partir de produções inseridas diretamente pelos docentes no

sistema. O SAPI avalia estas produções e gera um escore. Este escore é um valor numérico

que representa os critérios de avaliação definidos pelos gestores da instituição (SAPI, 2011).

Toda vez que novas produções são cadastradas no currículo Lattes (CNPq) pelo docente é

feito um pedido de atualização de produção para o SAPI e realizada a captura das mesmas por

meio de um arquivo XML.

2.1.1 Detalhamento da Versão 2.0 do SAPI

Serão detalhados a seguir os seguintes aspectos: Relatórios disponíveis, tecnologias

utilizadas, forma de armazenamento das produções e seus atributos.

Page 18: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

18

2.1.1.1 Relatórios

O SAPI possui uma gama de relatórios de produtividade das produções dos docentes,

o qual é utilizado para tomadas de decisões administrativas. Os relatórios são utilizados para

publicar os escores dos docentes de uma forma organizada e estruturada. Os relatórios são

divididos em: (i) Produtividade Individual; (ii) Produtividade Conjunta; (iii) Produtividade de

Curso; (iv) Produtividade de Setor.

1. Relatório de Produtividade Individual: Este relatório permite a visualização do

escore de um docente, permitindo selecionar um único docente e visualizar a sua

pontuação;

2. Relatório de Produtividade Conjunta: Este relatório permite a visualização de dois ou

mais escores dos docentes e comparar as suas pontuações;

3. Relatório de Produtividade por Curso: Este relatório permite a visualização da

pontuação dos cursos selecionados no sistema SAPI, permitindo comparar seus

escores. A pontuação do curso é a soma da pontuação de todos os docentes lotados

no curso;

4. Relatório de Produtividade por Departamento: Este relatório permite um ou mais

departamentos/setores da instituição visualizar suas pontuações e compara-las. A

pontuação do departamento/setor é a soma da pontuação de todos os docentes lotados

no departamento/setor.

2.1.1.2 Tecnologias Utilizadas

Serão apresentadas a seguir as tecnologias utilizadas no sistema SAPI 2.0 tais como:

(i) SmartClient que é responsável por gerar a interface com o usuário do sistema SAPI 2.0; (ii)

Framework Hibernate que é responsável por realizar a persistência de objetos JAVA na base

de dados do sistema e (iii) Padrões de Projeto escritos em Java que foram utilizados para

realizar a abstração da comunicação entre o SmartClient e o Hibernate; e por fim (iv)

Integração das tecnologias do SAPI 2.0, que descreve sucintamente como elas se comunicam

entre si mesmas.

SmartClient

A ferramenta SmartClient é uma Rich Internet Application (RIA), ou seja, uma

permite construir aplicações Web com características e funcionalidades de software desktop,

Page 19: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

19

transferindo todo o processamento da interface para o navegador da Internet e mantendo a

maior parte dos dados no servidor da aplicação.(SMARTCLIENT, 2012).

A ferramenta SmartClient realiza todas as suas funções e geração de Hyper Text

Markup Language (HTML) no browser. Nenhuma geração de HTML ou função é

manipulada pelo servidor. Uma vez carregada apenas os dados são transmitidos entre o

navegador e o servidor. Ao minimizar a carga de recursos no servidor para atualização da

GUI, essa arquitetura aumenta a capacidade de resposta e escalabilidade. Ao minimizar a

quantidade de código no servidor, a arquitetura também melhore a estabilidade e a

confiabilidade. (SMARTCLIENT, 2012).

Hibernate

O Hibernate facilita o armazenamento e recuperação de objetos de domínio Java

através de mapeamento objeto/relacional. O Hibernate abstrai o domínio do problema através

do desenvolvimento de padrões de projetos. (HIBERNATE, 2012)

O Hibernate é uma coleção de projetos relacionados permitindo aos desenvolvedores

utilizar modelos Plain Old Java Objects (POJO) estilo de domínio em suas aplicações de

forma que se estendem muito além do mapeamento objeto/relacional. Atualmente o Hibernate

já é utilizado no SAPI versão 2.0 com o principal objetivo de realizar a persistência de objetos

Java na base de dados.

Padrões de Projeto

Um Padrão de Projeto de Software ou também conhecido pelo termo original em

inglês, Design Pattern, descreve uma solução geral reutilizável para um problema recorrente

no desenvolvimento de sistemas de software orientados a objetos. É uma descrição ou modelo

de como resolver o problema, que pode ser usada em muitas situações diferentes.

Os Padrões de Projeto normalmente definem as relações e interações entre as classes

ou objetos, sem especificar os detalhes das classes ou objetos envolvidos, ou seja, os padrões

de projeto realizam uma abstração do problema do qual o usuário deseja solucionar utilizando

apenas informações pertinentes para a tarefa, por exemplo, se o usuário deseja visualizar a

tela das suas produções, o sistema abstrairá o problema e passará apenas o nome da tela que

mostrará as produções. Os padrões de projeto geralmente pertencem a camadas mais altas de

abstração. (ALEXANDER, 1993).

Um padrão de projeto deve ter as seguintes características: (i) Encapsulamento; (ii)

Generalidade; (iii) Equilíbrio; (iv) Abstração; (v) Abertura; (vi) Combinatoriedade; (vii)

Page 20: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

20

Nome; (viii) Exemplo; (ix) Contexto; (x) Problema; (xi) Solução. (ALEXANDER,1993). O

SAPI 2.0 utiliza os seguintes padrões de projeto: (i) Singleton; (ii) DAO; (iii) MVC; (iv)

Abstract Facture; (v) Lazy Initialization; (vi) Null Object.

Integração das tecnologias usadas no SAPI 2.0

Através de uma ação do usuário é acionado um DataSources que fornece uma API

independente de provedor de dados para SmartClient (componentes visuais), que permite

realizar as 4 operações CRUD (Criar, recuperar, atualizar e excluir). Os detalhes de

implementação, de como o DataSource recupera ou atualiza os dados é desconhecido para os

componentes SmartClient, para efeito disso os DataSource eles podem ser substituídos sem

afetar a interface do usuário. (ISOMORPHIC, 2012).

Existem duas abordagens principais para realizar a integração de DataSource com a

sua tecnologia. No lado servidor, recebe a requisição realizada pelo navegador em formato de

objeto Java, então esta requisição é processada e retorna a resposta para o navegador em

formato de objeto Java. (ISOMORPHIC, 2012).

Relatando outras formas de integração do lado cliente é dada por um DataSource que

recebe pedidos simples HTTP que o código do servidor recebe diretamente em Java e usa

uma API Servlet para mandar as requisições. As respostas são devolvidas em formato XML

ou JSON para gerar diretamente. As abordagens possíveis são resumidas no diagrama da

Figura 1.

Page 21: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

21

Figura 1. Diagrama de integração de tecnologias SmartClient

Fonte: ISOMORPHIC (2012)

Os caminhos 2, 3 e 4 são abordagens do lado do cliente, que não são utilizados pelo

SAPI 2.0, o caminho 1 inclui todas as abordagens do lado do servidor de integração.

(ISOMORPHIC, 2012).

O usuário do SAPI 2.0 executa uma uma das quatro ações basicas na interface

SmartClient, por exemplo, listar as produções de um docente, então é acionado o arquivo

XML do DataSource que através do atributo serverConstructor, chama a classe que irá

chamar os métodos do CRUD, por exemplo, método Fetch (listar). Através do objeto

DSResponse é retornado a lista de produções de um docente que foram buscadas na base de

dados, através do Custom DataSource, nela é implementada os métodos CRUD, então é

retornado uma lista de objetos de produções do docente, estes objetos são transformados para

uma string JSON, que vão ser recebidos pelo arquivo XML, que interpreta e trata estes dados

e deixa-os no formato que a interface SmartClient possa lê-los e apresenta-los para o usuário.

2.1.1.3 Armazenamento das Produções e seus atributos

Como o foco deste trabalho está na análise de coautoria das produções, serão

detalhadas a seguir as partes do modelo de dados do SAPI 2.0 que se refere a estas

informações. As produções do SAPI 2.0 são separadas em três tabelas:

Page 22: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

22

1. Tabela Produção: São reunidas as características mais comuns da produção, ou seja,

características que toda produção acadêmica terá, como ano da produção, data de

criação, status e tipo de produção. Ha duas categorias para as produções no SAPI;

2. Tabela Produções Lattes e tabela Produções Não Lattes: As produções Lattes

possuem atributos de produção, por exemplo, titulo, ano, âmbito, etc;

3. Tabela Atributo Produção: Guarda os atributos das Produções Lattes e Produções

Não Lattes. Os atributos seguem uma estrutura de tabela organizacional hierárquica

para os atributos das produções, para uma melhor análise e processamento;

4. Tabela Atributo Produção: É responsável por definir quais são os atributos dos tipos

de produções que vão ser visíveis para uma determinada produção;

5. Tabela Atributo Tipo Produção: Ela é responsável por reunir as características mais

comuns do atributo do tipo de produção, pois o nome do atributo é encontrado na

tabela Atributo;

6. Tabela Tipo Produção: Pois ela define quais são os tipos de produções, possuindo um

relacionamento com a tabela Produção demonstrando que para cada produção

cadastrada existe um tipo de produção relacionada a ela;

7. Tabela Atributo Tipo Produção Prod: Que é uma tabela fraca de ligação que

relaciona um atributo para cada tipo de produção;

8. Tabela Usuário: Os autores das produções cadastradas na tabela Produção são

referenciados na tabela Usuário, ela reúne todas as informações pertinentes para um

docente que realiza um relacionamento com a tabela Docente e juntamente com a

tabela Docente Produção que juntas identificam as produções pertencentes para um

determinado docente;

9. Tabela Grupo Usuário e tabela Grupo: Permite a criação de grupos de docente.

Page 23: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

23

Figura 2. Modelo de Dados do SAPI 2.0

Fonte: SAPI versão 2.0 (2012).

2.2 MINERAÇÃO DE TEXTO

Para Barion e Lago (2008, p. 01), mineração de textos também é conhecida como

Descoberta de Conhecimento em Textos (Knowledge Discovered in Texts - KDT) refere-se

ao processo de extração de informação útil (conhecimento) em documentos de textos não

estruturados.

Barion e Lago (2008, p. 02), ainda complementam dizendo que apesar da evolução

dos Sistemas Gerenciadores de Banco de Dados (SGBD), os mesmos não possuem suporte

para tomadas de decisões, tornando-se impossível a extração de conhecimento útil. Muitas

técnicas foram desenvolvidas com o objetivo de auxiliar na extração de informação útil,

implícitas nas bases de dados, dando origem á chamada Descoberta de Conhecimento em

Banco de Dados (Knowledge Discovered in Databases - KDD).

Seguno Aranha (2007, p. 01), numa visão geral um processo de mineração de textos

contém quatro macros etapas:

1. Coleta: Tem por objetivo a coleta das informações que vão compor a base textual de

trabalho.

Page 24: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

24

2. Pré-processamento: É responsável por obter uma representação estruturada dos

dados, geralmente no formato de uma tabela atributo-valor. Essa tabela atributo-valor

que representa os documentos tem como característica principal valores dispersos

dos dados e uma alta dimensionalidade. Essas características são inseparáveis de

problemas relacionados ao processo de mineração de texto (MT), pois cada palavra

presente nos documentos pode ser um possível elemento do conjunto de atributos

dessa tabela atributo-valor. Após os documentos serem organizados em um formato

adequado, é possível aplicar técnicas de extração de conhecimento utilizando

sistemas de mineração de dados ou se os documentos estiverem organizados num

formato de tabela atributo-valor, poderá ser aplicados métodos de recuperação da

informação (RI).

3. Indexação: Método de recuperação da informação (RI), para aumentar o desempenho

do processo de mineração de texto (MT).

4. Análise da informação: Descobrir padrões úteis e desconhecidos presentes nos

documentos.

A seguir serão apresentadas as seguintes seções: Sistemas de descoberta de

conhecimento em textos e Processamento de linguagem natural (PLN).

2.2.1 Processamento da Linguagem Natural (PLN)

“O Processamento de Linguagem Natural (PLN) é um campo da ciência que abrange

um conjunto de métodos formais para analisar textos e gerar frases em um idioma humano”.

(ARANHA, 2007, p.01).

As duas técnicas de processamento da linguagem natural apresentadas a seguir:

tokenização e normalização, são fundamentais para este trabalho, pois elas informam como

poderá ser feita a manipulação e tratamento de textos para a resolução do problema.

2.2.1.1 Tokenização

Para Aranha (2007, p.05), a tokenização é a primeira parte da etapa de pré-

processamento de um texto. Nele, o texto é representado por uma sequência de caracteres

agrupados em um primeiro nível, podendo ser interrompida por caracteres primitivos por

exemplo, espaço em branco (“ ”), virgula (,), ponto (.), etc.

Aranha (2007, p.05) relata que cada grupo de caractere definido no primeiro nível é

chamado de token. A sequência desses grupos, por sua vez, é chamada de tokenstream.

Page 25: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

25

Considerando uma nova análise, os grupos de caracteres já definidos na primeira parte, como

os delimitadores se tornam tokens, o único caractere descartado é o espaço em branco.

Vejamos um exemplo de tokenização, de como ficaria a disposição das palavras de

uma frase, cada palavra ou caracter dentro de colchetes significa um token. É apresentada a

seguinte frase :

“O jogador, que está de camisa verde, marcou o gol da vitória”.

“[O] [jogador] [,] [que] [está] [de] [camisa] [verde] [,] [marcou] [o] [gol] [da]

[vitória] [.]”. (ARANHA, 2007, p.06).

Segundo Aranha (2007, p.06), o resultado deste processo é uma sequencia de

palavras intercaladas por espaço e algumas vezes por símbolos delimitadores. Apenas com

esse processo de tokenização já é possível aplicar o processo de indexação para recuperação

de informações.

Dessa forma podemos separar as palavras de maior significado da frase e analisá-las,

com isto podemos ter um ganho em desempenho não analisando palavras de pouco

significado na frase.

2.2.1.2 Normalização

Segundo Aranha (2007, p.06), é uma técnica para eliminar as diversas representações

de um mesmo conceito. Por exemplo, a palavra “livro” e “livros” (plural), ou LIVRO e livro

(maiúscula e minuscula), ou análise e ANALISE (maiúscula e minúscula e sem acento e com

acento). O processo de normalização propõe que estas duas formas sejam agrupadas,

indicando para a análise elas tenham o mesmo significado. A normalização é uma

aproximação de conceitos, ou seja, os lexemas (sequencia de caracteres que pode conter

qualquer caractere incluindo o espaço (“ ”).

2.2.2 Retirada de StopWords

Wives (2002, p.52), cita que existem palavras presentes em um texto que é utilizado

com objetivo de conectar as frases. Essas pertencem a classes de palavras cuja finalidade é

auxiliar a estruturação da linguagem (conjunções, preposições, artigos, advérbios), não

necessita ser incluídas na estrutura de um texto.

Segundo Korfhage (1997 apud WIVES, 2002, p.53), Todas essas palavras, consideradas sem valor para a busca, devido a sua natureza

frequênte ou semântica são denominadas palavras negativas (ou stopwords). Essas

palavras dificilmente são utilizadas em uma consulta, pois sua indexação somente

tornaria o índice maior do que o necessário.

Page 26: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

26

Weber (2005), cita exemplos de palavras da língua portuguesa como artigos e

preposições, por exemplo, “um”, ”uma”, “desde”, “de”, etc. As stoplists são listas de

stopwords, e existem padrões para os principais idiomas, por exemplo, no Quadro 1 e Quadro

2.

A

à

agora

ainda

alguém

algum

alguma

algumas

alguns

ampla

amplas

amplo

amplos

ante

antes

da

daquele

daqueles

fosse

fossem

grande

grandes

isso

isto

la

la

lhe

muitas

tenha

ter

teu

teus

ti todo

ao

aos

após

aquela

aquelas

aquele

aqueles

aquilo

as

até

através

cada

coisa

coisas

com

como

contra

contudo

lhes

lo

mas

me

mesma

mesmas

mesmo

mesmos

meu

meus

minha

minhas

muita

tido

tinha

tinham

toda

todas vir

das

de

dela

delas

dele

deles

depois

dessa

dessas

desse

desses

desta

destas

deste

deste

destes

deve

devem

muito

muitos

na

não

nas

nem

nenhum

nessa

nessas

nesta

nestas

ninguém

no

todos

tu

tua

tuas

tudo vos

devendo

dever

deverá

deverão

deveria

deveriam

devia

deviam

disse

disso

disto

dito

diz

dizem

do

dos

e

é

nos

nós

nossa

nossas

nosso

nossos

num

numa

nunca

o

os

ou

outra

últimas

último

últimos

um

última vós

ela

elas

ele

eles

em

enquanto

entre

era

essa

essas

esse

esses

esta

está

estamos

estão

estas

estava

outras

outro

outros

para

pela

pelas

pelo

pelos

pequena

pequenas

pequeno

pequenos

per

últimas

último

últimos

um

todavia vindo

estavam

estávamos

este

estes

estou

eu

fazendo

fazer

feita

feitas

feito

feitos

foi

for

foram

perante

pode

pôde

podendo

poder

poderia

poderiam

podia

podiam

pois

por

porém

porque

posso

pouca

poucas

uma

umas

uns

vendo

ver vez

pouco

poucos

primeiro

primeiros

própria

próprias

próprio

próprios

quais

qual

quando

quanto

quantos

que

quem

são

se

seja

sejam

sem

sempre

sendo

será

serão

seu

seus

si

sido

sob

sobre

sua

suas

talvez

também

tampouco te

tem

tendo

Quadro 1.StopWords em português

Fonte: Stanley (2008)

Page 27: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

27

behind

being

below

besides

better

between

beyond

both

but

by

can

certain

could

do

does

during

each

else

enough

even

ever

few

for

from

further

get

going

got

great

has

have

he

her

here

high

his

how

however

i

if

in

instead

into

is

it

its

itself

just

later

least

less

less

let

little

many

may

maybe

me

might

more

most

much

must

neither

never

new

no

non

nor

not

nothing

of

off

often

old

on

once

one

only

or

other

our

out

over

perhaps

put

rather

really

set

several

she

should

since

snot

snt

so

some

something

sometimes

soon

still

such

t

than

that

the

their

them

then

there

therefore

these

they

thing

this

those

though

three

through

till

to

together

too

toward

towards

two

under

up

upon

us

very

very

was

were

what

when

where

whether

which

while

whole

whose

will

with

within

without

would

yet

you

your

Quadro 2. StopWords em inglês

Fonte: Stanley (2008)

2.3 MODELOS DE RECUPERAÇÃO DE INFORMAÇÕES

“Recuperação de informação é uma subárea da ciência da computação que estuda o

armazenamento e recuperação automática de documentos, que são objetos de dados,

geralmente textos.” (CARDOSO, 2005, p. 01). Um sistema de Recuperação de Informação

pode ser também chamado de (SRI).

Segundo Wives (2002), o texto é composto por palavras que são consideradas os

atributos dos textos, e elas que distinguem um texto de outro. O casamento textual é feito por

palavras, e com isso a verificação de texto relevante é feita a se retornar documentos

semelhantes.

Page 28: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

28

Segundo Chen (1994 apud WEBER, 2005), a comparação de palavras em

documentos nem sempre retorna um grau de similaridade aceitável, recuperando assim

objetos dos mais diversos conteúdos. A seguir é apresentado o modelo conceitual booleano de

recuperação de informação.

2.3.1 Modelo booleano

O modelo conceitual booleano segundo Rijsbergen (1979 apud WIVES, 2002, p.37),

considera os documentos como sendo conjuntos de palavras e possui esse nome por manipular

e descrever esses conjuntos através de conectivos de boole (and, or e not). As expressões

booleanas unem descrevem intersecções e retiram partes de um conjunto.

Por exemplo, segundo Wives (2002, p.38), em um sistema de comparação de

palavras (elementos), o sistema analisa o texto (conjunto) em questão retornando um conjunto

resultante. Assim o texto que possui interseção com o outro texto (mesmas palavras) é

retornado.

Wives (2002, p.38), cita que existe uma série de operadores que o sistema pode

utilizar para definir sua análise. Os operadores mais comuns são o “and” (união), “or”

(interseção) e o “not” (exclusão ou negação). Neste caso, o modelo pode ser compreendido de

outra forma, onde o conjunto de textos relevantes à análise é o conjunto de textos que satisfaz

as restrições especificadas na análise.

Um problema do modelo booleano segundo Wives (2002, p.38) é ele não ser capaz

de identificar a importância de um termo em um texto, ou seja, se um termo está presente em

um documento ele é considerado muito importante. Porém, o fato de uma palavra constar em

um documento não significa que ela seja significativamente importante para o texto.

Wives (2002, p.38) ainda cita que palavras são utilizadas para ligar frases

(conjunções) que não são relevantes para análise de texto, ao contrario existe palavras que dão

sentido ao texto e que são extremamente importantes (palavras em títulos, por exemplo). O

modelo booleano não leva em conta nenhum destes casos, considerando relevantes os textos

que possuem as mesmas palavras.

2.3.2 Modelo da busca direta

O modelo de busca direta é denominado modelo de busca de padrões e utiliza

métodos de busca de termos ou expressões regulares para localizar palavras relevantes em um

texto. A análise de comparação é realizada diretamente nos textos originais, em tempo de

execução onde o resultado é a localização de todas as palavras relevantes. (WIVES, 2002)

Page 29: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

29

Segundo (FRAKES, 1992 apud WIVES, 2002) esta técnica é chamada de string

search e ela é usada em casos onde a quantidade de texto a ser analisado é pequena, segundo

Wives (2002) não a necessidade de utilização de índices e etapas de normalização, mesmo

tendo o tempo compensado nas análises de texto que se tornam mais rápidas. Ela é utilizada,

por exemplo, em softwares que se possam localizar palavras ou expressões no texto.

2.4 MEDIDAS BÁSICAS DE AVALIAÇÃO E EFICIÊNCIA DE

SISTEMAS

A seguir serão apresentadas duas medidas de avaliação e eficiência de sistemas,

precision e recordação.

Aranha (2007), cita que precisão (precision) e recordação (recall), são as medidas

básicas usadas na avaliação de eficiência de sistemas tanto para busca quanto para

aprendizado. A busca do tipo precisão é usada quando se sabe exatamente o que quer. A

busca do tipo recordação é usada quando não se sabe o que se quer e precisa-se fazer uma

exploração, ou seja, retornar documentos relevantes e não relevantes para o problema, para

então decidir que documentos são pertinentes e os não pertinentes.

2.4.1 Recordação

Para Lancaster (1968 apud WIVES, 2002), recall (abrangência) mede a habilidade do

sistema em recuperar os documentos, mais relevantes para o usuário. Ele mede a quantidade

de itens relevantes, dentre os existentes na base de dados, que foram recuperados. Mas, o

sistema ou usuário que esta avaliando o resultado deve saber quantos documentos relevantes a

sua consulta existem na base de dados, esta informação pode ser conhecida estatisticamente.

Equação 2

Segundo Wives (2002, p.72), Para que sistemas diferentes possam ser comparados deve-se adotar uma seleção

especifica para testes e comparações, onde as classes de documentos são conhecidas

a priori. Deste modo, identificam-se quantos documentos o sistema conseguiu

recuperar para cada classe e quantos ele deveria ter recuperado. Assim a métrica

pode ser aplicada.

Page 30: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

30

2.4.2 Precisão

Segundo Lancaster (1968 apud WIVES, 2002, p.72), Precision mede a habilidade do sistema em manter os documentos irrelevantes fora

do resultado de uma consulta. O usuário indica quantos documentos recuperados são

relevantes para ele e o SRI pode calcular a quantidade de documentos recuperados

que são relevantes.

Equação 3

Wives (2002), cita que a precisão indica o esforço que o usuário teria para analisar o

resultado de uma determinada busca. Isso significa que, se 60% dos itens retornados fossem

relevantes, o usuário teria desperdiçado 40% de seu esforço analisando itens não relevantes.

Então, quanto maior a precisão, menor o esforço do usuário em analisar itens.

“Portanto, a precisão pode ser utilizada nas iterações do usuário com o sistema para

indicar o quanto ainda o usuário necessita iterar para conseguir filtrar os itens irrelevantes e

retornar itens mais relevantes”. (DOYLE, 1975 apud WIVES, 2002, p.72).

Segundo Aranha (2007, p.05), tecnicamente a busca Precisão tende a retornar poucos

documentos e a busca Recordação a retornar muitos documentos. Um sistema de aprendizado

orientado a precisão dificilmente comete erros, porém demora a aprender novos lexemas. Um

sistema voltado à recordação tende a memorizar mais conhecimento com menos documentos,

porém pode cometer mais erros.

Aranha (2007, p.05), cita que na pratica, existe um contrapeso entre precisão e

recordação. Ao maximizar a precisão perdesse recordação. Ao maximizar recordação perde-se

precisão. Se retornarmos todos os documentos maximizamos a recordação e minimizamos

precisão. Se recuperarmos só um documento, correto, maximizamos precisão e minimizamos

recordação formando uma estreita visão da base.

2.5 MÉTRICAS DE SIMILARIDADE TEXTUAL

Nesta etapa do trabalho será apresentada uma breve explicação das métricas de

similaridade textuais mais relevantes para este TTC e suas principais características. São elas:

(i) Distância de Levenshtein; (ii) Distância do Cosseno. As métricas de similaridade textual

permite a comparação entre dois textos, definindo o grau de similaridade que definirá o quão

similar é um texto do outro.

Page 31: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

31

2.5.1 Distancia de Levenshtein

Segundo Oliveira (2010) o algoritmo Levenshtein Distance foi criado pelo Cientista

russo Vlademir Levenshtein em 1966. A distância de Levenshtein (1966) ou distância de

edição é obtida através do numero mínimo de operações, ou seja, inserções, eliminação ou

substituição de caracteres necessários para transformar um texto em outro.

Oliveira (2010) ainda escreve que a partir da quantidade total de caracteres dos textos

comparados é montada uma matriz (m, n), onde serão inseridos os custos de cada operação,

geralmente, cada operação possui custo 1, ou seja, para cada operação executada há mais, será

somado 1 no total de operações de edição. Ao final das comparações, a distância é dada pela

ultima posição da matriz.

A matriz pode ser preenchida a partir do canto superior esquerdo para o canto

inferior direito. Cada salto horizontal significa uma inserção ou uma substituição, cada salto

vertical significa uma exclusão e cada salto vertical significa uma equivalência.

É apresentada na Figura 3, a matriz utilizada pelo algoritmo da Distância de

Levenshtein, para exemplificar a transformação da palavra “levenshtein” em “meilenstein” e

na Figura 4, é mostrado um passo a passo da transformação de uma palavra para outra. Para

maiores informações é apresentado no APÊNDICE A, o algoritmo da Distância de

Levenshtein.

Legenda:

"=" Equivalente;

"o" Substituição;

"+" Inserção;

"-" Exclusão.

Page 32: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

32

Figura 3. Matriz Distância de Levenshtein

Fonte: Levenshtein.net (2012)

Figura 4. Passo a passo Distância de Levenshtein

Fonte: Levenshtein.net (2012)

2.5.2 Distância do Cosseno

Similaridade cosseno é uma medida de similaridade entre dois vetores medindo o

cosseno do ângulo entre eles. O cosseno de 0 é 1, e menos de 1 por qualquer outro ângulo, o

valor mais baixo do cosseno é -1. O cosseno do ângulo entre dois vetores é determinado

quando dois vetores são apontados na mesma direção. (GARCIA, 2006).

Este é frequentemente usado para comparar documentos em mineração de textos .

Além disso, é usado para medir a coesão no interior de grupos no domínio da extração de

dados. O cosseno de dois vetores pode ser facilmente derivado, usando o produto da fórmula

Euclidiana: (GARCIA, 2006).

Equação 4

Page 33: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

33

Dado dois vectores de atributos, A e B, onde a similaridade do cosseno, θ, é

representado por um produto como:

Equação 5

“Para normalizar o A • B que dividi pela distância euclidiana entre A e B, ou seja, A

• B / (| A | | B |). Este raciocinio define o ângulo entre os vetores de cosseno, com valores

entre 0 e 1.” (GARCIA, 2006).

Garcia (2006), descreve as variaveis da Equação 6:

Símbolo sigma significa "a soma";

Q é uma consulta;

D é um documento relevante para Q;

W são pesos.

N como número de documentos em uma coleção;

n como o número de documentos que contenham um termo de consulta.

Equação 6

“Esta relação é utilizada como uma medida de semelhança entre quaisquer dois

vetores que representam documentos, consultas, fragmentos ou a combinação destes.”

(GARCIA, 2006).

Para maiores informações no APÊNDICE A, consta o algoritmo da cosine similaryte

que será feito uma breve explicação para melhor entendimento do leitor.

O algoritmo da cosine similaryte mede a distância do cosseno entre dois textos, veja

como segue o desenvolvimento do algoritmo:

No algoritmo é passado por parametro dois textos a serem comparados;

Page 34: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

34

Os textos são processados e transformados em tokens e guardados em uma estrutura

de lista;

Adiciona a lista de tokens em outra estrutura de dados chamado HashSet, que

possui a abilidade de não repetir tokens dentro da estrutura;

Guarda o tamanho do HashSet que possui a lista de tokens do primeiro texto

avaliado.

Repetece o processo do item 2 até o item 4. Depois de realizar o mesmo processo com o

segundo texto, possui-se dois HashSet, duas variáveis guardando os tamanhos de cada

HashSet. O próximo passo é descobrir o tamanho do HashSet resultante:

Adicionando o segundo HashSet no primeiro HashSet, como uma das

caracteristicas do HashSet é de não repetir objetos iguais, será retornado um HashSet

resultante que nos dará o tamanho resultante entre os dois textos;

Agora retira-se a quantidade dos termos em comum, atravez de uma fórmula

matemática.

Aplica-se a fórmula da cosine similaryte.

2.6 BIBLIOTECA SIMMETRICS

Segundo Weber (2005, p.29), a bilbioteca SimMetrics é um projeto desenvolvido

pelo grupo de processamento de linguagem natural do departamento de Ciência da

Computação na Universidade de Sheffield, a biblioteca de código aberto com licença

GPL(General Public License) pode ser encontrada no repositório sourceforge.net. Será

apresentado alguns conceitos de métricas de similaridade presentes na biblioteca SimMetrics.

1. Hamming distance: “Define a diferença de bits entre palavras, ou seja, o numero de

bits que devem ser alterados para que os dois textos se tornem idênticas. Esta técnica

não esta incluída na biblioteca”; (WEBER, 2005, p.29).

2. Levenshtein Distance: “A distancia é calculado considerando o esforço mínimo de

transformação de uma string por outra”; (WEBER, 2005, p.29).

3. Needleman-Wunch distance ou Sellers Algorithm: “É um algoritmo baseado no

anterior, contudo sofrendo ajustes em variáveis”; (WEBER, 2005, p.29)

4. Smith-Waterman distance: Segundo Smith (1981), este algoritmo foi desenvolvido

para identificar algoritmos ótimos de DNA e seqüências de proteínas;

Page 35: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

35

5. Gotoh ou Smith-Waterman-Gotoh distance: É a implementação do algoritmo escrito

por Smith Waterman e é encontrado na referência Gotoh (1981);

6. Block Distance ou L1 distance ou City Block distance: “Esta métrica é um cálculo

baseado em vetores e dados pela formula”. (WEBER, 2005, p.30), apresentada na

Equação 6:

Equação 6

7. Monge Elkan distance: Este algoritmo amplia o algoritmo de Gotoh (1981), com

mais campos de avaliação e possui uma complexidade de tempo quadrática. Melhor

descrição sobre este algoritmo pode ser encontrado em Monge (1996).

8. Jaro distance metric: Especificações sobre esta métrica de distância de Jaro pode ser

encontrada em Jaro (1989).

9. Jaro Winkler: Segundo Weber (2005) é uma modificação da métrica anterior;

10. Matching Coefficient: Weber (2005) cita que esta métrica trabalha com um vetor

simples de termos;

11. Jaccard Similarity or Jaccard Coefficient or Tanimoto coefficient: “O algoritmo de

Jaccard, utiliza o conjunto de palavras para avaliar a comparação de similaridade.

Este algoritmo é utilizado para comparar similaridade de composições químicas”;

(WEBER, 2005, p.30).

12. Overlap Coefficient: “Esta é uma métrica onde se um valor de X está contido em Y

ou vise versa, a similaridade é um valor cheio”; (WEBER, 2005, p.31).

13. Euclidean distance or L2 distance: “Este utiliza o calculo “euclidiano” em vetores

para definir as distancias entres os termos do vetor”; (WEBER, 2005, p.31).

14. Cosine similarity: Este algoritmo separa as strings em vetores, e compara os termos

similares, para calcular a similaridade entre os vetores de termos. Melhor descrição

sobre esta métrica, pode ser encontrado em Cosine similarity.

Page 36: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

36

As métricas de Levenshtein e Cosine similarity apresentadas acima são relevantes

para a realização deste trabalho, pois foram desenvolvidas para trabalha com conceitos de

similaridade textual, o qual é o foco deste trabalho.

2.7 ANÁLISE DE TRABALHOS SIMILARES

Foram realizadas pesquisas na Internet com o objetivo de encontrar módulos de

sistemas similares ao proposto neste trabalho. A partir desta pesquisa foram encontrados

quatro sistemas para a realização de uma comparação com o módulo proposto. São eles: (i)

ScriptLattes; (ii) Análise de redes de colaboração entre pesquisadores; (iii) Análise das áreas

de interesse dos pesquisadores; (iv) Remoção de ambiguidade das autorias de objetos

bibliográficos. Os quatro sistemas analisados utilizam técnicas de tratamento de texto e

métricas de similaridade, a partir disto realizam as análises e processamentos textuais em

comparação com a base de dados, para identificar as produções similares ou resolver o

problema proposto por cada trabalho.

2.7.1 ScriptLattes

O principal trabalho encontrado é a ferramenta ScriptLattes (Chalco e Cesar Junior,

2009). O foco da ferramenta ScriptLattes consiste em utilizar o Currículo Lattes como base de

dados para a geração de relatórios no formato HTML tratando as suas coautorias e similares,

segundo Chalco e Cesar Junior (2009), permite a criação automática de grafos (redes) de

coautoria entre os membros do grupo e um mapa de geolocalização dos membros e alunos (de

pós-doutorado, doutorado e mestrado) com orientação concluída.

As principais características da ferramenta para este trabalho é um módulo de

tratamento de redundâncias que permite a detecção de produções acadêmicas iguais ou

similares. Assim, dois ou mais membros são considerados coautores, se existe uma produção

comum entre eles.

Chalco e Cesar Junior (2009) citam para isso as produções similares são detectadas

através de comparações entre todas as produções separadas por ano e tipo de produção (por

ex., artigo publicado em periódico ou capitulo de livro), de tal forma produções com ano de

publicação diferente não seja utilizada em nenhuma comparação, permitindo assim uma

diminuição de tempo de processamento do módulo.

Segundo Chalco e Cesar Junior (2009) o módulo de redundâncias da ferramenta

ScriptLattes utiliza o método do casamento de atributos associados a cada cadastro de

produções. Para a ferramenta duas publicações são consideradas iguais se a porcentagem de

Page 37: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

37

similaridade entre os títulos for maior que a determinada pela ferramenta, no entanto os

autores não explicitam qual a taxa de similaridade utilizada.

A métrica de similaridade é obtida através da distancia de Levenshtein (1966) para

determinar a distancia de uma cadeia de caracteres. A distancia de Levenshtein (1966) é

calculada com base no numero mínimo de edições de caracteres para transformar um texto em

outro.

2.7.2 Análise de Redes de Colaboração entre Pesquisadores

O segundo sistema pesquisado é um sistema para análise de redes de pesquisa

baseado na Plataforma Lattes. Foi desenvolvido como uma extensão da ferramenta

ScriptLattes.

Tem como atividade principal do projeto segundo Farias, Vargas e Borges (2011) a

especificação e desenvolvimento de um componente de software capaz de extrair a produção

científica do currículo Lattes do docente, analisar os dados capturados e visualizar

graficamente as redes de colaboração entre pesquisadores, apresentando algumas melhorias

em relação a ferramenta ScriptLattes por exemplo: (i) permitir ao usuário alterar a disposição

dos vértices e arestas, (ii) listar as publicações em comum a dois pesquisadores, (iii) visualizar

as múltiplas representações de cada publicação, (iv) avaliar a identificação de referencias

bibliográficas duplicadas.

A principal característica desta ferramenta para este TTC é o processo de análise dos

dados extraídos do currículo Lattes dos docentes, é onde ocorre o tratamento das coautorias.

Esta ferramenta utiliza o mesmo algoritmo do ScriptLattes e métrica de similaridade a

distancia de Levenshtein (1966).

2.7.3 Análise das Áreas de Interesse dos Pesquisadores

O terceiro trabalho pesquisado busca identificar áreas de atuação do pesquisador a

partir da análise do currículo Lattes armazenando estas informações em um banco de dados.

Segundo Ribeiro Junior, Borges, Lichtnow, Loh e Saldaña (2005) para isso, são

aplicadas técnicas de recuperação de informação e descoberta de conhecimento textual, sobre

o conteúdo armazenado em um documento XML.

Ribeiro Junior, Borges, Lichtnow, Loh e Saldaña (2005) citam que o presente

trabalho utiliza o modelo vetorial para representar internamente as áreas existentes em um

conjunto de termos associados, sendo que para cada termo é dado um peso (valor numérico)

que determina o grau de afinidade que um determinado termo possui com outro.

Page 38: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

38

Conforme os autores, para verificar a afinidade de um documento em relação a um

conceito é construído um vetor com os termos presentes no documento (são retiradas as

stopwods – termos muito frequentes como preposições). Para cada termo do documento é

gerado um valor mediante o cálculo da frequência relativa do termo (numero de vezes que o

termo aparece no documento dividido pelo numero de termos presentes no documento). É

então realizado o produto dos pesos dos termos que estão presentes no vetor do documento

pelos pesos dos termos comuns existentes no vetor de uma área. A soma deste produto

determina a similaridade do documento em relação aos conceitos presentes na ontologia

(coleção de áreas de interesse) de domínio onde estão definidas as possíveis áreas de

interesse.

2.7.4 Remoção de ambiguidade das autorias de objetos bibliográficos

O quarto trabalho pesquisado apresenta uma estratégia que possibilita a identificação

de várias formas de nomes de autores em repositórios de bibliotecas digitais.

Segundo os autores, esta estratégia utiliza funções de casamento de padrão e técnicas

de recuperação de informação, associadas a um algoritmo de agrupamento (clustering). O

resultado é um arquivo de autoridade (Auld, 1982), na forma de um índice unificado, que tem

a finalidade de manter a correspondência entre diferentes formas permissíveis de nomes de

autores.

Oliveira, Laender, Gonçalves (2005) citam que o arquivo de autoridade apresenta a

forma mais representativa de nomes dos diferentes autores, para cada um deles, os objetos

bibliográficos de sua autoria contidos no repositório. A partir de um índice unificado é

possível identificar quais são as obras contidas no repositório de uma biblioteca digital de

autoria de um mesmo autor independentemente da forma como o seu nome está registrado.

Segundo Oliveira, Laender, Gonçalves (2005) a estratégia para a etapa de análise de

dados consiste em uma função para casamento de padrões que comparam os nomes dos

autores contidos no índice de autoria. Só serão considerados candidatos a representar um

mesmo autor, casamentos entre dois nomes de autores que alcançarem um determinado limite

arbitrário de similaridade, então o par é associado formando um grupo. Um nome de autor ou

grupo também poderá ser comparado a outro grupo.

Segundo os autores, os autores utilizam três funções para casamento de padrão: o

casamento exato de padrão, que considera dois nomes como candidatos apenas se sua grafia

for idêntica, a distância de edição (1966), na qual é contabilizado o número de edições de uma

cadeia de caracteres comparada à outra cadeia de caracteres, e a comparação de fragmentos,

Page 39: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

39

que compara individualmente, através de distância de edição, cada fragmento delimitado por

espaço em branco nas cadeias de caracteres normalizadas, considerando também o casamento

entre iniciais e nomes por extenso e ignorando a ordem em que os fragmentos aparecem nos

nomes.

Oliveira, Laender, Gonçalves, (2005) utilizaram técnicas derivadas da área de

recuperação de informação para determinar o grau de similaridade entre títulos, veículos de

publicação e coautores de trabalhos. Os autores definiram o casamento exato de padrão,

quando há veículos de publicação disponíveis através de suas siglas, da mesma forma para

informações adicionais como datas. Quando há disposição de informações escritas por

extenso, utilizamos para a determinação do grau de similaridade os métodos: (i) medida do

cosseno (Baeza-Yates & Ribeiro-Neto; 1999; Salton, 1988), (ii) coeficiente de Jaccard

(Salton, 1988). Para coautores utilizaram a comparação por fragmentos.

Será apresentado na Tabela 2, um comparativo entre os trabalhos pesquisados, serão

comparados as técnicas de, comparação textual, recuperação de informação, também serão

comparados as fontes de dados e métodos de tratamento textual utilizados nos trabalhos

pesquisados.

Tabela 2. Comparativo entre trabalhos pesquisados.

ScripLattes Análise de Redes

Colaboração entre

Pesquisadores

Análise das Areas

de Interesse dos

Pesquisadores

Remoção de

ambiguidade das

Autorias de

objetos

Bibliográficos

Distância

de Levenshtein

X

X

X

Currículo Lattes X X X X

Limiar de

Similaridade

X X X X

Recuperação de

Informação

X X

Modelo Vetorial X

StopWords X

Clustering X

Casamento de Padrões

X

Comparação entre

Fragmentos

X

Ao analisar estes trabalhos percebe-se que: (i) O currículo Lattes é utilizado como

fonte de informações em diferentes trabalhos que extrai conhecimento através deste. (ii) A

Page 40: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

40

distancia de Levenshtein é o algoritmo de similaridade mais usado entre os trabalhos

pesquisados. (iii) O modelo espaço vetorial é útil para comparação de fragmentos de

documentos, seu aproveitamento para comparação de atributos como títulos de trabalhos ou

nomes de eventos. (iv) Foram apresentadas outras métricas de similaridade, mostrando uma

visão mais ampla de algoritmos de similaridade que trabalham com informações textuais.

Page 41: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

41

3 DESENVOLVIMENTO

Esta etapa visa apresentar os requisitos funcionais do módulo SapiSim, os requisitos

não funcionais e regras de negócio, também será apresentado as fórmulas de similaridade

descrevem a forma utilizada para se obter coautoria. Foram desenvolvidos diagramas de

classe da UML e diagramas de classe das Telas para uma melhor especificação do módulo.

Com eles pode se ter uma melhor visão da disposição das classes e métodos e atributos. Um

caso de uso foi desenvolvido descrevendo toda a sua tarefa e também são apresentadas as

telas do módulo SapiSim que foram desenvolvidas para uma visão geral da interface e por fim

será apresentado dois estudos de caso que apresentão uma análise dos resultados obtidos pelo

algoritmo do módulo SapiSim.

3.1 DESCRIÇÃO GERAL DO SAPISIM

O SapiSim é um módulo de processamento desenvolvido para o sistema SAPI 2.0 da

UNIVALI, para identificar coautoria entre duas produções científicas acadêmicas.

3.2 REQUISITOS FUNCIONAIS

A seguir são especificadas as tarefas que o módulo realizou, durante o seu

desenvolvimento no TTC II. São elas:

RF01 – O sistema deverá realizar a identificação automática e monitorada (ver RF3)

de Coautoria nas produções científicas importadas do currículo lattes dos docentes;

RF02 – O sistema deverá permitir ao usuário visualizar a lista de produções que

foram identificadas automaticamente;

RF3 – O sistema deverá permitir ao usuário confirmar ou rejeitar a lista de produções

cuja Coautoria depende de sua intervenção (Identificação Monitorada).

3.3 REQUISITOS NÃO FUNCIONAIS

Agora serão apresentadas as especificações de desenvolvimento do sistema do

módulo, que foram utilizados, durante o seu desenvolvimento no TTC II. São elas:

RNF01 - O módulo SapiSim somente poderá ser acessado pelo sistema SAPI 2.0.

RNF02 - O módulo SapiSim deverá ser desenvolvido utilizando a linguagem de

programação JAVA.

Page 42: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

42

RNF03 - Usar paradigma orientação a objetos.

RNF04 – Usar conceito RIA.

RNF05 - O módulo SapiSim deverá ser desenvolvido com o framework

HIBERNATE para persistência e recuperação de objetos JAVA na base de dados do

SAPI 2.0.

3.4 REGRAS DE NEGÓCIO

Agora serão especificadas as regras de funcionamento do módulo SapiSim, estas

regras são muito importantes, pois são elas que definem, por exemplo, como foi inicializado o

módulo ou como saber se a produção é coautora ou não e até mesmo de como foi realizado

uma tarefa. São elas:

RN 1 - A identificação da Coautoria das produções será realizada no momento que o

docente importa seu currículo Lattes para o SAPI.

RN 2 - Serão consideradas para análise apenas produções novas, ou seja, que estão

sendo inseridas no SAPI no momento da importação.

RN 3 - A identificação da Coautoria pode ser Automática ou Monitorada

o Identificação Automática – O grau de similaridade entre os atributos de duas

produções, atinge uma porcentagem pré-estabelecida (chamado de LIMITE

SUPERIOR), criando uma associação definitiva entre as duas produções

(limite será estipulado no TTC II).

o Identificação Monitorada – O grau de similaridade entre os atributos de duas

produções, atinge uma porcentagem pré-estabelecida entre os limites

chamados de “LIMITE INFERIOR” e limite “LIMITE SUPERIOR”, criando

uma associação a ser confirmada pelo ““USUÁRIO VALIDADOR””, entre

as duas produções (limites que serão definidos no TTC II).

RN 4 - O LIMITE INFERIOR e SUPERIOR são valores não fixos pré-estabelecidos

pelo administrador do sistema SAPI.

RN 5 - A FÓRMULA DE SIMILARIDADE compara duas produções depende do

tipo da produção e está definida no tópico (3.4.1 Formula de Similaridade).

RN 6 - Serão candidatas à análise de similaridade apenas produções dos tipos:

Participação em Bancas, Projetos de Pesquisa, Artigos em Periódicos, Livros e

Capítulos de livros e Artigos em Eventos.

Page 43: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

43

RN 7 - As produções do próprio docente não serão candidatas à análise de

similaridade.

RN 8 - Para a identificação de Coautorias apenas serão candidatas produções do

mesmo tipo, mesmo ano, já presentes na base do sistema SAPI 2.0.

3.5 CÁLCULO DA SIMILARIDADE

Neste tópico será apresentado fórmulas para calcular a similaridade entre duas

produções científica no módulo SapiSim. O cálculo da similaridade foi separado em tipos de

produções: (i) Periódico; (ii) Evento; (iii) Capítulo de Livro; (iv) Livro; (v) Participação em

Banca; e (vi) Projeto de Pesquisa. Cada tipo de produção possui os seus respectivos atributos,

dos quais foi feita uma FÓRMULA DE SIMILARIDADE ponderada para determinar a

similaridade entre duas produções.

Foram desenvolvidas varias fórmulas de similaridade porque cada tipo de produção

apresenta os principais atributos para a aplicação da fórmula de uma forma diferente, tanto

nas informações quanto em número (quantidade) de atributos. Outro motivo que levou o

desenvolvimento das formulas separadamente é poder ajustar os pesos dos atributos

individualmente para cada tipo de produção não dependendo do outro, se houver uma

mudança em seus pesos.

Legenda:

DL: Distancia de Levenstein.

PN: Produção Nova.

C: Produção Candidata.

Explicando PN e C e DL:

PN – Produção Nova – São as novas produções importadas do currículo lattes do

docente;

C – Produção Candidata – São as produções já importadas e cadastradas no banco de

dados e que serão buscadas para serem comparadas com as novas;

DL – Distância de Levenshtein (1966) – Métrica usada para determinar a

similaridade entre duas produções.

Page 44: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

44

A seguir será exibida uma lista de fórmulas de similaridade organizadas por tipo de

produção com seus respectivos atributos.

Periódico

o Atributos

Titulo;

Nome do periódico;

Fórmula.

))()((

4,0*),(

6,0*),(

100),(iconomePeriodPNstrlentituloPNstrlen

iconomePeriodCiconomePeriodPNDL

tituloCtituloPNDL

CPNSimPernn

nn

nn

nn

Equação 7

Evento

o Atributos

Título;

Nome do Evento;

Fórmula;

))()((

4,0*),(

6,0*),(

100),(nomeEventoPNstrlentituloPNstrlen

nomeEventoCnomeEventoPNDL

tituloCtituloPNDL

CPNSimEvennn

nn

nn

nn

Equação 8

Capitulo de livro

o Atributos

Título do Capítulo;

Título do Livro;

Editora;

Fórmula.

))()()((

2,0*),(

2,0*),(

6,0*),(

100),(anomeEditorPNstrlenotítuloLivrPNstrlentulotituloCapíPNstrlen

anomeEditorCanomeEditorPNDL

otítuloLivrCotítuloLivrPNDL

tulotituloCapíCtulotituloCapíPNDL

CPNSimCapLnnn

nn

nn

nn

nn

Equação 9

Page 45: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

45

Livro

o Atributos

Título;

Editora;

Fórmula.

))()((

4,0*),(

6,0*),(

100),(anomeEditorPNtrlentituloPNstrlen

anomeEditorCanomeEditorPNDL

tituloCtituloPNDL

CPNSimLnn

nn

nn

nn

Equação 10

Participação em Banca

o Atributos

Título do Trabalho;

Nome do Aluno;

Fórmula.

))()((

4,0*),(

6,0*),(

100),(nomeAlunoPNtrlenalhotituloTrabPNstrlen

nomeAlunoCnomeAlunoPNDL

alhotituloTrabCalhotituloTrabPNDL

CPNSimBannn

nn

nn

nn

Equação 11

Projetos de Pesquisa

o Atributos

Nome do Projeto;

Nome do Autor;

Fórmula.

))()Pr((

4,0*),(

6,0*)Pr,Pr(

100),(nomeAutorPNtrlenojetonomePNstrlen

nomeAutorCnomeAutorPNDL

ojetonomeCojetonomePNDL

CPNSimPPnn

nn

nn

nn

Equação 12

3.6 ALGORITMO DE COMPARAÇÃO DE PRODUÇÕES

Este algoritmo demonstra como foi feito a comparação entre duas produções no

módulo SapiSim. O sistema possui uma lista de produções novas, ou seja, produções que o

Page 46: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

46

docente acabou de importar do seu currículo Lattes para SAPI 2.0, então cada produção nova

será comparada com uma lista de produções candidatas que serão buscadas na base de dados

filtrando-as por tipo de produção e ano de produção. Continuando, cada produção candidata

da lista será comparada com a produção nova em questão e tentar determinar uma coautoria

com alguma(s) produções presentes na lista de produções candidatas. Depois de ter verificado

toda a lista de produções candidatas e retornado para a lista de produções novas, pegasse a

próxima produção nova e recomeça todo o processo, este processo será realizado até a lista de

produções novas chegar ao fim. Esta seção apresenta o apêndice C, onde exibe um algoritmo

em pseud. código onde descreve a ideia geral do algoritmo desenvolvido no módulo SapiSim.

3.7 UM CASO PASSO A PASSO ENTRE DUAS PRODUÇÕES

Neste tópico será exibido um passo a passo de um caso de comparação entre

produções, simulando a execução do módulo SapiSim, exibindo as produções antes de serem

tratadas e o resultado do tratamento de texto realizado, as porcentagens de similaridade entre

as produções, identificando ou não uma coautoria. Este passo à passo será realizado para um

melhor entendimento do leitor ao processo aplicado ao módulo SapiSim e melhor

entendimento aos tratamentos textuais, podendo ser visualizado os resultados obtidos em

tempo real de execução.

A seguir serão exibidas na Tabela 3 duas produções acadêmicas do tipo “Trabalho

Em Eventos” ilustrando dois atributos da mesma, o atributo “Titulo do Trabalho” e o atributo

“Nome do Evento”, com seus respectivos donos o docente André Raabe e o docente Cesar

Zeferino.

Tabela 3. Comparação de produções cientifica entre dois docentes.

Autor André Luis Alice Raabe Cesar Albenes Zeferino

Título do

trabalho

Bipide: Ambiente de Desenvolvimento

Integrado para Utilização dos Processadores BIP no Ensino de

Programação

Bipide: ambiente de desenvolvimento integrado

para utilização dos processadore BIP no ensino de programação

Nome do

Evento

XX Simpósio Brasileiro de Informática na

Educação

SIMPÓSIO BRASILEIRO DE INFORMÁTICA NA

EDUCAÇÃO - SBIE 2009, 20.

No módulo SapiSim sempre existe a produção que esta comparando e a produção

que esta sendo comparada. A produção que esta comparando é a do docente André Raabe e a

produção que esta sendo comparada é a do docente Cesar Zeferino. No algoritmo do SapiSim

primeiro são tratadas todas as produções que estão comparando e depois todas as produções

Page 47: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

47

que então sendo comparadas. Será realizado o tratamento da produção do docente Raabe,

antes de serem tratadas elas possuem o seguinte formato:

Titulo do trabalho: Bipide: Ambiente de Desenvolvimento Integrado para Utilização

dos Processadores BIP no Ensino de Programação

Nome do Evento: XX Simpósio Brasileiro de Informática na Educação

Então o SapiSim irá realizar o tratamento textual proposto neste trabalho nos atributos

citados, e o resultado do seu tratamento será este:

Titulo do Trabalho: BIPIDE AMBIENTE DESENVOLVIMENTO INTEGRADO

UTILIZACAO PROCESSADORES BIP ENSINO PROGRAMACAO

Nome do Evento: XX SIMPOSIO BRASILEIRO INFORMATICA EDUCACAO

Este tratamento será guardado em memória para posteriormente comparar-se com as

“produções candidatas”. A produção do docente Raabe neste caso representa uma produção

“mandante”, e a do docente Zeferino representa a produção “candidata”. A seguir será

realizado o tratamento textual dos atributos da produção do docente Zeferino, antes de serem

tratadas elas possuem o seguinte formato:

Titulo do Trabalho: Bipide: ambiente de desenvolvimento integrado para utilização

dos processadores BIP no ensino de programação

Nome do Evento: SIMPÓSIO BRASILEIRO DE INFORMÁTICA NA

EDUCAÇÃO - SBIE 2009, 20.

Então o SapiSim irá realizar o tratamento textual proposto neste trabalho nos atributos

citados, e o resultado do seu tratamento será este:

Titulo de Trabalho: BIPIDE AMBIENTE DESENVOLVIMENTO INTEGRADO

UTILIZACAO PROCESSADORES BIP ENSINO PROGRAMACAO

Nome do Evento: SIMPOSIO BRASILEIRO INFORMATICA EDUCACAO – SBIE

2009 20

Page 48: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

48

Este processamento será guardado em memória para posteriormente ser comparado com uma

produção “mandante”. O próximo passo no SapiSim é retirar a similaridade entre os atributos

das duas produções tratadas e determinar se é coautoria ou não.

Foi realizada a similaridade entre os atributos tratados de mesmo nome de cada um

dos docentes, por exemplo, Titulo do Trabalho da produção do docente Raabe e o atributo

Titulo do Trabalho da produção do docente Zeferino, ponderando o seu resultado com peso de

0.9. O resultado de similaridade é 90 %, ou seja, alcançou 100 % na comparação parcial dos

atributos.

A seguir será realizada a mesma similaridade entre atributos tratados Nome do

Evento e ponderando com um peso de 0.1. O resultado da similaridade entre os atributos

Nome do Evento é 6,7, ou seja, alcançou mais de 50% da similaridade o que significa um

resultado bom.

Os resultados até agora exibidos foram parciais entre atributos, então para termos um

resultado final basta somarmos os resultados das similaridades dos atributos que é 96,7%, ou

seja, a soma da similaridade entre os atributos tratados atingiu 96,7% identificando uma

coautoria da modalidade automática.

Neste passo a passo podem ser visualizados os atributos das produções antes de

serem tratados e depois de serem tratados, observando que o tratamento realizado sobre o

texto eliminou varias diferenças entre os atributos, que se não fossem tratadas certeza

reduziria a similaridade total encontrada, e para um pior caso não identificando uma

coautoria.

3.8 DIAGRAMAS DE CLASSES

Os diagramas de classes foram separados em camadas de funcionalidades, este tipo

de modelagem foi adotado para uma melhor organização do conteúdo a ser apresentado. O

módulo possui três classes e duas interfaces que pertencem ao sistema SAPI 2.0, são elas:

ProduçãoDAO;

Produção;

DAO;

JPAProducaoDAO;

JPADAO .

Page 49: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

49

A classe Produção foi configurada como abstrata, é mostrada no diagrama com o

nome da classe em itálico, a interface ProduçãoDAO estende a interface DAO que é do tipo

genérico. O módulo SapiSim possui 14 classes que foram desenvolvidas, são elas:

JPAIdentificaCoAutoriaDAO;

JPANormalizaçãoDAO;

JPAStopWordsDAO;

Copia;

JPAComandDAO;

JPANormalizacaoEStopWordsBancaDAO;

JPANormalizacaoEStopWordsCapituloDeLivroDAO;

JPANormalizacaoEStopWordsLivroDAO;

JPANormalizacaoEStopWordsProjetoDePesquisa;

JPANormalizacaoEStopWordsArtigoPublicadoDAO;

JPANormalizacaoEStopWordsTrabalhoEmEventoDAO;

AutMon;

JPAFormulasSimilaridadeDAO;

JPACalculoSimilaridadeDAO;

JPAAutomaticoMonitoriaDAO.

E 5 interfaces que foram desenvolvidas, são elas:

NormalizacaoEStopWordsDAO;

CoAutoriaDAO;

FormulasSimilaridadeDAO;

CalculoSimilaridadeDAO;

AutomaticoMonitoriaDAO.

O módulo foi separado em quatro pacotes, no qual cada um exerce uma

funcionalidade que contribuirá para o todo. Os pacotes são:

Controle;

Tratador;

Similaridade;

Modelo.

Page 50: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

50

O próximo tópico abordará os conceitos das classes dos pacotes da modelagem do

projeto do módulo SapiSim.

3.8.1 Pacote Controle

O pacote apresenta duas classes e uma interface, responsáveis pelo controle do fluxo

do algoritmo no módulo SapiSim, para a identificação de coautorias. O diagrama de classe

desenvolvido para o pacote Controle pode ser visto na Figura 5.

Figura 5 Diagrama de Classe – Pacote Controle.

No diagrama são apresentadas duas classes e uma interface:

Page 51: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

51

1. JPAIdentificaCoAutoriaDAO: Esta classe controla todo o fluxo do algoritmo,

estabelecendo uma organização nas ações executadas para a identificação da

Coautoria, é a principal classe do módulo.

2. JPACommandDAO: Esta classe possui um mapeamento das classes tratadoras, do

pacote tratador chaveadas pelo código do tipo da produção, indicando a classe

tratadora correta de acordo com o tipo da produção a ser tratada, ou seja, é ela que

vai determinar qual classe será chamada de acordo com a identificação passada.

3. CoAutoriaDAO: Esta interface realiza o acesso aos métodos da classe

JPAIdentificaCoAutoriaDAO.

A descrição completa deste diagrama encontra-se no APÊNDICE B.

3.8.2 Pacote Tratador

O pacote tratador foi criado com a finalidade de tratar os atributos das produções, ou

seja, realizar a normalização textual e retirada de stopwords dos atributos. Tratamento que é

fundamental para a identificação da Coautoria, pois ela elimina palavras ou símbolos que

poderiam determinar alguma diferença na comparação dos títulos das produções. O diagrama

de classe desenvolvido para o pacote Tratador pode ser visto na Figura 6.

Page 52: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

52

Figura 6 Diagrama de Classes – Pacote Tratador.

No diagrama são apresentadas oito classes e uma interface:

1. JPAStopWordsDAO: Esta classe tem a finalidade de retirar dos atributos da

produção palavras de menor significado na frase, por exemplo, artigos, conjunções,

preposições. Cabe avisar o leitor que esta classe possui os seus métodos e atributos

declarados como STATIC;

2. JPANormalizaçãoDAO: Esta classe tem a finalidade de realizar a normalização dos

atributos produção, por exemplo, palavras com letras minúsculas são normalizadas

para o padrão maiúsculo, acentos são retirados, sinais de pontuação e caracteres

especiais. Cabe avisar ao leitor que os métodos e atributos desta classe foram

declarados como STATIC.

3. JPANormalizacaoEStopWordsTrabalhoEmEventoDAO: Esta classe tem a finalidade

de organizar o fluxo das ações do algoritmo para o tratamento dos atributos da

produção do tipo trabalho em evento, realizando chamadas aos métodos das classes

JPAStopWordsDAO e JPANormalizaçãoDAO e salvar os novos atributos numa lista

de objetos copia do pacote modelo.

4. JPANormalizacaoEStopWordsArtigoPublicadoDAO: Esta classe tem a finalidade de

organizar o fluxo das ações do algoritmo para o tratamento dos atributos da produção

do tipo artigo publicado, realizando chamadas aos métodos das classes

JPAStopWordsDAO e JPANormalizaçãoDAO e salvar os novos atributos numa lista

de objetos copia do pacote modelo.

5. JPANormalizacaoEStopWordsProjetoDePesquisaDAO: Esta classe tem a finalidade

de organizar o fluxo das ações do algoritmo para o tratamento dos atributos da

produção do tipo pesquisa de pesquisa, realizando chamadas aos métodos das classes

JPAStopWordsDAO e JPANormalizaçãoDAO e salvar os novos atributos numa lista

de objetos copia do pacote modelo.

6. JPANormalizacaoEStopWordsLivroDAO: Esta classe tem a finalidade de organizar

o fluxo das ações do algoritmo para o tratamento dos atributos da produção do tipo

livro, realizando chamadas aos métodos das classes JPAStopWordsDAO e

JPANormalizaçãoDAO e salvar os novos atributos numa lista de objetos copia do

pacote modelo.

7. JPANormalizacaoEStopWordsCapituloDeLivroDAO: Esta classe tem a finalidade de

organizar o fluxo das ações do algoritmo para o tratamento dos atributos da produção

Page 53: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

53

do tipo capitulo de livro, realizando chamadas aos métodos das classes

JPAStopWordsDAO e JPANormalizaçãoDAO e salvar os novos atributos numa lista

de objetos copia do pacote modelo.

8. JPANormalizacaoEStopWordsBancaDAO: Esta classe tem a finalidade de organizar

o fluxo das ações do algoritmo para o tratamento dos atributos da produção do tipo

participação em bancas de graduação, realizando chamadas aos métodos das classes

JPAStopWordsDAO e JPANormalizaçãoDAO e salvar os novos atributos numa lista

de objetos copia do pacote modelo.

9. NormalizacaoEStopWordsDAO: Esta interface é implementada por varias classes, e

é ela que vai acessar a classe que a implementa, a qual foi solicitado o seu acessado.

A descrição completa deste diagrama encontra-se no APÊNDICE B.

3.8.3 Pacote Similaridade

O pacote similaridade foi criado para o desenvolvimento das fórmulas de similaridade

para cada tipo de produção descritas na seção 3.5.1. Ele é usado para a realização dos cálculos

de similaridade textual entre atributos de duas produções científicas. O diagrama de classe

para o pacote Similaridade pode ser visto na Figura 7.

Page 54: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

54

Figura 7 Diagrama de classe – Pacote Similaridade

No diagrama são apresentadas duas classes e duas interfaces são elas:

1. JPAFormulasSimilaridadeDAO: Esta classe tem a finalidade de executar as

fórmulas de similaridade para cada tipo de produção para a determinação da

similaridade entre atributos de duas produções.

2. JPACalculoSimilaridadeDAO: Esta classe tem a finalidade de acessar os métodos

da classe Levenstein da biblioteca SimMetrics.

3. FormulasSimilaridadeDAO: Esta interface é implementada pela classe

JPAFormulasSimilaridadeDAO e tem a finalidade de acessar os métodos da classe

que a implementa, somente com objetos do tipo FormulasSimilaridadeDAO.

Page 55: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

55

4. CalculoSimilaridadeDAO: Esta interface é implementada pela classe

JPACalculoSimilaridadeDAO e tem a finalidade de acessar os métodos da classe

que a implementa, somente com objetos do tipo CalculoSimilaridadeDAO.

3.8.4 Pacote Modelo

O pacote modelo surgiu com a necessidade de um processamento com melhor

desempenho para a identificação das coautorias. A sua finalidade é realizar uma cópia dos

atributos dos objetos produção, com o objetivo de desvincular o objeto ao acesso a DAO, para

conseguir um melhor desempenho de processamento entre os atributos das produções. O

diagrama de classe para o pacote Modelo pode ser visto na Figura 8.

Figura 8 Diagrama de classe – Pacote Modelo

No diagrama é apresentada a classe Copia:

1. Copia: Esta classe tem a finalidade de realizar uma copia dos atributos do objeto

produção.

3.8.5 Pacote Acessa Banco

Page 56: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

56

O pacote acessa banco foi criado para separar as funcionalidades de acesso ao banco

de dados do resto da aplicação. Este pacote tem como objetivo principal tornar transparente o

acesso ao banco de dados. O diagrama de classe desenvolvido para o pacote Acessa Banco

pode ser visto na Figura 9.

Figura 9 Diagrama de Classe – Pacote Acessa Banco.

No diagrama são apresentadas cinco classes e três interfaces são elas:

1. AutomaticoMonitoriaDAO: Esta interface é implementada pela classe

JPAAutomaticoMonitoriaDAO e tem como finalidade permitir o acesso aos seus

métodos somente por objetos do tipo AutomaticoMonitoriaDAO.

2. ProduçãoDAO: Esta interface é implementada pela classe JPAProducaoDAO, e sua

finalidade é que seus métodos sejam acessados por objetos do tipo ProducaoDAO.

3. DAO: Esta interface é do tipo genérico e tem como finalidade a auto adaptação ao

tipo da entidade de relacionamento estabelecida nas extensões com interfaces DAO,

por exemplo, producaoDAO extends DAO<Producao>. ou

AutomaticoMonitoriaDAO extends DAO<AutMon>, além de conter o conjunto de

métodos do CRUD.

4. Produção: Esta classe ou entidade de relacionamento é responsável em reproduzir

uma tabela no banco de dados e conter os atributos das produções de todos os

Page 57: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

57

docentes do sistema SAPI 2.0. Através dela é possível construir um objeto produção,

e seus atributos poderão ser persistidos em banco, para a tabela que o objeto

produção representa.

5. AutMon: Esta classe ou entidade de relacionamento é responsável em reproduzir

uma tabela no banco de dados e conter os dados das produções identificadas

automaticamente e manualmente, somente depois de ter passado por análise. Através

dela é possível construir um objeto autmon, e seus atributos seriam persistidos em

banco, para a tabela que o objeto representa.

6. JPAAutomaticoMonitoriaDAO: Esta classe tem a finalidade de realizar consultas ao

banco de dados para a entidade relacional AutMon.

7. JPAProducaoDAO: Esta classe tem a finalidade de realizar consultas ao banco de

dados para a entidade relacional Producao.

8. JPADAO: Esta classe tem a finalidade de conter a implementação do CRUD, ela é

do tipo genérica (Figura 9, mostra comentário T) e se adapta a qualquer tipo de

entidade relacional que seja passada através de uma extensão numa interface DAO.

Exemplo mostrado no tópico 3.

A descrição completa deste diagrama encontra-se no APÊNDICE B.

3.9 CASO DE USO

Neste tópico será apresentado um caso de uso explicando como foi executa a tarefa

de Confirmação ou Rejeição das produções acadêmicas monitoradas, através de cenários, e

também serão apresentadas as telas do módulo SapiSim desenvolvidas durante o TTC II para

uma melhor compreensão de como ficarão.

3.7.1 UC03 Confirmar / Rejeitar produções científicas

Permite ao “USUÁRIO VALIDADOR” confirmar produções que poderão ser

coautoras, ou rejeitar produções que não são coautoras (Figura 14). Além disso, o “USUÁRIO

VALIDADOR” pode consultar a quantidade de produções pendentes (Figura 12), e consultar

a quantidade de produções finalizadas (Figura 19) para um determinado ano e tipo de

produção.

3.7.1.1 Requisitos

Este é o requisito que define a tarefa Confirmar / Rejeitar produções científicas.

Page 58: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

58

RF03 – O sistema deverá permitir ao usuário confirmar ou rejeitar a lista de

produções cuja Coautoria depende de sua intervenção (Identificação Monitorada).

3.7.1.2 Constrainst

Constrainst definem ações anteriores a execução da tarefa, a tarefa depende destas

ações para ser executada, e ações posteriores a sua execução, geralmente são os resultados da

tarefa.

Pré-condição. O “USUÁRIO VALIDADOR” ter executado o módulo pelo menos

uma vez;

Pré-condição. As produções identificadas como Monitoradas já devem estar

cadastradas;

Pós-condição. Visualizar consulta atualizada dos registros (Figura 12 e Figura 19).

3.7.1.3 Cenários

Nesta etapa, é apresentado um detalhamento do cenário. Realizando um passo a

passo nas telas do módulo SapiSim, exemplificando a tarefa. (i) Consultar registros (Figura

19); e Produções Pendentes (Figura 12).

Produções Pendentes {Figura 12}

Será descrito os passo 7 e passo 8 a serem realizados para a confirmação ou rejeição

da coautoria da produções identificadas como monitoradas, para cada passo é mostrado um

cenário alternativo mostrando as ações necessárias para se realizar cada objetivo do cenário.

“USUÁRIO VALIDADOR” clica no botão “Produções Pendentes” no sub menu na

(Figura 11 );

O sistema apresenta a tela “Produções Pendentes” da (Figura 12), já mostrando os

registros de produções monitoradas encontradas;

O “USUÁRIO VALIDADOR” deve filtrar pelo tipo de produção desejado. (Figura

12);

O “USUÁRIO VALIDADOR” pressiona o botão ‘+’ (Figura 13), para surgir às

produções agrupadas para um determinado ano;

O “USUÁRIO VALIDADOR” deve clicar em uma produção para abrir a próxima

tela (Figura 14).

Page 59: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

59

O sistema abrirá a tela da Figura 14 apresentando os detalhes da produção clicada na Figura

13 e os detalhes da “PRODUÇÃO CANDIDATA” a ser coautora da produção original.

O “USUÁRIO VALIDADOR” poder confirma Coautoria;

O “USUÁRIO VALIDADOR” pode rejeitar Coautoria;

O “USUÁRIO VALIDADOR” pode fecha a tela (Figura 14);

O sistema retorna para a (Figura 12).

O “USUÁRIO VALIDADOR” fecha a tela (Figura 12)

O sistema retorna para a (Figura 11) passo 1.

Será mostrado o 1º cenário alternativo com uma sequência de passos para a sua

realização.

Cenário alternativo confirmar coautoria:

O “USUÁRIO VALIDADOR” seleciona uma “PRODUÇÃO CANDIDATA” (Figura

14);

O “USUÁRIO VALIDADOR” analisa os detalhes da produção original e da

“PRODUÇÃO CANDIDATA”, e opta em confirmar Coautoria;

O sistema processa a solicitação do “USUÁRIO VALIDADOR”;

O sistema retorna para a (Figura 12) passo 2.

Será mostrado o 2º cenário alternativo com uma sequência de passos para a sua

realização.

Cenário alternativo rejeitar coautoria:

O “USUÁRIO VALIDADOR” seleciona uma “PRODUÇÃO CANDIDATA” (Figura

14);

O “USUÁRIO VALIDADOR” analisa os detalhes da produção original e da

“PRODUÇÃO CANDIDATA”, e opta em rejeitar Coautoria;

O sistema processa a solicitação do “USUÁRIO VALIDADOR”;

O sistema retorna para a (Figura 12) passo 2.

Consultar Registros {Figura 19}

“USUÁRIO VALIDADOR” clica no botão “Definir CoAutorias” no sub menu na

(Figura 18);

Page 60: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

60

O sistema apresenta a tela “Definir CoAutorias” da (Figura 19), já mostrando os

registros de coautorias encontradas;

O “USUÁRIO VALIDADOR” deve filtrar por ‘Monitoria’ e pelo tipo de produção

correspondente a produção confirmada como coautora (Figura 19);

O “USUÁRIO VALIDADOR” pressiona o botão ‘+’ (Figura 19), para surgir as

produções agrupadas para um determinado ano;

O “USUÁRIO VALIDADOR” deve clicar em uma produção para abrir a próxima

tela (Figura 21).

O sistema abrirá a tela da Figura 21 apresentando os detalhes da produção clicada na

Figura 20 e os detalhes da produção coautora para visualizar os detalhes das duas

produções confirmadas como produções monitoradas (Figura 21).

3.10 TELAS DO MÓDULO SAPISIM

As telas desenvolvidas durante o TTC II serão acessadas pelo ““USUÁRIO

VALIDADOR””, que é um funcionário do projeto SAPI que verifica a comprovação dos

trabalhos acadêmicos. Nelas serão visualizadas as produções entituladas como

“PRODUÇÕES MONITORADAS”, produções que estiverem entre o LIMITE INFERIOR,

75% e o LIMITE SUPERIOR, 87% de similaridade e necessitam da confirmação da coautoria

ou a sua rejeição.

O LIMITE INFERIOR e o limite SUPERIOR, foram definidos analisando pré-

resultados obtidos com os primeiros testes e neles foi identificado que todas as comparações

que atingiram similaridades de 87% eram coautorias consideradas automáticas e todas as

comparações que atingiram abaixo de 75% eram comparações que poderiam ser descartadas.

Para o “USUÁRIO VALIDADOR” poder acessa-las primeiro é preciso fazer login

no sistema SAPI 2.0. Feito isso o “USUÁRIO VALIDADOR” deverá acessar um sub menu

chamado “CoAutorias”, na Figura 10 é apresentado uma ilustração da tela TEL001.

Page 61: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

61

.

Figura 10. Tela do sistema SAPI 2.0 – TEL001.

Então surgirão dois botões chamados Produções Pendentes e Definir CoAutoria, o

“USUÁRIO VALIDADOR” acessará primeiramente o botão chamado Produções Pendentes.

A Figura 11, é a continuação da Figura 10.

Figura 11. Tela do sistema SAPI 2.0 – TEL001.

Page 62: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

62

Na Figura 12, é exibida a tela “Produções Pendentes” que tem o objetivo de

apresentar uma lista com todas as produções de um tipo identificadas como monitoradas, ou

seja, as produções que tiveram similaridade entre 70% a 86%, e organizadas e agrupadas por

ano. Na ilustração da Figura 12, existe um filtro por tipo de produção, ou seja, o “USUÁRIO

VALIDADOR” poderá filtrar a lista por um tipo presente no filtro, trazendo apenas as

produções monitoradas para o tipo de produção selecionado no filtro, agrupadas por ano.

Então o “USUÁRIO VALIDADOR” deverá clicar no sinal de ‘+’ à esquerda da tela para um

grupo de produções surgirem. Segue ilustração na Figura 13.

Figura 12. Tela do Módulo SapiSim – TEL002

Na Figura 13, é apresentada a continuação da Figura 12, que mostra o surgimento

das produções de um agrupamento por ano. Então o “USUÁRIO VALIDADOR” deverá

clicar em uma referência de produção que surgiu, para poder acessar a próxima tela.

Page 63: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

63

Figura 13. Tela do Módulo SapiSim – TEL002.

Quando clicado uma produção acessa a ilustração da Figura 14. A tela da Figura 14

possui duas listas, a primeira que mostra os atributos da produção clicada na ilustração da

Figura 13, e a segunda mostra produções candidatas a serem coautoras da produção original,

ou seja, da produção que foi clicada na ilustração da Figura 13.

O “USUÁRIO VALIDADOR” ainda poderá clicar na flecha à esquerda da

“PRODUÇÃO CANDIDATA”, presente na lista de produções candidatas, para surgir os

detalhes da “PRODUÇÃO CANDIDATA”. Esta ilustração será mostrada na Figura 15. A

ilustração da Figura 14 tem como objetivo principal mostrar para o “USUÁRIO

VALIDADOR” os detalhes da “PRODUÇÃO MANDANTE” e os detalhes da “PRODUÇÃO

CANDIDATA”, dando-lhe uma visão completa sobre os atributos das produções avaliadas,

podendo realizar uma análise completa dos dados e decidir sem restar dúvidas se as produções

são coautoras ou não são coautoras.

Page 64: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

64

Para o “USUÁRIO VALIDADOR” poder confirmar ou rejeitar a coautoria, ele deve

clicar em alguma referência de produção da lista de produções candidatas e clicar no botão

“Confirmar CoAutoria”, se foi identificado uma coautoria entre as produções em análise ou

clicar no botão “Não Existe CoAutoria”, se foi identificado que entre as produções em análise

não possui uma coautoria.

Então a ação tomada será processada e atualizará a lista de produções candidatas, se

a coautoria for confirmada então o registro será transferido para a tabela das produções

identificadas automaticamente que deverá aparecer no relatório das produções identificadas

automaticamente, se a coautoria não existir então o registro será deletado da tabela de

produções monitoradas.

Na Figura 16 é apresentada uma ilustração da tela com a lista de produções

candidatas atualizada e na Figura 17 é mostrada uma ilustração da tela quando não houver

mais produções candidatas a serem comparadas com a produção original.

Figura 14. Tela do Módulo SapiSim – TEL003.

Page 65: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

65

Figura 15. Tela do Módulo SapiSim – TEL003.

Figura 16. Tela do Módulo SapiSim – TEL003.

Page 66: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

66

Figura 17. Tela do Módulo SapiSim – TEL003.

Nas telas a seguir pode-se visualizar a produção confirmada como coautoria e todas

as produções identificadas como automáticas, ele deverá voltar a tela principal do sistema

SAPI 2.0, acessar o sub menu CoAutorias e clicar no botão chamado “Definir CoAutorias”

acessando a tela chamada “Definir CoAutorias” como é mostrado na Figura 18.

Figura 18. Tela do sistema SAPI 2.0 – TEL001

Page 67: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

67

A tela “Definir CoAutorias”, é exibida na ilustração da Figura 19, ela possui dois

filtros e uma lista chamada “CoAutorias Finalizadas” que agrupa por ano as produções

filtradas por (automática ou monitorada).

O primeiro filtro chamado de “tipos de produções” é responsável por filtrar todas as

produções da lista pelo tipo de produção selecionado no filtro. O segundo filtro chamado de

“Tipos de CoAutorias” é responsável por filtrar somente as produções identificadas como

“Automaticas” ou “Monitoradas”.

Esta tela tem como objetivo principal mostrar um relatório para simples conferência

das produções identificadas automaticamente e monitoradamente. O “USUÁRIO

VALIDADOR” deverá clicar no sinal de ‘+’ à esquerda da Figura 19, onde surgirá as

produções agrupadas para aquele ano, a Figura 20 ilustra esta situação.

Figura 19. Tela do Módulo do SapiSim – TEL004.

Page 68: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

68

Figura 20. Tela do Módulo SapiSim – TEL004.

Clicando na referência da produção será aberta uma próxima tela que é exibida na

Figura 21. A tela da Figura 21 apresenta os detalhes da produção clicada na Figura 20,

identificada como “Produção Original” e uma lista chamada de “Produções CoAutoras” que

são as produções coautoras da produção clicada na Figura 20. Clicando na flecha à esquerda

da Figura 21, surgirá os detalhes da produção coautora.

A tela da Figura 21 tem como objetivo apresentar os detalhes da produção original e

os detalhes da produção coautora para simples conferência de atributos e constatar que

realmente são coautoras.

Page 69: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

69

Figura 21. Tela do Módulo do SapiSim – TEL005.

Page 70: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

70

4 RESULTADOS

Foram realizados estudos de casos com docentes que possuem produções de

diferentes tipos contendo coautores. Os docentes foram selecionados pelos seguintes critérios:

(i) possuírem uma boa produtividade; (ii) terem proximidade com o desenvolvimento do

SAPI (importante para elucidar casos específicos); (iii) apresentarem um bom número de

produções com coautorias; (iv) serem de áreas de atuação diferentes. Os docentes

selecionados seguindo estes critérios foram: André Luís Alice Raabe, pesquisador de

Computação e Educação, orientador deste trabalho e responsável pelo SAPI e Valdir Cechinel

Filho, Pro-reitor de pesquisa, pesquisador dá área de Farmácia.

Para cada um destes docentes foram definidos os sete coautores mais frequentes para

realização deste estudo de caso. O currículo Lattes dos dois docentes e de cada um dos sete

coautores (16 pessoas no total) foi então importado pelo SAPI 2.0 disparando assim o

processo de identificação de coautorias.

Os estudos de caso apresentados a seguir são análises dos resultados obtidos com a

execução do processo de identificação de coautorias criado no TTC II, ou seja, são análises

das produções identificadas automaticamente, monitoradamente e identificação das produções

que poderiam ter sido identificadas, mas não foram e as respectivas causas.

Para interpretação dos resultados de ambos os estudos de caso, são necessários

definir os seguintes termos:

Automáticas: Produções encontradas automaticamente, ou seja, similaridades

apresentadas acima dos 86%.

Monitoradas: Produções encontradas monitoradamente, ou seja, similaridades

apresentadas entre 75% a 86%.

Não Encontradas: São produções coautoras existentes nos currículos Lattes dos

docentes, mas por falha no processo não foram encontradas.

Não existe: São produções presentes no currículo Lattes do docente e que deveriam

ter produções coautoras, mas não são encontradas por não existirem nos currículos

Page 71: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

71

lattes de seus docentes coautores, ou seja, o docente coautor não a publicou no seu

currículo lattes para serem baixadas pelo sistema SAPI 2.0.

4.1 ESTUDO DE CASO 1

O estudo de caso foi conduzido com o docente André Raabe. Foram escolhidos 7

(sete) docentes que tinham mais de um trabalho em coautoria com o docente André Raabe

para que a análise fosse feita com estes. Os docentes são: (i) Anita Maria Rocha Fernandes;

(ii) Cesar Albenes Zeferino; (iii) Rudimar Luis Scaranto Dazzi; (iv) Fabiane Barreto

Vavassori Benitti; (v) Rafael de Santiago; (vi) Adriana Gomes Alves; (vii) Elieser Ademir de

Jesus.

Definido isto foi feito uma busca no SAPI 1.0, pelas produções do docente André

Luís Alice Raabe filtradas pelos tipos de produções que o SAPI tratará coautorias. Nestas

foram recuperadas as referências bibliográficas a fim de saber quem são os coautores de cada

produção.

Os dados foram tabulados no programa Excel, (das produções do docente André

Raabe) para os tipos trabalhos considerados, contendo produções de todos os seus coautores

(além dos sete escolhidos), então foram retiradas manualmente as produções com coautores

não analisados, restando uma lista de produções somente dos docentes analisados. O total de

produções resultante desta etapa foi 102 produções sendo: 36 trabalhos em eventos; 10 artigos

em periódicos; 3 capítulos de livros; 48 bancas de trabalho de conclusão e 4 projetos de

pesquisa.

O próximo passo foi acessar a base de dados do módulo SapiSim, para buscar as

produções encontradas monitoradamente, desta forma obtendo os títulos e autores das

produções através do seu ID, desta forma foi possível saber qual produção de qual docente é

candidata a coautoria de uma produção do docente Raabe.

Após, os títulos das produções do docente Raabe eram copiados e pesquisado na lista

de produções, assim que encontrado era feito uma marca na linha da produção para indicar

que aquela produção com aquele docente foi encontrado como sendo ‘monitorada’ e marcava

numa tabela um ponto para o docente encontrado para a categoria monitoria.

Page 72: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

72

Após o término desta etapa, iniciou um processo parecido como o anterior.

Buscaram-se as produções encontradas automaticamente na base de dados do módulo

SapiSim, desta forma obtendo os títulos e autores das produções através do seu ID. Então o

seu título era copiado e pesquisado na lista de produções, assim que encontrado o titulo da

produção na lista, a sua referência bibliográfica era comparada ao resultado obtido na base de

dados.

Por exemplo, uma produção do docente Raabe do tipo ‘trabalho em evento’ presente

na lista de produções, mostra em sua referência bibliográfica (exemplo mostrado acima) que a

produção possui dois coautores o docente Santiago e Dazzi. Esta produção do docente Raabe

foi encontrada como sendo automática, e para a mesma foi encontrada uma produção coautora

do docente Santiago . Então foi feito uma busca na base de dados mostrando o relacionamento

entre estas duas produções através de seus Ids e depois copiando o seu titulo e pesquisando na

lista de produções, assim que encontrado, analisava-se a referência da produção da lista de

produções verificando que a mesma possui dois coautores Santiago e Dazzi, mas na base de

dados somente foi encontrado a produção do docente Santiago como coautora, então era

marcado 1 (um) ponto para o Santiago para a categoria ‘automatica’ e era marcado 1 (um)

ponto para o Dazzi na categoria ‘Não encontradas’ ou ‘Não Existe’.

Ao analisar as produções encontradas ‘monitoradas’ e ‘automáticas’ presentes na

base de dados do SapiSim, sobravam produções na lista de produções que não foram

identificadas nem como sendo ‘monitoradas’ e nem como sendo ‘automáticas’, então foi feito

uma busca no banco de dados pelo ano e código do coautor verificando se a produção do

coautor presente na referência bibliográfica da produção do docente Raabe existia no

currículo Lattes do docente coautor ou não existia no seu currículo Lattes do mesmo, se

existia era marcado um ponto para o docente coautor na categoria ‘Não encontrada’, mas se

não existia era marcado um ponto para o docente coautor na categoria ‘Não Existe’. A seguir

será apresentada a figura de resultados do estudo de caso 1.

Os resultados obtidos estão apresentados no quadro da Figura 22. O quadro apresenta

o total de produções do docente Raabe que foram analisados, e ilustra para cada um dos sete

coautores quantas produções foram identificadas.

Page 73: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

73

André

RaabeAutomáticas M onitoradas

Não

EncontradasNão Existe Automáticas M onitoradas

Não

EncontradasNão exsite

Trabalhos em

eventos36 2 0 1 0 6 0 0 0

Art igos em

Periódicos10 0 0 0 0 2 0 0 0

Livros Publicados 0 0 0 0 0 0 0 0 0Capítulo de Livro

Publicado3 0 0 1 0 0 0 0 0

Part icipação em

Banca de

Graduação48 5 0 1 0 1 0 0 0

Projeto de

Pesquisa4 0 0 0 0 0 0 0 1

André

RaabeAutomáticas M onitoradas

Não

EncontradasNão Existe Automáticas M onitoradas

Não

EncontradasNão Existe

Trabalhos em

eventos36 8 2 0 1 8 1 0 0

Art igos em

Periódicos10 2 0 0 0 3 0 0 0

Livros Publicados 0 0 0 0 0 0 0 0 0Capítulo de Livro

Publicado3 1 0 0 0 0 0 0 0

Part icipação em

Banca de

Graduação48 17 0 0 2 6 0 0 0

Projeto de

Pesquisa4 0 1 0 1 0 0 0 1

André

RaabeAutomáticas M onitoradas

Não

EncontradasNão Existe Automáticas M onitoradas

Não

Encontradas Não Existe

Trabalhos em

eventos36 5 0 1 0 5 0 0 0

Art igos em

Periódicos10 0 0 0 0 2 0 0 1

Livros Publicados 0 0 0 0 0 0 0 0 0Capítulo de Livro

Publicado3 0 0 0 0 0 0 0 0

Part icipação em

Banca de

Graduação48 10 0 1 0 3 0 0 0

Projeto de

Pesquisa4 1 0 0 0 0 0 0 2

André

Raabe Automático M onitoradas

Não

Encontradas Não Existe

Trabalhos em

eventos36 2 0 0 0

Art igos em

Periódicos10 0 0 0 0

Livros Publicados 0 0 0 0 0Capítulo de Livro

Publicado3 1 0 0 0

Part icipação em

Banca de

Graduação48 18 0 0 2

Projeto de

Pesquisa4 1 0 0 1

Rudimar Luis Scaranto Dazzi

Adriana Gomes Alves

Anita M aria da Rocha Fernandes Cesar Albenes Zeferino

Fabiane Barreto Vavassori Rafael de Sant iago

Elieser Ademir de Jesus

Figura 22. Resultado do estudo de caso 1.

A interpretação deste quadro pode ser feita da seguinte forma. Em cada linha da

tabela é apresentado o total de produções de cada tipo que o docente Raabe possui em

coautoria com colegas. Esta informação é repetida quatro vezes para facilitar comparação

visual. Em cada coautor as produções do docente caem necessariamente em uma das quatro

modalidades (Automática, Monitorada, Não encontrada, Não existe).

Page 74: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

74

Por exemplo, O docente Raabe teve como a docente Fabiane Benitti 11 produções do

tipo trabalhos em eventos. Destas, 8 foram identificadas de forma automática, duas de forma

monitorada e uma não existe no lattes da coautora. Deve-se salientar que por existirem

produções com mais de um coautor (entre os sete analisados) o total de trabalhos identificados

somando todos os coautores pode ser superior aos trabalhos do docente Raabe.

Desta forma, a coluna que indica problemas ou insuficiência do sistema é a coluna

(não encontradas) as demais são situações que tem causas explicadas ou então que estão de

acordo com o propósito do trabalho.

A seguir será feito um levantamento dos principais pontos do estudo de caso 1.

No total, apenas cinco produções não foram encontradas das 102 analisadas, ou seja

um erro inferior a 5%, pois este trabalho não tem o objetivo de identificar todas as

coautorias.

Apenas 2 (dois) docentes dos 7 (sete) escolhidos apresentaram produções cuja

coautoria não foi encontrada. A docente Anita Fernandes teve 3 produções não

encontradas em 10, ou seja, o SapiSim encontrou 70% das coautorias. Já a docente

Adriana Alves teve duas produções não encontradas de um total de 20, ou seja, em

90% das produções o SapiSim encontrou as coautorias.

Na coautoria com o docente Cesar Zeferino o SapiSim encontrou 100% das

produções dos tipos trabalho em evento e em periódico.

Também encontrou 100% das bancas de Trabalho de graduação em conjunto com a

docente Fabiane Benitti (as duas não encontradas não constavam no currículo da

docente).

Somando todas as produções do tipo artigo publicado em periódico o SapiSim não

falhou em nenhuma coautoria, tendo 100% de acerto.

Somando todas as produções tipo participação em banca o SapiSim falhou em apenas

3% para coautorias não encontradas.

Page 75: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

75

4.2 ESTUDO DE CASO 2

O estudo de caso 2 foi conduzido com o docente Valdir Cechinel Filho. A estratégia

adotada para desenvolver o estudo de caso 2 foi à mesma estratégia do estudo de caso 1. Os

docentes principais coautores analisados foram: (i) Cristiani Burger; (ii) Alexandre Bella

Cruz; (iii) Luciano Gonzaga Galvão; (iv) Rogério Corrêa; (v) Rivaldo Niero; (vi) Edneia

Casagranda Bueno; (vii) Nara Lins Meira Quintão.

O total de produções analisado foi 310 produções sendo: 186 trabalhos em eventos;

91 artigos em periódicos; 9 capítulos de livros; 16 bancas de trabalho de conclusão e 8

projetos de pesquisa. A seguir são apresentados os resultados do estudo de caso 2.

Page 76: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

76

Valdir CechinelAutomaticas M onitoradas

Não

EncontradasNão Existe Automaticas M onitoradas

Não

EncontradasNão Existe

Trabalho em

Eventos186 10 0 0 0 30 4 1 7

Art igo em

Periodico91 2 0 1 1 16 2 1 1

Livro 0 0 0 0 0 0 0 0 0Capitulo de

Livro9 0 0 0 0 1 0 0 0

Part icipação

em bancas16 2 0 0 0 5 0 1 0

Projeto de

Pesquisa8 0 0 0 0 0 0 0 1

Valdir CechinelAutomaticas M onitoradas

Não

EncontradasNão Existe Automaticas M onitoradas

Não

EncontradasNão Existe

Trabalho em

Eventos186 0 0 0 4 32 4 0 16

Art igo em

Periodico91 0 0 0 1 26 1 5 1

Livro 0 0 0 0 0 0 0 0 0Capitulo de

Livro9 0 0 0 0 2 0 0 0

Part icipação

em bancas16 0 0 0 0 3 0 0 0

Projeto de

Pesquisa8 0 0 0 0 1 0 0 1

Valdir CechinelAutomaticas M onitoradas

Não

EncontradasNão Existe Automaticas M onitorias

Não

EncontradasNão Existe

Trabalho em

Eventos186 50 4 0 13 6 4 0 0

Art igo em

Periodico91 28 7 4 1 1 0 1 0

Livro 0 0 0 0 0 0 0 0 0Capitulo de

Livro9 2 0 0 3 0 0 0 0

Part icipação

em bancas16 6 0 0 0 0 0 0 0

Projeto de

Pesquisa8 1 0 0 0 0 0 0 0

Valdir CechinelAutomaticas M onitorias

Não

EncontradasNão Existe

Trabalho em

Eventos186 18 4 0 3

Art igo em

Periodico91 5 0 2 0

Livro 0 0 0 0 0Capitulo de

Livro9 0 0 1 0

Part icipação

em bancas16 0 0 0 0

Projeto de

Pesquisa8 2 0 0 1

Rivaldo Niero Edneia Casagranda Bueno

Nara Lins Quintao

Crist iani Burger Alexandre Bella Cruz

Luciano Gonzaga Galvao Rogerio Corrêa

Figura 23. Resultado do estudo de caso 2.

Os principais pontos do estudo de caso 2 a serem salientados são:

No total, apenas 17 produções não foram encontradas das 310 analisadas, ou seja, um

erro inferior a 5,5%, pois este trabalho não tem o objetivo de identificar toda as

coautorias, mas sim a grande maioria.

Page 77: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

77

O docente Rivaldo Niero somando todas as produções constou 119 vezes sendo

identificadas como não encontradas apenas 4 (quatro) produções, representando um

erro de 3,3% do total de produções coautoras.

O docente Rogério Corrêa somando todas as produções constou 92 vezes sendo

identificadas como não encontradas 5 (cinco) produções, representando um erro de

5,4% do total de produções coautoras.

O docente Alexandre Cruz somando todas as produções constou 70 vezes sendo

identificadas como não encontradas 3 (três) produções, representando um erro de

4,2% do total de produções coautoras.

Para a docente Cristiani Burger o SapiSim encontrou todas as produções coautoras.

Tendo 0% de erro para o tipo trabalhos em eventos.

Para o docente Alexandre Bella Cruz o SapiSim encontrou 30 produções sendo

que 7 (sete) produções não foram encontradas por causa que as produções do docente

não constavam em seu currículo Lattes, 4 (quatro) produções constaram como

monitoradas e em somente 1 (uma) produção o SapiSim falhou. Tendo apenas 2,3%

de erro.

4.3 CONSIDERAÇÕES SOBRE OS ESTUDOS DE CASOS

Após análise dos dois estudos de caso alguns pontos comuns foram identificados que

são salientados a seguir:

A grande maioria das coautorias que não foram identificadas ocorreu por não

existirem no currículo Lattes do correspondente coautor. Não significando uma falha

do módulo SapiSim.

Nos dois estudos de caso a identificação de coautorias na modalidade automática foi

amplamente superior às demais modalidades;

Durante a realização dos testes foram ajustados os limites inferior e superior da

similaridade para ampliar a exatidão dos resultados. Os limite superior (ligado a para

identificação automática) passou para 87% de similaridade (antes dos testes era 90%)

Page 78: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

78

e o limite inferior (ligado a identificação monitorada) passou para 75% (antes era

70%). Em resumo os limites ficaram como segue:

o Automática: similaridade >= 87%

o Monitorada: similaridade >= 75% e similaridade < 87%

O erro total na modalidade (produções não encontradas) dos dois estudos de caso foi

de 22 produções, sendo o total de produções 412. Desta forma o erro foi de 5,34 % o

que pode ser considerado um valor baixo.

Duas causas identificadas que provocaram erros no SapiSim durante os testes de

identificação de coautorias, (i) Ao analisar os atributos das produções comparadas,

poderiam ser consideradas coautoras, mas foram excluídas pela regra do ISSN ou

ISBN, que descartam comparações com ISSN e ISBN diferentes. (ii) O grau de

similaridade entre as produções ficou abaixo do LIMITE SUPERIOR.

5 CONCLUSÕES

Este trabalho buscou trazer melhorias para o sistema SAPI 2.0 da UNIVALI. O

objetivo principal era a construção de um módulo para identificar coautorias entre produções

acadêmicas. Este objetivo foi atendido como pode ser verificado no decorrer desta

monografia, em especial nas ilustrações de telas (na seção 3.8) e dos resultados das análises

dos estudos de casos (no capítulo 4) que demostram os resultados obtidos pela utilização do

módulo. O módulo, denominado SapiSim, identificou coautorias no sistema SAPI 2.0, dando

uma maior confiança nos resultados obtidos em relatórios dos escores dos docentes ao

eliminar redundâncias geradas por estas coautorias.

Os objetivos específicos foram todos alcançados. O objetivo (i) Pesquisar e

documentar conceitos relacionados à similaridade de atributos foi obtido por meio da

pesquisa de trabalhos correlatos e fundamentação teórica apresentados no capítulo 2. Os

objetivos (ii) Definir algoritmos de similaridade textual para comparação dos atributos e (iii)

Definir heurísticas e regras para ponderar a similaridade entre os atributos das produções

foram alcançados e estão apresentados no capítulo 3 que detalha o desenvolvimento do

módulo SapiSim contendo os algoritmos de similaridade e regras de negócio implementadas.

Page 79: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

79

Já o objetivo (iv) Testar e avaliar o módulo SapiSim no Sistema de Avaliação de

Produção Institucional (SAPI) da Universidade do Vale do Itajaí (UNIVALI) foi alcançado

por meio da realização de dois estudos de caso de docentes típicos usuários do SAPI,

conforme consta no capítulo 4.

Não foi criada nenhuma tarefa adicional para o docente do sistema. Basta atualizar

seus currículo no SAPI que o módulo SapiSim irá buscar as coautorias. Já a tarefa de

identificação monitorada criar uma tarefa a mais para o “USUÁRIO VALIDADOR” do SAPI.

Desta forma, esta tarefa foi organizada para que a identificação das produções possa ser

realizada em partes, sendo segmentada por ano e/ou por tipo de produção. Desta forma caso

exista uma necessidade específica de análise os esforços de identificação das coautorias

monitoradas poderão ocorrer conforme a demanda.

A principal dificuldade para desenvolvimento do módulo foi compreender e

desenvolver utilizando o conjunto de tecnologias adotado no SAPI 2.0, ou seja, Smart Client e

Hibernate. Esta dificuldade foi ultrapassada e pode-se considerar que o módulo produzido

possui características adequadas a sua utilização como produto do sistema SAPI.

Uma cópia de todo o código do desenvolvimento do módulo está no servidor do

projeto SAPI, no entanto o módulo foi testado apenas em uma máquina local. Para

implantação no SAPI duas tarefas encontram-se pendentes (que não eram escopo deste TCC):

(i) Homologação da implementação pelos desenvolvedores do SAPI e (ii) Alteração da forma

de cálculo do escore do SAPI considerar as produções com coautoria.

O módulo SapiSim foi pioneiro na identificação de coautorias no Sistema SAPI, mas

ainda há muito o que fazer, então o autor deixa algumas sugestões de trabalhos futuros. (i)

Tornar o LIMITE SUPERIOR e LIMITE INFERIOR configuráveis, ou seja, ter a opção de

modifica-lo conforme a necessidade do sistema. (ii) Avisar o docente de uma produção não

cadastrada em seu currículo LATTES, para poder ser identificada uma coautoria.

Analisando os resultados obtidos, pode-se afirmar que o SapiSim apresentou

resultados satisfatórios viabilizando a tarefa de identificação de coautorias nas produções

científicas do sistema SAPI 2.0. No entanto é importante admitir que os dois estudos de caso ,

ainda que conduzidos de forma rigorosa, não fornecem uma garantia plena de que novos

ajustes nas regras e limites de similaridade sejam necessários ao ampliar-se o número de

docentes. Como tem mostrado a história de desenvolvimento do SAPI, muitas situações só

são passíveis de serem detectadas quando o universo de docentes com ampla diversidade de

tipos de produção é contemplado.

Page 80: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

80

Espera-se com este trabalho ter contribuído para melhoria de um produto que torna-

se cada vez mais um diferencial da UNIVALI e que tem boas perspectivas de futuro.

Page 81: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

81

REFERÊNCIAS BIBLIOGRÁFICAS

ALEXANDER, C.; An Introduction for Object-Oriented Designers. 2012. Disponível em: <

http://g.oswego.edu/dl/ca/ca/ca.html > . Acessado em 20 abr. 2012.

ARANHA, C. N.; Uma Abordagem de Pré-Processamento Automático para Mineração de

Textos em Português: Sob o Enfoque da Inteligência Computacional. 2007. Tese - Pontifícia

Universidade Católica do Rio de janeiro. Local: PUC-RJ. Data: 2007.

BARION, E. C. N.; LAGO, D.; Mineração de Textos. Revista de Ciências Exatas e

Tecnologia. São Paulo. Vol. (III). N. (III), p. (18). Dez. 2008.

CARDOSO, O. N. P.; Recuperação de Informação. Universidade Federal de Lavras.

Departamento de Ciência da Computação. Pag. inicial. 1, Pag. final. 6. 2005.

CHALCO, J. P. M.; CESAR JUNIOR, R. M. ScriptLattes: an open-source knowledge

extraction system from the Lattes platform. Journal of the Brazilian Computer Society. Local:

Campinas. Vol. (15). N. (4), 15 dez, 2009.

FARIAS, L. R.; VARGAS, A. P.; BORGES, E. N.; Um sistema para análise de redes de

pesquisa baseado na Plataforma Lattes. Centro de Ciências Computacionais – Universidade

Federal do Rio Grande (FURG). 2011 Disponível em:

<http://www.eduardo.c3.furg.br/arquivos/download/erbd-pesquisa2012.pdf> . Acessado em:

20 mar. 2012.

GARCIA, E.; Cosine Similarity and Term Weight Tutorial. In: An Information Retrieval

Tutorial on Cosine Similarity Measures, Dot Products and Term Weight Calculations.

Information Retrieval Tutorials. Série. 2. 2006.

HIBERNATE. Visão geral Hibernate. 2010. Disponível em: <http://www.hibernate.org/ > .

Acessado em : 23 abr. 2012.

JARO, M. A.; Advances in Record-Linkage Methodology as

Applied to Matching the 1985 Census of Tampa. 1989. Disponível em :

<http://www.fcsm.gov/working-papers/mjaro.pdf>. Acessado em: 23 jun. 2012.

JEAN, W. A.; OLIVEIRA, A. H. F.; LAENDER, M. A. G.; Remoção de ambiguidade das

autorias de objetos bibliográficos. Departamento de Ciência da Computação - Universidade

Federal de Minas Gerais. 2005. Disponível em:

<http://www.google.com.br/url?sa=t&rct=j&q=remo%C3%A7%C3%A3o%20de%20ambig%

C3%BCidades%20na%20identifica%C3%A7%C3%A3o%20de%20autoria%20de%20objetos

%20bibliogr%C3%A1ficos%201&source=web&cd=1&ved=0CCQQFjAA&url=http%3A%2

F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.137.5843%26rep%

3Drep1%26type%3Dpdf&ei=V-

aaT6aaMMqItwfViKynBA&usg=AFQjCNGYqNCyJoA2UTDncnWfQCYu2RHCaw&cad=rj

a > . Acessado em: 25 mar. 2012.

LEVENSHTEIN. The Levensgtein-Algorithm. 2012. Disponível em:

<http://www.levenshtein.net/index.html>. Acessado em : 27 jun. 2012.

Page 82: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

82

MONGE, A. E.; ELKAN, C. P.; The field matching problem: Algorithms and applications.

Department of Computer Science and Engineering. University of California, San Diego, La

Jolla, California. Disponível em:

<http://pdf.aminer.org/000/473/089/the_field_matching_problem_algorithms_and_application

s.pdf>. Acessado em : 23 jun. 2012.

PACIEVITCH, T.; Conselho Nacional de Desenvolvimento Científico e Tecnológico. 2009.

Disponível em : <http://www.infoescola.com/ciencias/conselho-nacional-de-

desenvolvimento-cientifico-e-tecnologico-cnpq/>. Acessado em : 02 jul. 2012.

RAABE, A. L. A.; O que é o SAPI. 2011. Disponível em:

<http://siaiacad17.univali.br/~sapi/index.html>. Acessado em: 09 fev. 2012.

RIBEIRO JUNIOR, L. C.; BORGES, T.; LICHTNOW, D.; LOH, S.; SALDANÃ, R.;

Identificação de Áreas de Interesse a partir da Extração de Informações de Currículos

Lattes/XML. Escola de Informática – Universidade Católica de Pelotas (UCPel). 2005.

Disponível em: <http://paginas.ucpel.tche.br/~loh/pdfs/erbd-2005.pdf >. Acessado em: 23

mar. 2012.

ROSETTACODE. Levenshtein Distance. 2012. Disponível em :

<http://rosettacode.org/wiki/Levenshtein_distance>. Acessado em : 20 mai. 2012.

SMARTCLIENT. Client-Server Integration. 2010. Disponível em:

<http://localhost:8080/isomorphic/system/reference/SmartClient_Reference.html#group..clien

tServerIntegration> . Acessado em: 25 abr. 2012.

SMARTCLIENT. Visão geral SmartClient. 2010. Disponível em:

<http://www.smartclient.com >. Acessado em : 23 abr. 2012

SMITH, T. F.; WATERMAN, M. S.; Identification of Common Molecular Subsequences.

1981. Disponível em : <http://www.cmb.usc.edu/papers/msw_papers/msw-042.pdf>.

Acessado em : 23 jun. 2012.

SOURCEFORGE. SimMetrics. UK Sheffield University. 2004. Disponivel em:

<http://sourceforge.net/projects/simmetrics/files/>. Acessado em: 19 fev. 2012.

STANLEY BLOG. Lista de StopWords nas línguas portuguesa, inglêsa e espanhola. 2008.

Disponível em : <http://paginas.ucpel.tche.br/~loh/stoplists.zip>. Acessado em 23 de jun. de

2012.

WEBER, M. H.; Uma API para criação de aplicações de recuperação de informação.

Universidade do Vale do Itajaí. 2005.

WIVES, L. K.; Tecnologias de Descoberta de Conhecimento em Textos Aplicadas à

Inteligência Competitiva. 2002. Pag. 116, Tese - Universidade Federal do Rio Grande do Sul,

Instituto de Informática, Programa de Pós-Graduação em Computação. Local: Porto Alegre.

Data: jan. 2002.

Page 83: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

83

APÊNDICE A. ALGORITMOS DE MÉTRICAS DE

SIMILARIDADE

Page 84: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

84

Serão apresentados dois algoritmos de métricas de similaridade já abordados neste

documento, o algoritmo de Levenshtein (1966), e o algoritmo da Cosine Similarity. No

Quadro 5, é mostrado o algoritmo de Levenshtein (1966) e no Quadro 6, é mostrado o

algoritmo da Cosine Similarity.

public class LevenshteinDistance

{

public static int computeDistance(String s1, String s2)

{

s1 = s1.toLowerCase();

s2 = s2.toLowerCase();

int[] costs = new int[s2.length() + 1];

for (int i = 0; i <= s1.length(); i++)

{

int lastValue = i;

for (int j = 0; j <= s2.length(); j++)

{

if (i == 0)

costs[j] = j;

else

{

if (j > 0)

{

int newValue = costs[j - 1];

if (s1.charAt(i - 1) != s2.charAt(j - 1))

newValue = Math.min(Math.min(newValue, lastValue), costs[j])

+ 1;

costs[j - 1] = lastValue;

lastValue = newValue;

}

}

}

if (i > 0)

costs[s2.length()] = lastValue;

}

return costs[s2.length()];

}

public static void printDistance(String s1, String s2)

{

System.out.println(s1 + "-->" + s2 + ": " + computeDistance(s1, s2));

}

public static void main(String[] args)

{

printDistance("kitten", "sitting");

printDistance("rosettacode", "raisethysword");

printDistance(new StringBuilder("rosettacode").reverse().toString(),

new StringBuilder("raisethysword").reverse().toString());

for (int i = 1; i < args.length; i += 2)

printDistance(args[i - 1], args[i]);

}

}

Quadro 3. Algoritmo de Levenshtein em Java.

Fonte: ROSETTACODE (2012)

Page 85: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

85

public float getSimilarity(final String string1, final String string2) {

final ArrayList<String> str1Tokens = tokeniser.tokenizeToArrayList(string1);

final ArrayList<String> str2Tokens = tokeniser.tokenizeToArrayList(string2);

final Set<String> allTokens = new HashSet<String>();

allTokens.addAll(str1Tokens);

final int termsInString1 = allTokens.size();

final Set<String> secondStringTokens = new HashSet<String>();

secondStringTokens.addAll(str2Tokens);

final int termsInString2 = secondStringTokens.size();

//now combine the sets

allTokens.addAll(secondStringTokens);

final int commonTerms = (termsInString1 + termsInString2) - allTokens.size();

//return CosineSimilarity

return (float) (commonTerms) / (float) (Math.pow((float) termsInString1, 0.5f) *

Math.pow((float) termsInString2, 0.5f));

}

Quadro 4. Algoritmo Cosine Similarity

Fonte: SimMetrics (2006)

Page 86: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

86

APÊNDICE B. DETALHAMENTO DE CLASSES

Page 87: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

87

A. Modelagem UML

A.1 Visão Lógica (Diagrama de Classe)

A.1.1 Controle

Figura 24. Diagrama de classe – Controle.

JPAIdentificaCoAutoriaDAO

Type: public Class

Implements: CoAutoriaDAO.

Status: Proposed. Version 1.0. Phase 1.0.

Package: Controle

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Author: Luis Fernando Balsini.

Page 88: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

88

Identifica CoAutoria Attributes

Attribute Type Notes

listaProducoesDocent

ePrincipal

private :

List<Object[]>

Armazena as produções do docente principal

listaProducoesCandid

atas

Private :

List<Object[]>

Armazena as produções candidatas

AutomaticaMonitoria

Depois

private :

AutMon

Objeto para chamar métodos

AutomaticoMonitoriaDAO.

copiaProducoesCandi

datas

private :

List<Copia>

Armazena objetos produções candidatas Copia.

copiaProducoesDoce

ntes

private :

List<Copia>

Armazena objetos produções docente Copia.

fabricaDAO Private :

FabricaDAO

Objeto para acessar classes DAOs

valorsimilaridade Private :

double

Contem o valor da similaridade entre duas

produções.

Quadro 5. Definição dos atributos da classe IdentificaCoautoria.

IdentificaCoAutoria Methods

Method Type Notes

CompararCoAutori

a ();

public: void Executa módulo sapisim.

DisparaIdentificaca

oCoAutoria ();

public: void Inicia identificação de Coautoria.

JPAIdentificaCoaut

oriaDAO();

Public : Construtor da classe

getListaProducoesD

ocentePrincipal();

private :

List<Object[]

>.

Retorna lista de array de object das produções do

docente principal.

setListaProducoesD

ocentePrincipal();

private :

void

Seta na lista array de objects de produções do docente

principal retornada do banco.

getListaProducoesC

andidatas();

Private :

List<Object[]

>

Retorna lista de array de object das produções

candidatas

setListaProducoesC

andidatas();

Private :

void

Seta na lista array de object de produções candidatas

retornadas do banco.

getValorSimilaridad

e();

Private :

double

Retorna o valor final da similaridade entre duas

produções.

Set

ValorSimilaridade

Private :

Void

Seta na variável valorsimilaridade o resultado final da

coautoria entre duas produções.

Page 89: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

89

ClassificaResultado

DaSimilaridade();

Public :

boolean

Classifica a ação tomada de acordo com o limiar de

similaridade definido.

getCopiaProducoes

Docente();

Public :

List<Copia>

Retorna uma lista de produções do docente principal do

tipo copia.

setCopiaProduções

Docente():

Public :

Void

Seta na lista objeto do tipo copia de produções do

docente principal.

getCopiaProducoes

Candidatas():

Public :

List<Copia>

Retorna uma lista de produções candidatas do tipo

copia.

setCopiaProducoes

Candidatas();

Public :

void

Seta na lista objetos do tipo copia de produções

candidatas.

Quadro 6. Descrição dos métodos da classe JPAIdentificaCoautoriaDAO.

JPACommandDAO

Type: public abstract Class

Status: Proposed. Version 1.0. Phase 1.0.

Package: Controle

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPACommandDAO Attributes

Attribute Type Notes

MapeandoTipoDaPro

ducao

Public :

HashMap<String,

NormalizacaoEStopWord

sDAO>

Executa um mapeamento das classes que

implementam a interface

NormalizacaoEEstopWordsDAO.

Quadro 7. Descrição dos atributos da classe JPACommandDAO.

JPACommandDAO Methods

Method Type Notes

getObjetosClasses(

String)

public:

NormalizacaoEStop

WordsDAO

Retorna o objeto da classe especifica a ser

chamada.

JPACommandDAO public: Construtor da classe.

Quadro 8. Descrição dos métodos da classe JPACommandDAO.

.

Page 90: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

90

A 1.2 Tratador

Figura 25. Diagrama de classe – Pacote Tratador.

JPAStopWordsDAO

Type: public final Class

Status: Proposed. Version 1.0. Phase 1.0.

Package: Tratador Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Author: Luis Fernando Balsini

JPAStopWordsDAO Attributes

Attribute Type Notes

builder static :

StringBuilder

Buffer para armazenar a concatenação de

strings.

listaStopWords Static final :

String[]

Lista de palavras stopWords.

Quadro 9. Descrição dos atributos da classe JPAStopWordsDAO

Page 91: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

91

JPAStopWordsDAO Methods

Method Type Notes

JAPStopWords

DAO();

public: Construtor da classe.

getStringBuilder () static:

StringBuilder

Retorna um buffer com strings comcatenados.

SeparaFraseEmToken

s (String)

Public static

final:

String[]

Separa string passada por parâmetro em tokens.

RetiraStopWords(Stri

ng[])

Public static

final: String

Remonta frase passada por parâmetro no array de

string retirando as stopwords.

Quadro 10. Descrição dos métodos da classe JPAStopWordsDAO

JPANormalizacaoDAO

Type: public final Class

Status: Proposed. Version 1.0. Phase 1.0.

Package: Tratador

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPANormalizacaoDAO Attributes

Attribute Type Notes

listacaracteres static final :

char[][]

Matriz de caracteres a serem normalizados nos

títulos das produções.

Quadro 11. Descrição dos atributos da classe JPANormalizacaoDAO

JPANormalizacaoDAO Methods

Method Type Notes

JPANormalizacaoD

AO();

public: construtor da classe

Normalizar(String); Public static

final : String

É passado por parâmetro um texto não normalizado e

retorna um texto normalizado.

Quadro 12. Descrição dos métodos da classe JPANormalizacaoDAO

JPANormalizacaoEStopWodsTrabalhosEmEventosDAO

Type: public Class

Implements: NormalizacaoEStopWordsDAO.

Page 92: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

92

Status: Proposed. Version 1.0. Phase 1.0.

Package: Tratador

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPANormalizacaoEStopWordsTrabalhosEmEventosDAO Methods

Method Type Notes

executaNormalizacaoEStopWords(

List<.Object[]>,List<Copia>);

public : void Método executa a normalizações e retira

stopWords dos atributos das produções.

Quadro 13. Descrição dos métodos da classe

JPANormalizacaoEStopWordsTrabalhosEmEventosDAO

JPANormalizacaoEStopWodsProjetoDePesquisaDAO

Type: public Class

Implements: NormalizacaoEStopWordsDAO.

Status: Proposed. Version 1.0. Phase 1.0.

Package: Tratador

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPANormalizacaoEStopWordsProjetoDePesquisaDAO Methods

Method Type Notes

executaNormalizacaoEStopWords(

List<.Object[]>,List<Copia>);

public : void Método executa a normalizações e retira

stopWords dos atributos das produções.

Quadro 14. Descrição dos métodos da classe

JPANormalizacaoEStopWordsProjetoDePesquisaDAO

JPANormalizacaoEStopWodsLivroDAO

Type: public Class

Implements: NormalizacaoEStopWordsDAO.

Status: Proposed. Version 1.0. Phase 1.0.

Package: Tratador

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPANormalizacaoEStopWordsLivroDAO Methods

Method Type Notes

executaNormalizacaoEStopWords(

List<.Object[]>,List<Copia>);

public : void Método executa a normalizações e retira

stopWords dos atributos das produções.

Page 93: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

93

Quadro 15. Descrição dos métodos da classe JPANormalizacaoEStopWordsLivroDAO

JPANormalizacaoEStopWodsCapituloDeLivroDAO

Type: public Class

Implements: NormalizacaoEStopWordsDAO

Status: Proposed. Version 1.0. Phase 1.0.

Package: Tratador

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPANormalizacaoEStopWordsCapituloDeLivroDAO Methods

Method Type Notes

executaNormalizacaoEStopWords(

List<.Object[]>,List<Copia>);

public : void Método executa a normalizações e retira

stopWords dos atributos das produções.

Quadro 16. Descrição dos métodos da classe

JPANormalizacaoEStopWordsCapituloDeLivroDAO

JPANormalizacaoEStopWodsBancaDAO

Type: public Class

Implements: NormalizacaoEStopWordsDAO.

Status: Proposed. Version 1.0. Phase 1.0.

Package: Tratador

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPANormalizacaoEStopWordsBancaDAO Methods

Method Type Notes

executaNormalizacaoEStopWords(

List<.Object[]>,List<Copia>);

public : void Método executa a normalizações e retira

stopWords dos atributos das produções.

Quadro 17. Descrição dos métodos da classe JPANormalizacaoEStopWordsBancaDAO

JPANormalizacaoEStopWodsArtigoPublicadoDAO

Type: public Class

Implements: NormalizacaoEStopWordsDAO.

Status: Proposed. Version 1.0. Phase 1.0.

Package: Tratador

Page 94: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

94

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPANormalizacaoEStopWordsArtigoPublcadoDAO Methods

Method Type Notes

executaNormalizacaoEStopWords(

List<.Object[]>,List<Copia>);

public : void Método executa a normalizações e retira

stopWords dos atributos das produções.

Quadro 18. Descrição dos métodos da classe

JPANormalizacaoEStopWordsArtigoPublicadoDAO

A 1.3 Pacote Similaridade

Figura 26. Diagrama de classe – Pacote Similaridade.

Page 95: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

95

JPAFormulasSimilaridadeDAO

Type: public Class

Implements: FormulasSimilaridadeDAO.

Status: Proposed. Version 1.0. Phase 1.0.

Package: Similaridade

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPAFormulasSimilaridadeDAO Attributes

Attributes Type Notes

valorsimilaridade private :

double

Guarda a valor da similaridade entre duas

produções.

Quadro 19. Descrição dos atributos da classe JPAFormulasSimilaridadeDAO

JPAFormulasSimilaridadeDAO Methods

Method Type Notes

getValorSimilaridade public :

double

Retorna valor da similaridade entre duas

produções.

setValorSimilaridade Public :

Void

Seta na variável a similaridade entre duas

produções.

JPAFormulasSimilaridadeDAO Public Construtor da classe.

SimBan(String, String, String, String) double Retorna a valor da similaridade entre

duas produções do tipo participação em

banca.

SimCapL(String, String, String,

String, String, String)

Public :

double

Retorna o valor da similaridade entre

duas produções do tipo capitulo de livro

SimEven(String, String, String, String) Public :

Double

Retorna o valor da similaridade entre

duas produções do tipo trabalho em

evento.

SimL(String, String, String, String) Public :

Double

Retorna o valor da similaridade entre

duas produções do tipo livro.

SimPeriodico(String, String, String,

String)

Public :

Double

Retorna o valor da similaridade entre

duas produções do tipo artigo em

periódico.

Page 96: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

96

SimPP(String, String) Public :

Double

Retorna o valor da similaridade entre

duas produções do tipo projeto em

pesquisa.

Quadro 20. Descrição dos métodos da classe JPAFormulasSimilaridadeDAO

JPACalculoSimilaridadeDAO

Type: public Class

Implements: CalculoSimilaridadeDAO.

Status: Proposed. Version 1.0. Phase 1.0.

Package: Similaridade

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPACalculoSimilaridadeDAO Attributes

Attributes Type Notes

levenstein private :

Levenshtein

Objeto para acessar os métodos da

classes Levenshtein da biblioteca

simmetrics.

Quadro 21. Descrição dos atributos da classe JPACalculoSimilaridadeDAO

JPACalculoSimilaridadeDAO Method

Method Type Notes

getLevenshtein(); public :

Levenshtein

Metodo retorna um objeto do tipo

Levenshtein.

Quadro 22. Descrição dos métodos da classe JPACalculoSimilaridadeDAO

Page 97: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

97

A 1.4 Pacote Modelo

Figura 27. Diagrama de classe – Pacote Modelo.

Copia

Type: public Class

Status: Proposed. Version 1.0. Phase 1.0.

Package: Modelo

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

Copia Attributes

Page 98: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

98

Attributes Type Notes

ano private : int

Editora Private :

String

idDocente Private : long

idProducao Private : long

idTipoproducao Private : long

issn Private :

String

Nome Private :

String

Titulo Private :

String

Quadro 23. Descrição dos atributos da classe Copia

Copia Method

Method Type Notes

Copia Public Construtor da classe.

Copia(long,long,long,int,String,

String, String, String)

public Construtor da classe para instanciar os

objetos copia na lista copia.

getTitulo(); Public :

Stirng

setTitulo(String); Public : void

getNome(); Public :

String

setNome(String); Public : void

getIssn(); Public :

String

setIssn(String); Public : void

getAno(); Public : int

setAno(int); Public : void

getIdTipoproducao() Public : long

setIdTipoProducao(long); Public : void

getEditora(); Public :

Stirng

setEditora(String); Public : void

getidProducao(); Public : long

setidProducao(long) Public : void

getIdDocente(); Public : long

setIdDocente(long); Public : void

Quadro 24. Descrição dos métodos da classe Copia.

Page 99: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

99

.A 1.5 Acessa Banco

Figura 28. Diagrama de classe – Pacote Acessa Banco.

JPAProducaoDAO

Type: public Class

Implements : ProducaoDAO.

Status: Proposed. Version 1.0. Phase 1.0.

Package: Acessa Banco

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Author: Luis Fernando Balsini

JPAProducaoDAO Method

Method Type Notes

Page 100: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

100

listaProducoesDoDoc

enteSapiSim();

Public :

List<Producao>.

Retorna uma lista de produções do tipo produção.

listaproducoesDoMes

moTipoEAno(long,C

opia)

Public :

List<Object[]>

Retorna uma lista de array de objetos, esta função

é usada para a lista de produções candidatas.

listaProducoesMonito

radas(long);

Public :

List<Producao>

Retorna uma lista de com todas as produções

identificadas como monitoradas.

listaTodasProducoes

PorTipoProducao(lon

g,long)

Public :

List<Object[]>

Retorna uma lista de array de object com todas as

produções de um tipo de producao e que seja do

mesmo docente.

JPAProducaoDAO Public : Construtor da classe.

listarProducoesDocen

tePeloTipoProducao(

Docente,TipoProduca

o);

Public :

List<Producao>.

Param : docente [Docente - in]

Param : tipoproducao [TipoProducao – in]

Retorna uma lista de objetos de produções de um

docente.

contarProducoesDoce

nteNoTipoProducao(

Docente,TipoProduca

o);

Public : int Param : docente [Docente - in]

Param : tipoproducao [TipoProducao – in]

Retorna quantidade de produções que um docente

possui.

listarProducoesRefer

entesItemEscoreDoce

nte(Docente,Escoreit

em,Map,escoreReal);

Public :

List<Producao>;

Param : docente [Docente – in]

Param : item [EscoreItem - in]

Param : filtros [Map : in]

Param : decisão [boolean - in]

Retorna uma lista de objetos de produção do

docente, conforme os itens de escore.

listarProducoesNaoC

omprovadas(Docente

);

Public :

List<Producao>

Param : docente [Docente - in]

Retorna uma lista de objetos de produção não

comprovadas para um docente.

listarTodasProducoes

(Docente);

public:

List<Producao>;

Param : docente [Docente - in]

Retorna uma lista de objetos de produção de um

docente.

listarProducoesComp

rovadas(Docente);

Public :

List<Producao>;

Param : docente [Docente - in]

Retorna uma lista de objetos de produção

comprovadas de um docente.

contarProducoesDoD

ocenteEmVerificacao

(Docente,List<Filtros

>,List<Ordenacao>,l

ong,long);

Public : long Param : docente [Docente – in]

Param : filtros [List<Filtros> - in]

Param : ordenações [List<Ordenacao> - in]

Param : registro inicial [long - in]

Param : registro final : [long - in]

Retorna a quantidade de produções de um docente

que estejam em processo de comprovação.

listarProducoesDoDo

centeEmVerificacao(

Docente,List<Filtros>,List<Ordenacao>,l

ong,long);

Public :

List<Producao>;

param : docente [Docente – in]

param : filtros [List<Filtros> - in]

param : ordenações [List<Ordenacao> - in] param : registro inicial [long - in]

param : registro final : [long - in]

Retorna uma lista de objetos de produção de um

docente que estejam em processo de

comprovação.

Page 101: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

101

contarProducoesEmV

erificacao(List<Filtro

s>);

Public : long Param : filtros [List<Filtros> - in]

Retorna quantidade de produções em processo de

verificação de todos os docentes.

listarProducoesEmVe

rificacao(List<Filtros

>,List<Ordenacao>,l

ong,long)

Public :

List<Producao>

Param : filtros [List<Filtros> - in]

Param : ordenações [List<Ordenacao> - in]

Param : registro inicial [long - in]

Param : registro final : [long - in]

Retorna uma lista de objetos de produção que

estejam em processo de verificação de todos os

docentes.

buscarProducaoEmV

erificacaoPeloCodigo

(long);

Public :

Producao

Param : código [long - in]

Retorna um objeto de produção de qualquer

docente.

contarProducoesDoD

ocente(Docente,List<

Filtros>);

Public : long Param : docente [Docente – in]

Param : filtros [List<Filtros> - in]

Retorna a quantidade de produções que um

docente possui.

listarProducoesDoDo

cente(Docente,List<F

iltros>,List<Ordenaca

o>,long,long);

Public ;

List<Producao>;

param : docente [Docente – in]

param : filtros [List<Filtros> - in]

param : ordenações [List<Ordenacao> - in]

param : registro inicial [long - in]

param : registro final : [long - in]

Retorna uma lista de objetos produção de um

docente.

lerEx(long) Public :

List<Object[]>;

Param : código [long – in]

Retorna uma lista de objetos.

contarProducoesDoD

ocenteValidadas(Doc

ente.Usuario,List<Fil

tros>);

Public : long Param : docente [Docente – in]

Param : validador [Usuário – in]

Param : filtros [List<Filtros> - in]

Retorna a quantidade de produções do docente que

estejam validadas.

listarProducoesDoDo

centeValidadas(Doce

nte,List<Filtros>,List

<Ordenacao>,long,lo

ng);

Public :

List<Producao>;

param : docente [Docente – in]

param : filtros [List<Filtros> - in]

param : ordenações [List<Ordenacao> - in]

param : registro inicial [long - in]

param : registro final : [long - in]

Retorna uma lista de objetos produção do docente

que estejam validadas.

listarProducoesDocen

te(long);

Public :

List<Producao>;

Param : id do docente [long - in]

Retorna uma lista de objetos produção de um

docente passando somente o seu código.

listarProducoes(List<

StatusProducao>);

Public : List; Param : status [StatusProducao – in]

Retorna uma lista de objetos de produção de todos

os docentes, filtrando-os através do status passado

por parâmetro.

listarProducoesDoDo

centeComStatus(long

,List<StatusProducao

>);

Public : List; Param : id do docente [long – in]

Param : status [StatusProducao – in]

Retorna uma lista de objetos de produção de um

docente, de forma que só retorne produções com

status igual passado por parâmetro.

Page 102: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

102

buscarPeloCodigoCo

mprovante(long);

Public : List; Param : código do comprovante [long – in];

Retorna uma lista de objetos de produção, de

mesmo código do comprovante passado por

parâmetro.

Quadro 25. Descrição dos métodos da classe JPAProducaoDAO.

Producao

Type: public abstract Class

Status: Proposed. Version 1.0. Phase 1.0.

Package: Acessa Banco

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

Producao Attributes

Attribute Type Notes

serialVersionUID private static

final :

long

TITULO_DO_PERI

ODICO_OU_REVIS

TA

public final

static :

String;

È utilizado para verificar se a produção é ou não um

periódico.

id private :

Long;

ano private :

int;

Titulo private :

String;

Datainclusao Private :

Date;

status private :

StatusProducao

comprovante private :

Comprovante;

tipoProducao private :

TipoProducao;

autores private :

List<Docente>

atributos private :

List<AtributoP

roducao>;

monitoria List<Producao

>

Page 103: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

103

Quadro 26. Descrição dos atributos da classe Produção.

Producao Methods

Method Type Notes

Producao(); public: construtor da classe Produção

getMonitoria() Public :

List<Produca

o>

Retorna um lista de produções monitoradas relacionada

a uma produção.

setMonitoria(List<

Producao>)

Public : void

getAno(); public: int Retorna ano da produção.

getId(); public: long Retorna o código da produção.

getTitulo(); public: String Retorna o título da produção.

getDataInclusão(); public: Date Retorna a data de inclusão da produção no SAPI 2.0.

getStatus(); public:

Statusproduca

o

Retorna o status da produção.

getComprovante(); public :

Comprovante

Retorna objeto da classe Comprovante.

getTipoProducao(); public :

TipoProducao

Retorna objeto da classe TipoProducao.

getAtributos(); public :

List<Atributo

Producao>;

Retorna uma lista de objetos da classe Atributo

Produção.

getAutores(); public :

List<Docente

>;

Retorna uma lista de objetos da classe Docente

getAutorPrincipal()

;

public :

Docente;

Retorna dados de um Docente em objeto da classe

Docente.

setAno(int); public :

void

Param : ano [int - in]

Edita o atributo ano.

setId(int); public : void Param : id [int - in]

Edita o atributo id.

setTitulo(String); Public : void Param : titulo [String – in]

Edita o atributo titulo.

setDatainclusao(Da

te);

Public : void Param : dataInclusao [Date – in]

Edita o atributo dataInclusao.

Page 104: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

104

setStatus(StatusPro

ducao);

Public : void Param : status [StatusProducao - in]

Edita o objeto status.

setComprovante(Co

mprovante);

Public : void Param : comprovante [Comprovante – in]

Edita o objeto comprovante.

setTipoProducao(Ti

poProducao);

Public : void Param : tipoProducao [TipoProducao – in]

Edita o objeto tipoProducao.

setAtributos(List<A

tributoProducao>);

Public : void Param : atributos [AtributoProducao – in]

Edita o objeto atributos.

setAutores(List<Do

cnete>);

Public : void Param : autores [Docente – in]

Edita o objeto autores.

getReferenciaBiblio

grafica();

Public :

String;

Retorna a referência da produção.

montareferenciaaut

or(Docente);

Private :

String;

Param : autor [Docente – in]

É usada dentro do método getReferenciaBibliográfica(),

e monta a referência de acordo com um modelo padrão.

buscarAtributo(Stri

ng);

Public :

AtributoProd

ucao;

Param : nomeAtributo [String – in]

Retorna atributo dinamicamente. É usado dentro do

método ehPeriodico();

ehPeriodico(); Public :

boolean;

Verifica se produção é ou não periódico.

equals(); Public :

boolean;

Sobrescreve método equals do java.

hashCode(); Public : int Realiza um mapeamento de atributos das produções.

Quadro 27. Descrição dos métodos da classe Produção

JPAAutomaticoMonitoriaDAO

Type: public abstract Class

Implements : AutomaticoMonitoriaDAO.

Status: Proposed. Version 1.0. Phase 1.0.

Package: Acessa Banco

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

JPAAutomaticoMonitoriaDAO Methods

Method Type Notes

JPAAutomaticoMo

nitoriaDAO

Public Construtor da classe.

CriaObjetoAutMon

(Producao,

Producao, Long,

int, long);

Public :

AutMon

Constroi um objeto AutMon com os parametros

passados e retorna-o.

getDataTime(); Public :

Stirng

Retorna a data do sistema formatada.

Page 105: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

105

listaproducoesRelat

orioSapiSimAutom

aticas

Public :

List<Long>

Retorna uma lista com os IDS das produções

identificadas como automáticas.

listaProducoesSubR

elatorioSapiSim(lon

g)

Public :

List<AutMon

>

Retorna uma lista das produções coautoras relacionadas

a produções principal.

listaProducoesRelat

orioSapiSimAux

Public :

List<AutMon

>

listaProducoesRelat

orioSapiSimMonito

radas

Public :

List<Long>

Retorna lista com os ids das produções confirmadas

como sendo coautoras

listaProducoesRelat

orioSapiSimMonito

radasAux

Public :

List<AutMon

>

Quadro 28. Descrição dos métodos da classe JPAAutomaticoMonitoriaDAO.

AutMon

Type: public abstract Class

Status: Proposed. Version 1.0. Phase 1.0.

Package: Acessa Banco

Details: Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.

Autor : Luis Fernando Balsini.

AutMon Attributes

Attributes Type Notes

SerialVersionUID Private static

final : long

Id Private : long

objectProducaoAut

or

Private : long

objectproducaoCoa

utor

Private : long

datainclusaoObject Private :

String

Objetodocente Private : long

Valor Private : int

Idtipoproducao Private : long

Quadro 29. Descrição dos atributos da classe AutMon.

Page 106: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

106

AutMon Method

Method Type Notes

getId() Public : Long

setId(long) Public : void

getObjectProducao

Autor();

Public : long

setObjectProducao

Autor(long)

Public :void

getObjectProducao

CoAutor

Public : long

setobjectProducaoC

oAutor(long)

Public : void

getDataInclusaoObj

ect()

Public :

String

setDataInclusaoObj

ect(String)

Public : void

getObjectDocente()

;

Public : Long

setObjectDocente(L

ong)

Public : void

getValor(); Public : int

setValor(int) Public : void

getidTipoProducao(

)

Public : Long

setidTipoProducao(

long)

Public : void

Quadro 30 . Descrição dos métodos da classe AutMon.

Page 107: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

107

APÊNDICE C. ALGORITMO DE COMPARAÇÃO DE

PRODUÇÕES

Page 108: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

108

Será abordado neste apêndice um algoritmo em pseudo código para comparação das

produções acadêmicas com finalidade de identificar coautorias. O algoritmo também

determina qual modalidade (automáticas, monitoras ou nenhuma delas) a comparação entre

produções corrente pertencerá.

Page 109: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

109

Recupera lista de produções novas (PN)

Para cada produção (PNn)

Recupera lista de produções do mesmo tipo e ano (C)

Para cada produção candidata (Cn)

Se (Cn .tipo == periódico)

Se (Cn.ISSN != PNn.ISSN)

retorna (pega próxima Cn)

senao

Se (simPer( nPN , nC ) > 87)

retorna (Identifica Automática)

senao

Se (70 < simPer( nPN , nC ) < 86)

retorna (Identificação Monitorada)

senao

Se (simPer( nPN , nC ) < 70)

Retorna (pega próxima Cn)

Se (Cn. tipo == Evento)

Se(Cn. ISBN != PNn. ISBN)

return (pega próxima Cn)

senao

Se (simEven( nPN , nC ) > 87)

retorna (Identifica Automática)

senão

Se(70 < simEven( nPN , nC ) < 86)

retorna (Identificação Monitorada)

senao

Se (simEven ( nPN , nC ) < 70)

Retorna (pega próxima Cn)

Se(Cn. tipo == Capítulo de Livro)

Se(Cn. ISBN != PNn. ISBN)

retorna (pega próxima Cn)

senao

Se(simCapL( nPN , nC ) > 87)

retorna (Identifica Automática)

senão

Se(70 < simCapL( nPN , nC ) < 86)

retorna (Identificação Monitorada)

senao

Se (simCapL ( nPN , nC ) < 70)

Retorna (pega próxima Cn)

Quadro 31. Algoritmo da Formula de Similaridade

Page 110: Modelo de TCC para o Curso de Ciência da ... - UNIVALIsiaibib01.univali.br/pdf/Luis Fernando Balsini.pdf · observar que as técnicas de tokenização, normalização e retirada

110

Se(Cn. tipo == Livro)

Se(Cn. ISBN != PNn. ISBN)

retorna (pega próxima Cn)

senao

Se(simL( nPN , nC ) > 87)

retorna (Identificação Automática)

senão

Se(70 < simL( nPN , nC ) < 86)

retorna (Identificação Monitorada)

senao

Se (simL ( nPN , nC ) < 70)

Retorna (pega próxima Cn)

Se(Cn. tipo == Participação em Banca)

Se(simBan( nPN , nC ) > 87)

retorna (Identificação Automática)

senão

Se(70 < simBan( nPN , nC ) < 86)

retorna (Identificação Monitorada)

senao

Se (simBan ( nPN , nC ) < 70)

Retorna (pega próxima Cn)

Se(Cn. tipo == Projeto de Pesquisa)

Se(simPP( nPN , nC ) > 87)

retorna (Identificação Automática)

senão

Se(70 < simPP( nPN , nC ) < 86)

retorna (Identificação Monitorada)

senao

Se (simPP ( nPN , nC ) < 70)

Retorna (pega próxima Cn)

Fim Fim Fim

Quadro 32. Algoritmo da Formula de Similaridade