Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em...

56
An´ alise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribui¸ ao de Autoria de C´ odigo Fonte em Cursos de Programa¸c˜ ao Juliane dos Santos Silva 1 Prof. Dr. Sergio Cleger Tamayo 1 Prof. MSc. M´ arcio Palheta Piedade 2 Engenharia de Computa¸c˜ ao 1 Universidade do Estado do Amazonas (UEA) 2 Universidade Federal do Amazonas (UFAM) 16 de junho de 2016

Transcript of Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em...

Page 1: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

Analise dos ModelosSCAP, Vetorial e Okapi BM25 para

Atribuicao de Autoria de Codigo Fonteem Cursos de Programacao

Juliane dos Santos Silva1

Prof. Dr. Sergio Cleger Tamayo1

Prof. MSc. Marcio Palheta Piedade2

Engenharia de Computacao1Universidade do Estado do Amazonas (UEA)2Universidade Federal do Amazonas (UFAM)

16 de junho de 2016

Page 2: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

1 IntroducaoQuestoes de pesquisaObjetivo geralObjetivos especıficos

2 Fundamentos

3 Experimentos

4 Resultados

5 Conclusao

6 Publicacao referente a este trabalho

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 3: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

Quem e o autor?

“Com grandes poderes vem grandes responsabilidades...”

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 4: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

Quem e o autor?

Atribuir autoria e dizer quem e o autor de uma obra,considerando uma base conhecida de obras e seus autores.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 5: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

Quem e o autor?

Atribuir autoria e dizer quem e o autor de uma obra,considerando uma base conhecida de obras e seus autores.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 6: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

Quem e o autor do codigo fonte?

Atribuir autoria prum codigo fonte e dizer quem e o autor deum codigo, considerando uma base de codigos e seus autores.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 7: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

Um detalhe: codigos fonte tem umas particularidades

Regras de sintaxe;

Reuso de trechos de codigos entre programas;

Funcoes de indentacao e autoformatacao.

Entao,

como dizer que um codigo foi feito por tal pessoa?

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 8: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

Um detalhe: codigos fonte tem umas particularidades

Regras de sintaxe;

Reuso de trechos de codigos entre programas;

Funcoes de indentacao e autoformatacao.

Entao,

como dizer que um codigo foi feito por tal pessoa?

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 9: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

Como dizer que um codigo foi feito por tal pessoa?

Por RI, redes neurais, aprendizagem de maquina,...

Uma das abordagens mais eficazes atualmente e a SourceCode Author Profile (SCAP), proposta por Frantzeskou;

Um modelo focado em ambientes academicos e proposto porPalheta.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 10: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

SCAP e uma solucao, so que...

A abordagem SCAP nao foi analisada para...

Pequenas colecoesde codigos

Mesmo grupo detarefas

Diferentes grausde maturidade

Caracterısticas recorrentes de bases academicas.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 11: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

SCAP e uma solucao, so que...

A abordagem SCAP nao foi analisada para...

Pequenas colecoesde codigos

Mesmo grupo detarefas

Diferentes grausde maturidade

Caracterısticas recorrentes de bases academicas.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 12: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

SCAP e uma solucao, so que...

A abordagem SCAP nao foi analisada para...

Pequenas colecoesde codigos

Mesmo grupo detarefas

Diferentes grausde maturidade

Caracterısticas recorrentes de bases academicas.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 13: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

Questoes de pesquisa

Qual o desempenho da abordagem SCAP quando aplicada abases academicas?

Qual o desempenho dos modelos classicos de RI (vetorial,Okapi BM25) nessa situacao?

Quando o cenario academico e considerado, o SCAPcontinua sendo o mais eficiente?

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 14: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

Objetivo geral

Analisar e comparar o desempenhodos modelos SCAP, vetorial e Okapi BM25

em relacao a atribuicao de autoria em bases academicas.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 15: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Questoes de pesquisaObjetivo geralObjetivos especıficos

Objetivos especıficos

Implementar tres maquinas de busca, utilizando os modelosSCAP, vetorial e Okapi BM25 em conjunto com a tecnicade n-gramas de caracteres consecutivos;

Variar os parametros dos modelos para identificar quandoeles melhor desempenham;

Analisar a acuracia dos modelos com bases academicas.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 16: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Analise dos ModelosSCAP, Vetorial e Okapi BM25 para

Atribuicao de Autoria de Codigo Fonteem Cursos de Programacao

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 17: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Um parenteses: n-gramas

Exemplo: a palavra VIDA2-gramas do exemplo (n = 2): VI, ID, DA.

N-grama e uma sequencia de n-caracteres consecutivos, quefazem parte de uma string maior.Onde n indica o tamanho da substring gerada.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 18: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Mas como atribuir autoria a um codigo fonte?

SCAP, vetorial e Okapi BM25 trabalham com Recuperacao deInformacao (RI).

RI lida com a representacao, a organizacao e o acesso a itens deinformacao.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 19: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Recuperacao de Informacao - Indexacao

RI lida com a representacao, a organizacao e o acesso a itens.

Atribuir autoria e dizer quem e o autor de uma obra,considerando uma base conhecida de obras.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 20: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Recuperacao de Informacao - Indexacao

RI lida com a representacao, a organizacao e o acesso a itens.

Atribuir autoria e dizer quem e o autor de uma obra,considerando uma base conhecida de obras.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 21: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Recuperacao de Informacao - Ranqueamento

RI lida com a representacao, a organizacao e o acesso a itens.Dada uma obra, atribuir autoria e dizer quem e o autor dessa obra.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 22: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Recuperacao de Informacao - Indexacao de codigo

RI lida com a representacao, a organizacao e o acesso a itens.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 23: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Recuperacao de Informacao - Ranqueamento de codigo

RI lida com a representacao, a organizacao e o acesso a itens.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 24: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Concatena os codigos por autor;

Exemplo de codigos da autora ”Juliane”...

Codigo 1: public void

Codigo 2: vo\nCodigos concatenados: public void vo\n

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 25: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Concatena os codigos por autor;

Exemplo de codigos da autora ”Juliane”...

Codigo 1: public void

Codigo 2: vo\nCodigos concatenados: public void vo\n

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 26: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Concatena os codigos por autor;

Exemplo de codigos da autora ”Juliane”...

Codigo 1: public void

Codigo 2: vo\n

Codigos concatenados: public void vo\n

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 27: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Concatena os codigos por autor;

Exemplo de codigos da autora ”Juliane”...

Codigo 1: public void

Codigo 2: vo\nCodigos concatenados: public void vo\n

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 28: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Extrai todos os n-gramas a nıvel de caracter, incluindoespaco, \t, \n;

Considerando n = 2...

Codigos concatenados: public void vo\n2-gramas do codigo: pu, ub, bl, li, ic, c , v, vo, oi, id, d , v, vo, o\n

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 29: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Extrai todos os n-gramas a nıvel de caracter, incluindoespaco, \t, \n;

Considerando n = 2...

Codigos concatenados: public void vo\n

2-gramas do codigo: pu, ub, bl, li, ic, c , v, vo, oi, id, d , v, vo, o\n

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 30: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Extrai todos os n-gramas a nıvel de caracter, incluindoespaco, \t, \n;

Considerando n = 2...

Codigos concatenados: public void vo\n2-gramas do codigo: pu, ub, bl, li, ic, c , v, vo, oi, id, d , v, vo, o\n

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 31: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Ordena decrescentemente os n-gramas por frequencia;

2-gramas do codigo: pu, ub, bl, li, ic, c , v, vo, oi, id, d , v, vo, o\n,Por frequencia: pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1, v: 2, vo: 2, oi: 1,

id: 1, d : 1, o\n: 1Decrescentemente: v: 2, vo: 2, pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1,

oi: 1, id: 1, d : 1, o\n: 1

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 32: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Ordena decrescentemente os n-gramas por frequencia;

2-gramas do codigo: pu, ub, bl, li, ic, c , v, vo, oi, id, d , v, vo, o\n,

Por frequencia: pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1, v: 2, vo: 2, oi: 1,

id: 1, d : 1, o\n: 1Decrescentemente: v: 2, vo: 2, pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1,

oi: 1, id: 1, d : 1, o\n: 1

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 33: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Ordena decrescentemente os n-gramas por frequencia;

2-gramas do codigo: pu, ub, bl, li, ic, c , v, vo, oi, id, d , v, vo, o\n,Por frequencia: pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1, v: 2, vo: 2, oi: 1,

id: 1, d : 1, o\n: 1

Decrescentemente: v: 2, vo: 2, pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1,

oi: 1, id: 1, d : 1, o\n: 1

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 34: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Ordena decrescentemente os n-gramas por frequencia;

2-gramas do codigo: pu, ub, bl, li, ic, c , v, vo, oi, id, d , v, vo, o\n,Por frequencia: pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1, v: 2, vo: 2, oi: 1,

id: 1, d : 1, o\n: 1Decrescentemente: v: 2, vo: 2, pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1,

oi: 1, id: 1, d : 1, o\n: 1

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 35: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Mantem os L n-gramas.

Considerando L = 3...

Decrescentemente: v: 2, vo: 2, pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1,

oi: 1, id: 1, d : 1, o\n: 13 2-gramas do codigo: v: 2, vo: 2, pu: 1

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 36: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Mantem os L n-gramas.

Considerando L = 3...

Decrescentemente: v: 2, vo: 2, pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1,

oi: 1, id: 1, d : 1, o\n: 1

3 2-gramas do codigo: v: 2, vo: 2, pu: 1

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 37: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Extracao de caracterısticas

Mantem os L n-gramas.

Considerando L = 3...

Decrescentemente: v: 2, vo: 2, pu: 1, ub: 1, bl: 1, li: 1, ic: 1, c : 1,

oi: 1, id: 1, d : 1, o\n: 13 2-gramas do codigo: v: 2, vo: 2, pu: 1

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 38: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Simplified Profile (SP)

3 2-gramas do codigo: v: 2, vo: 2, pu: 1

Esse L n-gramas e o Simplified Profile (SP) do autor.Usado no SCAP e nos demais modelos desta pesquisa.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 39: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Simplified Profile (SP)

3 2-gramas do codigo: v: 2, vo: 2, pu: 1

Esse L n-gramas e o Simplified Profile (SP) do autor.Usado no SCAP e nos demais modelos desta pesquisa.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 40: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Ranqueamento

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 41: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

SCAP - Ranqueamento

Simplified Profile Intersection (SPI)SPI = SPA ∩ SPP

SPA e o perfil de um autor;

SPP e o perfil de uma consulta.

O autor classificado e o que alcanca o maior numero deinterseccoes com a consulta.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 42: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Vetorial - Ranqueamento

Cada termo possui um peso em relacao a um documento;

Cada documento e representado como um vetor de termos;

Vetores num espaco vetorial n-dimensional.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 43: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Vetorial - Ranqueamento

A distancia vetorial e usada como medida de similaridade.O cosseno do angulo entre o vetor de um autor e o da consulta.

sim(dj , q) =~dj • ~q|~dj | × |~q|

(1)

O numerador representa o produto interno dos dois vetores;

O denominador representa o produto da norma dos doisvetores.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 44: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Okapi BM25 - Ranqueamento

sim(dj , q) =n∑

i=1

IDF (qi ) ·tf (qi , d) · (k1 + 1)

tf (qi , d) + k1 ·(

(1− b) + b · |d ||davg |

)(2)

IDF (qi ) representa a raridade do termo na colecao;

tf (qi , d) representa a importancia do termo no documento;

Fatores de suavizacao do tamanho do documento.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 45: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Colecoes de codigos testadas

INICIANTE 1 (944)Local/ED

Disciplina obrigatoria;

Alunos matriculados;

Certo grau de certezade autoria.

INICIANTE 2 (239)USP/ED

Idem INICIANTE 1;

.h passado pelo prof.;

Codigos muito bemcomentados.

AVANCADA (270)USP/Maratona

Treinamento;

Alunos voluntarios;

Alto grau de certezade autoria.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 46: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Metodo dos experimentos

1 Extraımos as caracterısticas, variando os valores de n e L;

n 6, 10, 14L infinito, omitindo n-gramas com frequencia = 1

2 Aplicacao do modelo da vez (SCAP, vetorial, BM25);

3 Cada documento da colecao foi usado como consulta;

4 Documento-consulta foi removido da colecao.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 47: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Avaliacao dos resultados

Dada uma consulta q, o autor do codigo no topo do ranque derespostas e o autor de q.

Acur acia = Numero de acertosNumero de consultas

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 48: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Resultados - INICIANTE 1

Os tres modelos acertaram metade dos autores da colecao e erraram a outra metade.O SCAP com n = 10 apresentou a melhor acuracia; e o BM25 com n = 14, a menor.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 49: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Resultados - INICIANTE 2

O SCAP apresentou os menores resultados dos experimentos.O vetorial com n = 10 apresentou o melhor resultado.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 50: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Resultados - AVANCADA

O SCAP apresentou resultados equivalentes aos alcancados nos experimentos deFrantzeskou et al.; maior com n = 10.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 51: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Comparacao entre os modelos propostos

E mais difıcil atribuir autoria para colecao INICIANTE.A colecao AVANCADA apresentou bons resultados quando aplicada aos tres metodos.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 52: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Comparacao entre os modelos propostos

O SCAP produziu os melhores resultados para a colecao INICIANTE 1 e AVANCADA.Os melhores resultados estavam associados a n = 10.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 53: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Conclusao

Qual o desempenho dos modelos SCAP, vetorial e OkapiBM25 quando aplicada a bases academicas?

As colecoes de programas de alunos iniciantes representamum problema mais difıcil de resolver.

A colecao de alunos avancados produziu bons resultadosquando aplicada aos tres metodos.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 54: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Conclusao

Quando o cenario academico e considerado, o SCAPcontinua sendo o mais eficiente?

O SCAP produziu o melhor resultado para as colecoesINICIANTE 1 e AVANCADA, 53,7% e 87,8% de acuracia,respectivamente.

Quanto ao tamanho n do n-gramas, os melhores resultadosestavam associados a n = 10.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 55: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

IntroducaoFundamentosExperimentos

ResultadosConclusao

Publicacao referente a este trabalho

Artigo

SANTOS SILVA, J.; CLEGER TAMAYO, S.; PALHETA, M.;Analise da Abordagem SCAP para Atribuicao de Autoria de CodigoFonte em Cursos de Programacao. Anais do Encontro Regionalde Computacao e Sistemas de Informacao - ENCOSIS 2016 -ISSN: 2238-5096, paginas 25-33.

Juliane Silva Analise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuicao de Autoria de Codigo Fonte em Cursos de Programacao

Page 56: Análise dos Modelos SCAP, Vetorial e Okapi BM25 para Atribuição de Autoria de Código Fonte em Cursos de Programação

Analise dos ModelosSCAP, Vetorial e Okapi BM25 para

Atribuicao de Autoria de Codigo Fonteem Cursos de Programacao

Juliane dos Santos Silva1

Prof. Dr. Sergio Cleger Tamayo1

Prof. MSc. Marcio Palheta Piedade2

Engenharia de Computacao1Universidade do Estado do Amazonas (UEA)2Universidade Federal do Amazonas (UFAM)

16 de junho de 2016