apresentacao - rorschach - uma ferramenta para deteccao de plagio

23
7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 1/23 Universidade Federal de Mato Grosso do Sul (UFMS) Faculdade de Computação Rorschach: Uma Ferramenta para Detecção de Plágio Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) 12 de dezembro de 2014

Upload: yuri-karan

Post on 09-Mar-2016

5 views

Category:

Documents


0 download

DESCRIPTION

Apresentação do meu trabalho de conclusão de curso. O código pode ser baixado na íntegra pelo link https://github.com/iruynarak/rorschach

TRANSCRIPT

Page 1: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 1/23

Universidade Federal de Mato Grosso do Sul (UFMS)

Faculdade de Computação

Rorschach: Uma Ferramenta para Detecçãode Plágio

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora)

12 de dezembro de 2014

Page 2: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 2/23

1

IntroduçãoPlágio

Plagiar é o ato de assumir autoria ou utilizar como fonte uma obraintelectual pertencente a outra pessoa.   Textos;   Músicas;  Filmes; e   Códigos-fonte.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 3: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 3/23

2

IntroduçãoFerramentas que utilizam o RKR-GST

Ferramentas que utilizam o RKR-GST

  CPD   JPlag   Marble  Plaggie (GNU GPL)   YAP3

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 4: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 4/23

3

IntroduçãoGNU GPL Versão 3

Rorschach utiliza a licença GNU GPL versão 3   Uso;  Modificação; e   Compartilhamento;

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 5: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 5/23

4

MetodologiaAlfabeto  e  letra 

  Alfabeto  - conjunto finito e não vazio de elementos.  Estes elementos são chamados de  letras .   Σ representa um alfabeto  arbitrário.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 6: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 6/23

5

MetodologiaExemplos de alfabeto 

Exemplos de alfabeto 

  Σ = {0, 1}, o alfabeto binário;   Σ = {0, 1, ..., 9}, o alfabeto numérico;   Σ = {a , b , ..., z }, o alfabeto das letras minúsculas; e  O conjunto de caracteres que compõem o código ASCII.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 7: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 7/23

6

MetodologiaPalavra 

 Sequência de letras .  Sendo uma palavra w , sobre um alfabeto Σ, temos que:

w i  é 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 Detecção de Plágio

Page 8: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 8/23

7

MetodologiaSubcadeia 

  Uma subcadeia  de  w  é uma palavra x  cujas letras  pertencem aw  e estão em x  na mesma sequência que em w .

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

= y .

Exemplos:

  metodologia

  metodologia   metodologia

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 9: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 9/23

8

MetodologiaFunção Hash 

  Função hash  - Mapeamento de informação sem tamanho fixopara uma de tamanho fixo.

 valor de hash  - o valor retornado pela função de hash .

Exemplo  Mapeamento de números inteiros para o intervalo de inteiros

[0, 99].  Função de hash f (x ) = x   mod 100.  Assim o valor de  hash  para o número 1039 seria 39.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 10: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 10/23

9

MetodologiaJanela 

Figura: Exemplo de janela.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 11: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 11/23

10

MetodologiaAlgoritmo Rolling Hash 

  Cada palavra  é associada a um número em uma base numérica

especial definida pelo tamanho do alfabeto.   Cada letra  do alfabeto  é associada a um algarismo do número.

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

i =1w i  ∗ base |w |−i 

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 12: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 12/23

11

MetodologiaAlgoritmo Rolling Hash 

Exemplo:

Índice da posição 3 2 1

Código ASCII extendido 115 111 109Caractere s o 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 Detecção de Plágio

Page 13: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 13/23

12

MetodologiaAlgoritmo Trivial e Karp-Rabin 

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

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

0 1 2 3 4 5 6 7 8 9 10 11

Text

attern

...

Figura: Buscando um padrão contendo cinco  letras  em um texto.Subcadeias  do texto de cinco  letras  são comparadas ao padrão.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 14: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 14/23

13

MetodologiaOutras definições

  Casamento

  Tile  Letra marcada  Casamento maximal  Tamanho mínimo de casamento

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 15: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 15/23

14

MetodologiaAlgoritmo Greedy-String-Tilling 

  Busca casamentos maximais  para a posterior criação de um tile .   Guloso.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 16: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 16/23

15

MetodologiaAlgoritmo Running-Karp-Rabin Greedy-String-Tilling 

  Busca casamentos maximais  para a posterior criação de um tile .  Rolling Hash.  Previsão estática.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Ab d

Page 17: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 17/23

16

AbordagemObjetivos

Objetivos do trabalho:  Detecção de plágio em textos simples utilizando RKR-GST;

 Linguagem C++;  Possibilitar fácil adaptação para detecção de plágio em

códigos-fonte;  Licença GNU GPL; e  Programa bem documentado.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Ab d

Page 18: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 18/23

17

AbordagemDecisões de Projeto

Decisões de projeto:  Classes paramétricas;  Base de tamanho 2;  Uso do Doxygen; e  Licença GNU GPL e programa bem documentado.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Ab d

Page 19: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 19/23

18

AbordagemMedida de similaridade

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

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Ab d

Page 20: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 20/23

19

AbordagemTestes realizados

Casos de teste dividos em seis grupos. Cada grupo com osseguintes arquivos:   resume.txt;

  original.txt;   reordering.txt;   redundancy.txt; e   redundancyAndReordering.txt.

Tamanho mínimo de casamento  = valor 7.Tamanho de casamento  inicialmente buscado = 10.

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

C id õ fi i

Page 21: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 21/23

20

Considerações finaisTrabalhos futuros

Extensão do Rorschach para detecção de plágio em códigos-fonte.

 Alterações na classe Reader:

Remoção de comentários Tokenização Método apropriado

 Criação da classe Token Sobrecarga de operadores

Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 22: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 22/23

21

O código-fonte, a sua documentação e os casos de teste utilizadosforam disponibilizados1 via GitHub.

1Endereço eletrônico: https://github.com/iruynarak/rorschach.Yuri Karan Benevides Tomas, Edna Ayako Hoshino (orientadora) | Rorschach: Uma Ferramenta para Detecção de Plágio

Page 23: Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

7/21/2019 Apresentacao - Rorschach - Uma Ferramenta Para Deteccao de Plagio

http://slidepdf.com/reader/full/apresentacao-rorschach-uma-ferramenta-para-deteccao-de-plagio 23/23

Perguntas?