147 lines
3.1 KiB
PHP
Executable File
147 lines
3.1 KiB
PHP
Executable File
<?php
|
|
|
|
// Este script gera o treino pontuado e teste não pontuado a partir das notas de treino fornecidas pelo professor
|
|
|
|
// Diretorio de entrada
|
|
$diretorioentrada = "arquivospredicao/";
|
|
|
|
|
|
// Recebe argumentos de entrada
|
|
|
|
$p=var_dump($argv);
|
|
|
|
$arqnotastreino = $diretorioentrada.$argv[1]."/notastreino.csv";
|
|
|
|
if (file_exists($arqnotastreino))
|
|
{
|
|
|
|
// Carregar notas de treino (amostras pontuadas pelo professor)
|
|
|
|
$notastreino = file($arqnotastreino);
|
|
|
|
// Criar vetores com rotulos e notas de treino
|
|
|
|
$vr=array();
|
|
$vn=array();
|
|
|
|
$n = count($notastreino);
|
|
for($i=0;$i<$n;$i++)
|
|
{
|
|
$x= explode(";",$notastreino[$i]);
|
|
$vr[$i]=$x[0];
|
|
$vn[$i]=trim($x[1]);
|
|
}
|
|
|
|
$diretorioind = "indexados/".$argv[1]."/";
|
|
$diretorioclusters = $diretorioind."clusters/";
|
|
|
|
// Para cada cluster no diretorioind
|
|
|
|
$ponteiro1 = opendir($diretorioclusters);
|
|
|
|
while (($nomecluster = readdir($ponteiro1)))
|
|
{
|
|
|
|
if (($nomecluster<>".") && ($nomecluster<>"..") && ($nomecluster<>"rd"))
|
|
{
|
|
// Carregar arquivos necessarios para gerar treino pontuado e teste não pontuado
|
|
|
|
$diretorio = $diretorioclusters.$nomecluster."/";
|
|
|
|
$treino = file($diretorio."treino.csv");
|
|
$teste = file($diretorio."teste.csv");
|
|
$lteste= file($diretorio."lteste.csv");
|
|
$ltreino= file($diretorio."ltreino.csv");
|
|
|
|
$arqtreinopontuado = $diretorio."treinopontuado.csv";
|
|
$arqtestenaopontuado = $diretorio."testenaopontuado.csv";
|
|
|
|
// Abrir arquivos de saída
|
|
|
|
$f1= fopen($arqtreinopontuado,'w');
|
|
$f2= fopen($arqtestenaopontuado,'w');
|
|
|
|
// Gravar primeiras linhas de treino pontuado e teste não pontuado
|
|
|
|
fwrite($f1, "nota;".$treino[0]);
|
|
fwrite($f2, "nota;".$teste[0]);
|
|
|
|
unset($treino[0]);
|
|
$treino=array_values($treino);
|
|
unset($teste[0]);
|
|
$teste=array_values($teste);
|
|
|
|
// Gravar treino pontuado
|
|
|
|
$ntr= count($treino);
|
|
|
|
for($i=0;$i<$ntr;$i++)
|
|
{
|
|
$indice = array_search($ltreino[$i], $vr);
|
|
if ($indice>=0)
|
|
{
|
|
fwrite($f1, $vn[$indice].";".$treino[$i]);
|
|
unset($vr[$indice]);
|
|
$vr=array_values($vr);
|
|
unset($vn[$indice]);
|
|
$vn=array_values($vn);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// Gravar teste pontuado em treinopontuado e teste não pontuado em testenaopontuado
|
|
|
|
$nte= count($teste);
|
|
|
|
$nnotastreino= count($vr);
|
|
$i=0;
|
|
|
|
// Grava teste não pontuado
|
|
|
|
for($i=0;$i<$nte; $i++)
|
|
{
|
|
|
|
$indice = array_search($lteste[$i], $vr);
|
|
if ($indice>=0)
|
|
{
|
|
// Se o professor pontuou amostras a mais
|
|
fwrite($f1, $vn[$indice].";".$teste[$i]);
|
|
unset($vr[$indice]);
|
|
$vr=array_values($vr);
|
|
unset($vn[$indice]);
|
|
$vn=array_values($vn);
|
|
}
|
|
else
|
|
{
|
|
fwrite($f2, "0.0".";".$teste[$i]);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
fclose($f1);
|
|
fclose($f2);
|
|
|
|
unset($treino);
|
|
unset($teste);
|
|
unset($ltreino);
|
|
unset($lteste);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
unset($vr);
|
|
unset($vn);
|
|
|
|
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
|
|
|
|
|