Mineracao_Dados_Projeto

Propaganda
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.
Download