pcodigo2web/workspace/avaliador/gerarnotastreinoteste.php

132 lines
2.1 KiB
PHP
Executable File

<?php
// Este script gera as notas de treino e de teste a partir do arquivo notastodas.csv
// Diretorios de entradas
$diretorioentrada = "arquivospredicao/";
$diretorioind = "indexados/";
$ponteiro1 = opendir($diretorioentrada);
// Para cada subdiretorio do diretorio de entrada
while (($nomequestao = readdir($ponteiro1)))
{
if (($nomequestao<>".") && ($nomequestao<>".."))
{
$diretorio = $diretorioentrada.$nomequestao."/";
// Arquivo com todas as notas
$lnotas= $diretorio."lnotas.csv";
$notas=$diretorio."notastodas.csv";
// Arquivos com rotulos de treino e de teste
$rotulostreino=$diretorioind.$nomequestao."/"."ltreino.csv";
$rotulosteste=$diretorioind.$nomequestao."/"."lteste.csv";
if (file_exists($notas))
{
// Arquivos de saída
$arq1=$diretorio."notastreino.csv";
$arq2=$diretorio."notasteste.csv";
$f1= fopen($arq1,'w');
$f2= fopen($arq2,'w');
// Carrega arquivos com notas, com rotulos de treino e de teste
$arqrotulostreino = file($rotulostreino);
$arqrotulosteste = file($rotulosteste);
$arqrotulosnotas= file($lnotas);
$arqnotas=file($notas);
// Separa colunas de ltreino e de lteste
$ctr = count($arqrotulostreino);
$cte = count($arqrotulosteste);
$vrtr= array();
for($i=0;$i<$ctr;$i++)
{
$l = explode(";", $arqrotulostreino[$i]);
$vrtr[$i] = $l[0]; // Extrai só o rótulo
unset($l);
}
$vrte= array();
for($i=0;$i<$cte;$i++)
{
$l = explode(";", $arqrotulosteste[$i]);
$vrte[$i] = $l[0]; // Extrai só o rótulo
unset($l);
}
// Para cada arquivo de treino
foreach($vrtr as $rotulo)
{
$p= array_search($rotulo,$vrtr);
if ($p>=0)
{
$linha = trim($rotulo);
$valornota=$arqnotas[$p];
$linha = $linha.";".$valornota;
fwrite($f1,$linha);
}
}
// Para cada arquivo de teste
foreach($vrte as $rotulo)
{
$p= array_search($rotulo,$vrte);
if ($p>=0)
{
$linha = trim($rotulo);
$valornota=$arqnotas[$p];
$linha = $linha.";".$valornota;
fwrite($f2,$linha);
}
}
unset($arqrotulostreino);
unset($arqrotulosteste);
unset($arqrotulosnotas);
unset($vrtr);
unset($vrte);
unset($arqnotas);
fclose($f1);
fclose($f2);
}
}
}
?>