add() публичный Метод

public add ( $element )
Пример #1
0
 public function testComputeSimilarity2()
 {
     $instance = new KNNModelBuilder(null, new CosineSimilarity());
     $source = new ObjectSet(Rating::class);
     $destination = new ObjectSet(Rating::class);
     $node1 = new FakeNode(1);
     $node2 = new FakeNode(2);
     $node3 = new FakeNode(3);
     $node4 = new FakeNode(4);
     $node5 = new FakeNode(5);
     $source->add(new Rating(1, $node1->identity()));
     $source->add(new Rating(3, $node4->identity()));
     $destination->add(new Rating(1, $node2->identity()));
     $destination->add(new Rating(2, $node4->identity()));
     $destination->add(new Rating(5, $node5->identity()));
     $similarity = $instance->computeSimilarity($source, $destination);
     $this->assertTrue($similarity >= 0.34641016 && $similarity <= 0.346410161514);
 }
Пример #2
0
$stopwatch->start("e");
$result = $driver->run($qA);
$e = $stopwatch->stop("e");
echo $e->getDuration() . PHP_EOL;
$stopwatch->start("simil");
$pairs = [];
$crs = array_chunk($result->records(), 100);
foreach ($result->records() as $record) {
    $source = new ObjectSet(Rating::class);
    $m = $record->value("m");
    foreach ($record->value("ratings") as $rating) {
        $source->add(new Rating($rating['rating'], $rating['user']));
    }
    foreach ($crs as $cr) {
        foreach ($cr as $record2) {
            $m2 = $record2->value("m");
            $k = $m + $m2;
            if (!array_key_exists($k, $pairs) && $record2->value("m") !== $record->value("m")) {
                $destination = new ObjectSet(Rating::class);
                foreach ($record2->value("ratings") as $rating2) {
                    $destination->add(new Rating($rating2['rating'], $rating2['user']));
                }
                $simil = $knn->computeSimilarity($source, $destination);
                $pairs[$k] = ['source' => $record->value("m"), 'desc' => $record2->value("m"), 'similarity' => $simil];
                //echo $simil . PHP_EOL;
            }
        }
    }
}
$e2 = $stopwatch->stop("simil");
echo $e2->getDuration() . PHP_EOL;