| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | usage() { echo "Usage: $0 [-r | -s <server>] [-m <model>] [-l] < c.conllu > c.ud.conllu" 1>&2; exit 1; } |
| 4 | |
| 5 | LOCAL_SERVER=http://compute.ids-mannheim.de:8001 |
| 6 | LINDAT_SERVER=https://lindat.mff.cuni.cz/services/udpipe/api |
| 7 | |
| 8 | server=${LOCAL_SERVER} |
| 9 | model=de_hdt |
| 10 | |
| 11 | udpipe_server_is_operational () { |
| 12 | [ $(curl -s -o /dev/null -w "%{http_code}" ${1}/models) -eq 200 ] |
| 13 | } |
| 14 | |
| 15 | if ! udpipe_server_is_operational $server; then |
| 16 | echo "WARING: Local server $server is not responding, defaulting to LINDAT server." >&2 |
| 17 | server=$LINDAT_SERVER |
| 18 | fi |
| 19 | |
| 20 | while getopts "s:m:rhl" o; do |
| 21 | case "${o}" in |
| 22 | r) |
| 23 | server=${LINDAT_SERVER} |
| 24 | ;; |
| 25 | s) |
| 26 | server=${OPTARG} |
| 27 | ;; |
| 28 | m) |
| 29 | model=${OPTARG} |
| 30 | ;; |
| 31 | l) |
| 32 | curl ${server}/models |
| 33 | exit 0 |
| 34 | ;; |
| 35 | *) |
| 36 | usage |
| 37 | ;; |
| 38 | esac |
| 39 | done |
| 40 | shift $((OPTIND-1)) |
| 41 | |
| 42 | if ! udpipe_server_is_operational $server; then |
| 43 | echo "ERROR: Udpipe server $server is not operational." >&2 |
| 44 | exit -1 |
| 45 | fi |
| 46 | |
| 47 | idx=1 |
| 48 | while [[ $idx -gt 0 ]]; do |
| 49 | idx=0 |
| 50 | while IFS= read -r line && ( [[ $idx -lt 120000 ]] || ! [[ -z "$line" ]] ); do |
| 51 | $(( idx++ )) 2> /dev/null |
| 52 | echo "$line" |
| 53 | # echo "$line" >&2 |
| 54 | done > >(curl --silent -F data=@- -F model=${model} -F tagger= -F parser= ${server}/process | jq -j .result ) |
| 55 | done |