143 lines
4.8 KiB
PHP
Executable File
143 lines
4.8 KiB
PHP
Executable File
<?php
|
|
// Este script gera conjunto de treino pontuado e teste não pontuado para cada cluster
|
|
// Receber nome da questao
|
|
|
|
$questao = trim($argv[1]);
|
|
|
|
// Diretórios de entrada
|
|
|
|
$diretorioclusters= "indexados/".$questao."/clusters/";
|
|
$diretorionotas = "arquivospredicao/".$questao."/clusters/";
|
|
$diretoriosaida = $diretorionotas;
|
|
|
|
// Para cada cluster
|
|
|
|
$ponteiro2 = opendir($diretorioclusters);
|
|
|
|
|
|
// Para cada subdiretorio do diretorio clusters
|
|
|
|
while (($nomecluster = readdir($ponteiro2)))
|
|
{
|
|
|
|
if (($nomecluster<>".") && ($nomecluster<>"..") && ($nomecluster<>"rd"))
|
|
{
|
|
// Carregar arquivos de treino e teste de cada cluster
|
|
|
|
$cl = trim($nomecluster);
|
|
$altreino= $diretorioclusters.$cl."/ltreino.csv";
|
|
$alteste= $diretorioclusters.$cl."/lteste.csv";
|
|
$atreino=$diretorioclusters.$cl."/treino.csv";
|
|
$ateste = $diretorioclusters.$cl."/teste.csv";
|
|
$ltreino= file($altreino);
|
|
$lteste= file($alteste);
|
|
$treino= file($atreino);
|
|
$teste= file($ateste);
|
|
|
|
$tamtreino=count($ltreino);
|
|
for($i=0;$i<$tamtreino;$i++)
|
|
{
|
|
$ltreino[$i]=trim($ltreino[$i]);
|
|
}
|
|
|
|
$tamteste=count($lteste);
|
|
|
|
for($i=0;$i<$tamteste;$i++)
|
|
{
|
|
$lteste[$i]=trim($lteste[$i]);
|
|
}
|
|
// Carregar arquivo com notas
|
|
|
|
$arqnotas = $diretorionotas."notastreino-".$cl.".csv";
|
|
$notas = file($arqnotas);
|
|
|
|
|
|
// Abrir arquivo de treino pontuado, de teste não pontuado e do modelo
|
|
|
|
$nomeatp= $diretoriosaida."treinopontuado-".$cl.".csv";
|
|
$nomeatnp= $diretoriosaida."testenaopontuado-".$cl.".csv";
|
|
$arqmodelo= $diretoriosaida."modelorlm-".$cl.".txt";
|
|
|
|
// Gravar primeira linha no treino, teste e no modelo de regressao
|
|
|
|
$primeiralinha= "nota;".$treino[0];
|
|
//$somavariaveis= str_replace(";", "+", $treino[0]);
|
|
//$modelorl = "nota ~ ".$somavariaveis;
|
|
unset($treino[0]);
|
|
$treino=array_values($treino);
|
|
unset($teste[0]);
|
|
$teste=array_values($teste);
|
|
|
|
|
|
$fatp = fopen($nomeatp,'w');
|
|
$fatnp = fopen($nomeatnp,'w');
|
|
$fm = fopen($arqmodelo,'w');
|
|
|
|
fwrite($fatp, $primeiralinha);
|
|
fwrite($fatnp,$primeiralinha);
|
|
fwrite($fm, $primeiralinha);
|
|
|
|
// Gravar treino pontuado
|
|
$tamnt=count($notas);
|
|
for($i=0;$i<$tamnt;$i++)
|
|
{
|
|
$linha = explode(";",$notas[$i]);
|
|
$vr = $linha[0];
|
|
$vn = trim($linha[1]);
|
|
unset($linha);
|
|
$indice = array_search($vr,$ltreino);
|
|
|
|
|
|
if ($indice>=0)
|
|
{
|
|
$linhamodificada= str_replace(" ", ";", $treino[$indice]);
|
|
fwrite($fatp, $vn.";".$linhamodificada);
|
|
}
|
|
else
|
|
{
|
|
$indice = array_search($vr,$lteste);
|
|
|
|
if ($indice>=0)
|
|
{
|
|
$testemodificado= str_replace(" ",";", $teste[$indice]);
|
|
fwrite($fatp, $vn.";".$testemodificado);
|
|
unset($teste[$indice]);
|
|
$teste=array_values($teste);
|
|
unset($lteste[$indice]);
|
|
$lteste=array_values($lteste);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
// Grava teste não pontuado
|
|
$tamte=count($teste);
|
|
|
|
for($i=0;$i<$tamte;$i++)
|
|
{
|
|
$testemodificado= str_replace(" ",";", $teste[$i]);
|
|
fwrite($fatnp,"0.0;".$testemodificado);
|
|
}
|
|
|
|
fclose($fatp);
|
|
fclose($fatnp);
|
|
fclose($fm);
|
|
|
|
unset($ltreino);
|
|
unset($treino);
|
|
unset($lteste);
|
|
unset($teste);
|
|
unset($notas);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
?>
|