}
sub train_model {
- my ($filename, $ratings, $covariances) = @_;
+ my ($filename, $ratings, $covariances, $aux_params) = @_;
open RATINGS, "$config::base_dir/bayeswf < $filename |"
or die "bayeswf: $!";
my @x = split;
if ($x[0] eq 'covariance') {
push @$covariances, (join("\t", @x[1..3]));
+ } elsif ($x[0] eq 'aux_param') {
+ push @$aux_params, ("nb-NO" . "\t" . $x[1] . "\t" . $x[2]);
} else {
push @$ratings, ($x[2] . "\t" . $x[0] . "\t" . $x[1]);
}
my @ratings = ();
my @covariances = ();
-train_model($tmpnam, \@ratings, \@covariances);
+my @aux_params = ();
+train_model($tmpnam, \@ratings, \@covariances, \@aux_params);
unlink($tmpnam);
-$dbh->do('TRUNCATE ratings');
-$dbh->do('COPY ratings ( id, rating, rating_stddev ) FROM STDIN');
-$dbh->pg_putcopydata(join("\n", @ratings));
-$dbh->pg_putcopyend();
-
$dbh->do('CREATE TABLE new_covariance ( player1 smallint NOT NULL, player2 smallint NOT NULL, cov float NOT NULL )');
$dbh->do('COPY new_covariance ( player1, player2, cov ) FROM STDIN');
$dbh->pg_putcopydata(join("\n", @covariances));
$dbh->do('DROP TABLE IF EXISTS covariance');
$dbh->do('ALTER TABLE new_covariance RENAME TO covariance');
+$dbh->do('TRUNCATE aux_params');
+$dbh->do('COPY aux_params ( kultur, id, value ) FROM STDIN');
+$dbh->pg_putcopydata(join("\n", @aux_params));
+$dbh->pg_putcopyend();
+
+$dbh->do('TRUNCATE ratings');
+$dbh->do('COPY ratings ( id, rating, rating_stddev ) FROM STDIN');
+$dbh->pg_putcopydata(join("\n", @ratings));
+$dbh->pg_putcopyend();
+
$dbh->commit;