コード例 #1
0
ファイル: DetectFile.php プロジェクト: hoge1e3/jslesson
#print $class;
$vec = $logD->rel("{$class}-vector.json");
if (!$vec->exists()) {
    ?>
Run <a href="a.php?MkCluster">MkCluster</a><?php 
    return;
}
$vecs = $vec->obj();
$cluster = new VecCluster($vecs);
$count = 0;
foreach ($files as $file) {
    if ($file->startsWith($class) && $file->endsWith("-data.log")) {
        $data = array_map(function ($line) {
            global $count, $cluster;
            $e = json2array($line);
            $code = LogUtil::detectProgram($e);
            $vec = VecUtil::mkvec($code);
            $a = $cluster->nearest($vec);
            $e["nearest"] = $a[0];
            $e["dist"] = $a[1];
            /*if (isset($e["code"])) {
                  $code=$e["code"];
                  if (is_array($code)) {
                      $e["nearest"]=array();
                      $e["dist"]=array();
                      foreach ($code as $k=>$c) {
                          $v=VecUtil::mkvec($c);
                          $a=$cluster->nearest($v);
                          $e["nearest"][$k]=$a[0];
                          $e["dist"][$k]=$a[1];
                      }
コード例 #2
0
ファイル: MkCluster.php プロジェクト: hoge1e3/jslesson
require_once __DIR__ . "/../auth.php";
$class = Auth::curClass();
$get = new PQuery($_GET);
$k = $get->attrDef("k", 20);
if ($get->attrDef("state", 0) == 0) {
    //$vecs=array();
    $filesLimit = $get->attrDef("filesLimit", 1000000000);
    $logDir = LogUtil::getLogDir();
    $logFiles = LogUtil::getLogFiles();
    $cntmax = count($logFiles);
    $cnt = 0;
    $fp = $logDir->rel("{$class}-allvec.txt")->openWrite();
    foreach ($logFiles as $logFile) {
        showProgress("Process {$cnt}/{$cntmax}");
        foreach (LogUtil::readLog($logFile) as $i => $log) {
            $prog = LogUtil::detectProgram($log);
            $vec = VecUtil::mkvec2($prog);
            //$vec->logFile=$logFile;
            //$vec->index=$i;
            //$vecs[]=$vec;
            fwrite($fp, json_encode($vec->ary) . "\n");
        }
        if ($cnt++ > $filesLimit) {
            break;
        }
    }
    fclose($fp);
    ?>
    <script>location.href="a.php?MkCluster&state=1&k=<?php 
    echo $k;
    ?>