Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Programa de Pós-Graduação em Informática Disciplina: Mineração de Dados Professor: Marcus Sampaio Aluno: Danillo César e Silva Barbosa Nota 7,0: Relatório muito pobre! Projeto de Mineração de Dados Detecção de Cola em Provas Escolares Campina Grande Dezembro - 2007 Problema Cola de alunos em provas escolares é um assunto por demais corriqueiro, embora sumamente indesejável. Não há uma definição precisa de cola, mas supõe-se que haja cola toda vez que duas provas tenham um grau suspeito de semelhança. O tamanho da cola é variável: pode ser uma parte de uma questão, toda a questão, algumas questões, ou a prova inteira. Também, a cola pode ser grosseira (um simples copiarcolar), ou sutil (um copiar-colar parcial). O que se quer é um sistema que detecte cola, de qualquer tamanho, ou tipo. Proposta da Solução Diante da descrição do problema chegamos a conclusão que a tarefa de mineração ideal é a classificação não supervisionada. Não seria classificação supervisionada, pois não é possível identificar um atributo de classificação para o problema, assim a classificação não supervisionada se adequa ao problema diante de suas características, onde precisamos encontrar grupos de objetos (provas) onde esses objetos (provas), em um determinado grupo, sejam similares entre si. Para o problema, o interessante seria agrupar as provas, com cola, pelo tipo e pelo tamanho. Como os documentos (provas) são textos não-estruturados (descritivos) é ideal usar Mineração de Textos para realizar a classificação (agrupar). Uma cola é uma resposta muito parecida com outra resposta. Através de uma medida de similaridade é que respostas parecidas serão agrupadas em um mesmo cluster. Para resolver o problema será usado o TMSK(Text Miner Software Kit) [1], uma biblioteca que disponibiliza além de operações de préprocessamento, vários algoritmos de mineração de texto e mais especificamente o algoritmo de clusterização kmeans. Processo de Mineração De acordo com o que foi definido na etapa 1 do projeto, a tarefa de mineração para o problema de detecção de colas em prova é a classificação não supervisionada. Assim se deseja que as provas sejam agrupadas de acordo com nível de similaridade das respostas(cola). Como as questões das provas são textos descritivos precisaremos realizar mineração de texto sobre as mesmas para identificar possíveis colas. Para a tarefa de mineração de texto usaremos o software TMSK(Text Miner Software Kit). Preparação dos Dados Como os arquivos de dados não estavam prontos, a primeira tarefa seria obtê-los. Como tínhamos que fazer cinqüenta provas com quatro questões cada, uma dificuldade nessa preparação foi gerenciar as respostas para que não fossem tendenciosas, ou seja, para que o processo se tornasse o mais real possível. Para obtenção das provas foi usado o site Yahoo Respostas (http://br.answers.yahoo.com/) onde pessoas postam perguntas e outras respondem. Dessa maneira conseguimos simular as provas. As perguntas selecionadas foram as seguintes: O que causa um terremoto? O que se usa para se lapidar um diamante? Quais medidas devemos tomar para diminuirmos desperdício de água? O que podemos fazer para acabarmos com a pobreza? o Antes de passarmos os arquivos (provas) como entrada para o TMSK será necessário realizar a preparação dos dados. Preparar os dados para esse problema significa que temos tratar alguns fatores das palavras do texto como acentos, pontuação, sinonímia, cedilhas e etc. Como por exemplo, em uma questão um aluno pode ter colocado uma palavra com acento e outro aluno não e se não houvesse a preparação para tratar isso o software não fazia o que seria esperado, ou seja, detectar que é a mesma palavra. Além disso, temos que eliminar algumas palavras que são irrelevantes no texto, essas palavras são as stopwords e temos que realizar o stemming das palavras, ou seja, que substitui várias palavras por seus radicais. É necessário todo esse pré-processamento é necessário antes da etapa de classificação. Um ponto importante que se tem que definir na fase de preparação dos dados é a granularidade dos mesmos, ou seja o nível de detalhe da análise. Para o problema de detecção de colas decidimos analisar as provas em nível de questão em vez de analisar a prova inteira. Assim as provas serão agrupadas de acordo com as questões que estiverem mais similares. Transformação dos Dados Estando os dados preparados para análise, o próximo passo é transformá-los, ou seja, coloca-los em formato adequado. Como iremos usar o TMSK para a mineração, os dados (documentos) precisam está em formato XML(Extensible Markup Language) que é formato dos seus dados de entrada. Com relação ao formato dos dados (documentos) o TMSK faz algumas considerações: Cada documento é marcado com uma “tag” que o identifica e o diferencia de outro, já que vários documentos podem está em um mesmo arquivo. No nosso caso a tag <DOC> </DOC> identifica e diferencia cada questão no arquivo de entrada. Somente o texto em certas seções dos documentos é considerado para análise, ou seja, somente os textos marcados são analisados. No arquivo de entrada o texto da resposta de cada questão está entre a tag <BODY> </BODY>. Para o nosso problema, como a granularidade é em nível de questões, o conjunto de documentos de entrada corresponderá a cada questão da prova onde marcaremos o inicio e o fim da questão sendo analisada apenas o texto da sua resposta. Garimpagem Estando os dados devidamente preparados e transformados, o próximo passo é executar a mineração de texto usando o software TMSK com o algoritmo de clusterização, kmeans, que recebe como entrada o número de clusters que serão gerados e o nome do arquivo de saída em formato XML . Depois de executado o algoritmo, o arquivo de saída corresponderá a cada resposta das questões do arquivo de entrada marcada com uma “tag” que identifica o cluster que a resposta pertence. O ideal é que as respostas que sejam identificadas como cola estejam no mesmo cluster. O algoritmo foi executado para diferentes valores da quantidade de clusters (k = 10, 12, 15, 18, 20 e 25). Análise e Assimilação Analisando os arquivos de saída gerados pelo TMSK, na qual cada questão é marcada com uma “tag” que identifica o cluster a que pertence percebe-se que a execução do algoritmo kmeans com a quantidade de clusters igual a vinte se mostrou relevante, pois as questões que foram previamente copiadas parcial ou totalmente no arquivo de entrada pertencem ao mesmo cluster. Os resultados são fáceis de assimilar porque é fácil “olhar” para os arquivos e certificar se as respostas sendo colas estão no mesmo cluster. Conclusão Visto que o objetivo do problema era identificar colas em provas, a solução proposta é satisfatória, visto que os clusters gerados de cada questão mostraram que respostas muito similares se encontram em um mesmo cluster, mas isso não quer dizer que em um mesmo cluster não tenha diferentes respostas. Uma ressalva a fazer diante do que foi exposto na solução é que não foi possível identificar as colas pelo tamanho, pois o TMSK não induz uma medida de tamanho de semelhança do texto.