blob: df547ea2862adc406d532f2259c08623e296640b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#!/bin/bash
db_file=games_anon.db
query() {
query="(size == $1) and (result != '1-0') and (result != '0-1') and (result != '0-0') and (result != '1/2-1/2')"
selct=""
for player in fwwwwibib archvenison NohatCoder nqeron ManaT rabbitboy84 applemonkeyman Tayacan AaaarghBot applemonkeyman; do
# for player in; do
selct="$selct(player_black == '$player') or (player_white == '$player') or "
done;
if [ -n "$selct" ]; then
query="$query and (${selct:0:-4})"
fi
echo "SELECT $2 FROM games WHERE $query;"
}
extract() {
size="$1"
things="$2"
if [ ! -f "data/$db_file" ]; then
wget "https://www.playtak.com/games_anon.db" -O "data/$db_file"
fi
echo Extracing games of size "$size"...
sqlite3 "data/$db_file" "$(query $size $things)" | shuf > "data/playtak-$size"
}
process() {
size=$1
num_games=$2
fn=$3
./pptdb "$size" "data/playtak-$size" > "data/check-$size"
tail -n22 "data/check-$size"
echo -ne "\tStripping overflows and illegal games... "
grep -Fvxf "data/check-$size" "data/playtak-$size" > "data/good-playtak-$size"
echo -en "Done.\n\tGenerating training data... "
./pptdb "$size" "data/good-playtak-$size" generate
echo -en "\tChoosing $num_games of $(wc -l data/training-$size.csv | cut -d\ -f1) samples... "
head -n 1 "data/training-$size.csv" > "data/shuf-$size.csv"
tail -n+2 "data/training-$size.csv" > "data/tmp"
shuf -n $num_games "data/tmp" >> "data/shuf-$size.csv"
rm data/tmp
echo -en "Done.\n\tCompressing data... "
mv "data/shuf-$size.csv" "data/$fn-$size.csv"
if [ -f "data/$fn-$size.csv.gz" ]; then
rm "data/$fn-$size.csv.gz"
fi
gzip "data/$fn-$size.csv"
echo "Done, available in data/$fn-$size.csv.gz"
}
make pptdb
for size in 5; do
echo
extract $size notation,result
process $size 200000 training
done
|