alpino

Alpino compileren op Hábrók

mkdir -p ~/opt
cd ~/opt
git clone --depth=1 github:rug-compling/Alpino.git
export ALPINO_HOME=$HOME/opt/Alpino
export LD_LIBRARY_PATH=$ALPINO_HOME/TreebankTools/IndexedCorpus
export SP_CSETLEN=212
export SP_CTYPE=utf8
cd Alpino
# oud: module load Go Tk/8.6.12-GCCcore-11.3.0 Boost/1.79.0-GCC-11.3.0 Python/2.7.18-GCCcore-11.3.0-bare
module load Go Tk/8.6.12-GCCcore-11.3.0 Boost/1.79.0-GCC-11.3.0 Python/3.10.4-GCCcore-11.3.0
# niet langer nodig:
#LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/cvmfs/hpc.rug.nl/versions/2023.01/rocky8/x86_64/amd/zen3/software/GCCcore/11.3.0/lib64
make
make install

Ergens wordt env.sh gesourced, dat ervan uitgaat dat bin/Alpino al bestaat. Dit is een bug.

Alpino draaien:

export ALPINO_HOME=$HOME/opt/Alpino
PATH=$ALPINO_HOME/bin:$PATH
module load Tk/8.6.12-GCCcore-11.3.0
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/cvmfs/hpc.rug.nl/versions/2023.01/rocky8/x86_64/amd/zen3/software/GCCcore/11.3.0/lib64
Alpino

Corpus parsen op Hábrók

Voorbeeld met LassyLarge/WR-P-P-G

Op habrok:

mkdir /scratch/$USER/SUITES

Op colossus:

cd /net/corpora/LassyLarge/WR-P-P-G/SUITES
scp *sents* habrok:/scratch/$USER/SUITES

Op habrok:

# voor corpora met meer dan 5000 zinnen per set
cd /scratch/$USER/SUITES
gunzip *.gz
for i in *.sents; do j=`basename $i .sents`; split --additional-suffix=.sents -l 5000 -a 1 $i $j; rm -f $i; done
gzip *.sents

cd $ALPINO_HOME/Suites
ln -s /scratch/$USER/SUITES Machine

cd $ALPINO_HOME/Treebank/Machine
make jobs PATTERN=WR-P-P-G ENHANCE=LL,UD

Let op het laatste argument voor make jobs. Met ENHANCE=LL,UD geef je aan dat er metadata moet worden toegevoegd behorend bij het corpus Lassy Large (LL), en dat er Universal Dependencies (UD) moeten worden ingevoegd.

Die metadata is gedefinieerd in $ALPINO_HOME/TreebankTools/enhance/enhance.go. Hieraan kunnen definities voor andere corpora worden toegevoegd, met een extra map sourcesXX en een extra case regel in het switch statement.


misplaced (or not) heads (and other nodes)

Code: misplacedheads-in.go

Nodes met een index, nodes die eigenlijk op meerdere plaatsen in de boom horen, maar op maar één plaats worden weergegeven. De vraag is, wat is de natuurlijke plaats van deze node?

Elke pijl staat voor een pad van lengte 1 of langer, tenzij anders aangegeven:

Er zijn verschillende situaties mogelijk.

De kwestie van misplaced heads in conjunction, speelt dat ook in andere situaties, waarin het niet om een conjunctie gaat, of niet om heads?

Ook in AlpinoGraph kun je aan een node met meerdere parents niet zien wat de natuurlijke positie van die node in de zin is. Maar hier is het deel van een groter probleem. Je kunt aan de dochters van een node ook niet eenvoudig zien in welke volgorde die horen, van links naar rechts, zoals dat in Alpino wel makkelijk is te zien, omdat elke dochter een positie heeft. In AlpinoGraph kun je de volgorde alleen achterhalen door te sorteren op id van de dochters. Dat maakt zoeken erg lastig.

Hoe kan de situatie in AlpinoGraph verbeterd worden? Je zou de relaties kunnen nummeren, voor elke node de relaties naar de dochters nummeren vanaf 1, en de laatste relatie een extra attribuut om aan te geven dat het de meest rechtse is.

Los je hiermee een reëel probleem op?

alpino