apresentacao - rorschach - uma ferramenta para deteccao de plagio
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/rorschachTRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?