add fprob_calc.sh

This commit is contained in:
falsycat 2022-09-06 18:15:15 +09:00
parent dc67745175
commit c90ec1a935
2 changed files with 70 additions and 0 deletions

15
exp/bidx_random.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
# generate random block indices
row=$1
col=$2
max=$3
for ((y = 0; y < row; ++y)); do
n=$((RANDOM%col + 1))
for ((x = 0; x < n; ++x)); do
printf "$((RANDOM%max)) "
done
printf "\n"
done

55
exp/fprob_calc.sh Executable file
View File

@ -0,0 +1,55 @@
#!/bin/bash
# calculate fprob from indices and fprob matrix
# output: average feature's feature probability and average non-feature's feature probability
bidx=$1
fprob=$2
n=$3
script=$(cat - <<EOS
BEGIN {
type = 0; # 0: bidx, 1: fprob
nprob = 0;
nprob_max = 0;
pprob = 0;
pprob_max = 0;
}
{
if (type == 0) {
split("", feats);
for (i = 1; i <= NF; ++i) {
feats[i] = \$i;
}
type = 1;
} else if (type == 1) {
sum = 0;
for (i = 1; i <= NF; ++i) {
sum += \$i;
}
lprob = 0;
for (i = 1; i <= length(feats); ++i) {
lprob += \$(feats[i]+1);
}
nprob += sum-lprob;
pprob += lprob;
nprob_max += NF-length(feats)
pprob_max += length(feats)
type = 0;
}
}
END {
print pprob/pprob_max, nprob/nprob_max;
}
EOS
)
paste -d "\n" $bidx $fprob | head -n$((n*2)) | awk "$script"