Sei sulla pagina 1di 23

Universidade Federal de Mato Grosso do Sul (UFMS)

Faculdade de Computao

Rorschach: Uma Ferramenta para Deteco


de Plgio

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora)

12 de dezembro de 2014

Introduo
Plgio

Plagiar o ato de assumir autoria ou utilizar como fonte uma obra


intelectual pertencente a outra pessoa.
I

Textos;

Msicas;

Filmes; e

Cdigos-fonte.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Introduo
Ferramentas que utilizam o RKR-GST

Ferramentas que utilizam o RKR-GST


I

CPD

JPlag

Marble

Plaggie (GNU GPL)

YAP3

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Introduo
GNU GPL Verso 3

Rorschach utiliza a licena GNU GPL verso 3


I

Uso;

Modificao; e

Compartilhamento;

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Metodologia
Alfabeto e letra

Alfabeto - conjunto finito e no vazio de elementos.

Estes elementos so chamados de letras.

representa um alfabeto arbitrrio.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Metodologia
Exemplos de alfabeto

Exemplos de alfabeto
I

= {0, 1}, o alfabeto binrio;

= {0, 1, ..., 9}, o alfabeto numrico;

= {a, b, ..., z}, o alfabeto das letras minsculas; e

O conjunto de caracteres que compem o cdigo ASCII.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Metodologia
Palavra

I
I

Sequncia de letras.
Sendo uma palavra w, sobre um alfabeto , temos que:
I
I

wi a i-sima letra de w.
|w| o comprimento, ou tamanho, de w.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Metodologia
Subcadeia

Uma subcadeia de w uma palavra x cujas letras pertencem a


w e esto em x na mesma sequncia que em w.

x subcadeia da palavra y se z e w, subcadeias, tal que zxw


= y.

Exemplos:
I

metodologia

metodologia
metodologia

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Metodologia
Funo Hash

Funo hash - Mapeamento de informao sem tamanho fixo


para uma de tamanho fixo.

valor de hash - o valor retornado pela funo de hash.

Exemplo
I

Mapeamento de nmeros inteiros para o intervalo de inteiros


[0, 99].

Funo de hash f (x) = x mod 100.

Assim o valor de hash para o nmero 1039 seria 39.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Metodologia
Janela

Figura: Exemplo de janela.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Metodologia
Algoritmo Rolling Hash

10

Cada palavra associada a um nmero em uma base numrica


especial definida pelo tamanho do alfabeto.

Cada letra do alfabeto associada a um algarismo do nmero.

Assim, sendo w uma palavra, hash(w) =

|w|
P

wi base|w|i

i=1

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Metodologia
Algoritmo Rolling Hash

11

Exemplo:
ndice da posio
Cdigo ASCII extendido
Caractere

3
115
s

2
111
o

1
109
m

Tabela: Valores correspondentes na tabela ASCII extendida.

Valor de hash para a palavra "som"=


115 2562 + 111 2561 + 109 2560 = 7565165

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Metodologia
Algoritmo Trivial e Karp-Rabin

12

Trivial: O((|text| |pattern|) |pattern|) = O(|text| |pattern|)

Karp-Rabin: O((|text| |pattern|)


Text
0

10

11

Pattern

...
Figura: Buscando um padro contendo cinco letras em um texto.
Subcadeias do texto de cinco letras so comparadas ao padro.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Metodologia
Outras definies

Casamento

Tile

Letra marcada

Casamento maximal

Tamanho mnimo de casamento

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

13

Metodologia
Algoritmo Greedy-String-Tilling

Busca casamentos maximais para a posterior criao de um tile.

Guloso.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

14

Metodologia
Algoritmo Running-Karp-Rabin Greedy-String-Tilling

Busca casamentos maximais para a posterior criao de um tile.

Rolling Hash.

Previso esttica.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

15

Abordagem
Objetivos

Objetivos do trabalho:
I

Deteco de plgio em textos simples utilizando RKR-GST;

Linguagem C++;

Possibilitar fcil adaptao para deteco de plgio em


cdigos-fonte;

Licena GNU GPL; e

Programa bem documentado.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

16

Abordagem
Decises de Projeto

Decises de projeto:
I

Classes paramtricas;

Base de tamanho 2;

Uso do Doxygen; e

Licena GNU GPL e programa bem documentado.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

17

Abordagem
Medida de similaridade

similaridade(a, b) =
(2 numberOfTokensTiled)/(length(a) + length(b))

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

18

Abordagem
Testes realizados

Casos de teste dividos em seis grupos. Cada grupo com os


seguintes arquivos:
I

resume.txt;

original.txt;

reordering.txt;

redundancy.txt; e

redundancyAndReordering.txt.

Tamanho mnimo de casamento = valor 7.


Tamanho de casamento inicialmente buscado = 10.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

19

Consideraes finais
Trabalhos futuros

Extenso do Rorschach para deteco de plgio em cdigos-fonte.


I

Alteraes na classe Reader:


I
I
I

Remoo de comentrios
Tokenizao
Mtodo apropriado

Criao da classe Token


I

Sobrecarga de operadores

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

20

21

O cdigo-fonte, a sua documentao e os casos de teste utilizados


foram disponibilizados1 via GitHub.

1 Endereo

eletrnico: https://github.com/iruynarak/rorschach.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Deteco de Plgio

Perguntas?

Potrebbero piacerti anche