| #!/bin/bash |
| |
| usage() { echo "Usage: $0 [-r | -s <server>] [-m <model>] [-l] < c.conllu > c.ud.conllu" 1>&2; exit 1; } |
| |
| LOCAL_SERVER=http://compute.ids-mannheim.de:8001 |
| LINDAT_SERVER=https://lindat.mff.cuni.cz/services/udpipe/api |
| |
| server=${LOCAL_SERVER} |
| model=de_hdt |
| |
| udpipe_server_is_operational () { |
| [ $(curl -s -o /dev/null -w "%{http_code}" ${1}/models) -eq 200 ] |
| } |
| |
| if ! udpipe_server_is_operational $server; then |
| echo "WARING: Local server $server is not responding, defaulting to LINDAT server." >&2 |
| server=$LINDAT_SERVER |
| fi |
| |
| while getopts "s:m:rhl" o; do |
| case "${o}" in |
| r) |
| server=${LINDAT_SERVER} |
| ;; |
| s) |
| server=${OPTARG} |
| ;; |
| m) |
| model=${OPTARG} |
| ;; |
| l) |
| curl ${server}/models |
| exit 0 |
| ;; |
| *) |
| usage |
| ;; |
| esac |
| done |
| shift $((OPTIND-1)) |
| |
| if ! udpipe_server_is_operational $server; then |
| echo "ERROR: Udpipe server $server is not operational." >&2 |
| exit -1 |
| fi |
| |
| idx=1 |
| while [[ $idx -gt 0 ]]; do |
| idx=0 |
| while IFS= read -r line && ( [[ $idx -lt 120000 ]] || ! [[ -z "$line" ]] ); do |
| $(( idx++ )) 2> /dev/null |
| echo "$line" |
| # echo "$line" >&2 |
| done > >(curl --silent -F data=@- -F model=${model} -F tagger= -F parser= ${server}/process | jq -j .result ) |
| done |