Files
nlnieuws/collect.sh
2026-03-26 13:17:51 +01:00

93 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
set -e
unset CDPATH
PATH=/net/corpora/nlnieuws/bin:/net/aps/bin:$PATH
export TZ=Europe/Amsterdam
if [ "$1" = "" ]
then
ds=`ISOWeek -7`
else
case "$1" in
2[0-9][0-9][0-9]-[0-5][0-9])
ds=$1
;;
*)
echo INVALID
exit 1
;;
esac
fi
cd /net/corpora/nlnieuws/data
for i in 1 4
do
files=$(find .. $(week2files $ds $i))
alto \
'fp://node[((@cat="mwu" and node[@pt="spec"]) or (@pt and @*="eigen" and not(@rel="mwp"))) and not(@his="normal") and not(@his_1="decap" or @his_1="0")]' \
tt:%w $files | sort | uniq -c | grep -v '^ *1 ' | sed -e 's/\([0-9]\) */\1\t/' | \
sort -f -k 2 | sort -n -r -k 1,1 -s > nieuw-namen-$ds-$i
top20 nieuw-namen-$ds-$i
# score nieuw-namen-$ds-$i > nieuw-namen-$ds-$i.score
alto \
'fp://node[@his and not(@rel="mwp" or @cat="mwu") and not(@his="normal" or @his="name" or @his="prefix_name" or @his_1="decap" or @
his_1="0" or @his="skip" or @his="robust_skip" or @his="w_dia" or @his="wo_dia" or @his="within_word_conjunct")]' \
tt:%w $files | sort | uniq -c | grep -v '^ *1 ' | sed -e 's/\([0-9]\) */\1\t/' | \
sort -f -k 2 | sort -n -r -k 1,1 -s > nieuw-woorden-$ds-$i
top20 nieuw-woorden-$ds-$i
# score nieuw-woorden-$ds-$i > nieuw-woorden-$ds-$i.score
alto \
'fp://node[@his and not(@rel="mwp" or @cat="mwu") and not(@his="normal" or @his="name" or @his="prefix_name" or @his_1="decap" or @
his_1="0" or @his="skip" or @his="robust_skip" or @his="w_dia" or @his="wo_dia" or @his="within_word_conjunct")]' \
'tt:%w\t%l\t%P' $files | sort | uniq -c | grep -v '^ *1 ' | sed -e 's/\([0-9]\) */\1\t/' | \
sort -f -k 2 | sort -n -r -k 1,1 -s > nieuw-extra-$ds-$i
top20 nieuw-extra-$ds-$i
# score nieuw-extra-$ds-$i > nieuw-extra-$ds-$i.score
alto \
'fp://node[(@neclass="LOC" and not(@rel="mwp")) or (@cat="mwu" and node[@pt="spec" and @neclass="LOC"])]' \
tt:%l $files | sort | uniq -c | grep -v '^ *1 ' | sed -e 's/\([0-9]\) */\1\t/' | \
sort -f -k 2 | sort -n -r -k 1,1 -s > locaties-$ds-$i
# score locaties-$ds-$i > locaties-$ds-$i.score
alto \
'fp://node[(@neclass="PER" and not(@rel="mwp")) or (@cat="mwu" and node[@pt="spec" and @neclass="PER"])]' \
tt:%l $files | sort | uniq -c | grep -v '^ *1 ' | sed -e 's/\([0-9]\) */\1\t/' | \
sort -f -k 2 | sort -n -r -k 1,1 -s > personen-$ds-$i
# score personen-$ds-$i > personen-$ds-$i.score
alto \
'fp://node[(@neclass="ORG" and not(@rel="mwp")) or (@cat="mwu" and node[@pt="spec" and @neclass="ORG"])]' \
tt:%l $files | sort | uniq -c | grep -v '^ *1 ' | sed -e 's/\([0-9]\) */\1\t/' | \
sort -f -k 2 | sort -n -r -k 1,1 -s > organisaties-$ds-$i
# score organisaties-$ds-$i > organisaties-$ds-$i.score
alto \
'fp://node[(@neclass="MISC" and not(@rel="mwp")) or (@cat="mwu" and node[@pt="spec" and @neclass="MISC"])]' \
tt:%l $files | sort | uniq -c | grep -v '^ *1 ' | sed -e 's/\([0-9]\) */\1\t/' | \
sort -f -k 2 | sort -n -r -k 1,1 -s > overigen-$ds-$i
# score overigen-$ds-$i > overigen-$ds-$i.score
alto \
'fp://node[@pt and @his and not(../@his="normal" or @rel="mwp" or ../@his="name" or ../@his_1="decap") and not(@his="normal" or @his="name" or @his="skip" or @his="robust_skip" or @his="w_dia" or @his="wo_dia" or @his="decap" or @his="within_word_conjunct") and not(@pt="n") ]' \
'tt:%w\t%P' $files | sort | uniq -c | grep -v '^ *1 ' | sed -e 's/\([0-9]\) */\1\t/' | \
sort -f -k 2 | sort -n -r -k 1,1 -s > overigen-extra-$ds-$i
# score overigen-extra-$ds-$i > overigen-extra-$ds-$i.score
done