13 december 2023

Actueel…

  1. Apache op urd2
    • rechten voor y.
  2. Overleaf
    • aparte drive voor data
  3. geen %q in SQL gebruiken
    • PaQu
    • en de rest
  4. PaQu
    • veilige cookies
      • net/http: invalid byte '"' in Cookie.Value; dropping invalid bytes
  5. Alpino
    • Python2 → Python3, zie beneden
  6. DbXML: functionaliteit van dbxml_*, alpinocorpus_* en dtsearch
    • een “gestroomlijnde” set tools

Later…

  1. urd2
    • binnenkort upgrade naar Ubuntu 22.04
  2. migratie naar colossus

Alpino: Python2 → Python3

0 = wordt niet geconverteerd
1 = geconverteerd
2 = getest
3 = niet getest, ziet er goed uit

status note file(s)
AlpinoUserGuide.html
2 CGN/Makefile
2 CGN/convert_plk_alpino.py
2 Disambiguation/score0-1.py
2 Documentation/DutchGrid/create-nodemap.py
Documentation/UserGuide/AlpinoUserGuide.txt
3 EvalUD/goodkeys.py
2 Generation/fluency/CreateLM/Makefile
2 Generation/fluency/CreateLM/sfr2frames.py
2 A Generation/fluency/CreateLM/sfr2words.py
2 Generation/fluency/CreateMaxent/Makefile
2 Generation/fluency/CreateMaxent/evaluate.py
2 Generation/fluency/CreateMaxent/filter_features.py
Makefile.hpc
2 Names/Create/Makefile
2 Names/Create/classify
2 B Names/Create/maxent.py
2 Suites/ChildesDutch/*
2 TreebankTools/IndexedCorpus/Makefile
2 TreebankTools/IndexedCorpus/python/*
2 TreebankTools/Makefile
2 TreebankTools/bin/act
2 TreebankTools/bin/dtcanonicalize.py
2 TreebankTools/bin/dtget
2 TreebankTools/bin/dtgrep
2 TreebankTools/bin/dtlist
2 TreebankTools/bin/dtsearch
2 TreebankTools/bin/dtxslt
2 TreebankTools/create-sanity-check-stylesheet.py
2 TreebankTools/python-lib/actlib.py
2 TreebankTools/python-lib/compactcorpus.py
2 TreebankTools/python-lib/numsort.py
2 TreebankTools/python-lib/wikipedia_paths.py
2 TreebankTools/treebank-server
1 C UD2.0/conll17_ud_eval.py
0 alpino2conll/tools/alpino.py
0 alpino2conll/tools/alpino2tab.py
0 alpino2conll/tools/tag.py
2 alpino_client.py
2 D webdemo.py

A:

Er is een verschil in uitvoer tussen de oude Python2-versie en de nieuwe Python3. Getest op parool2001_test.sfr:

--- parool.oud  2023-12-12 13:39:06.599020864 +0100
+++ parool.nieuw        2023-12-12 13:40:20.060024212 +0100
@@ -971,7 +971,7 @@
 de bejaarden van straks accepteren geen kleine kamers aan saaie gangen en standaardmaaltijden meer .
 zij willen zorg op maat en daarvoor zijn andere onderkomens nodig , stelt J. A. Roëll , lid van de Raad van Bestuur van de Verenigde Amstelhuizen .
 zijn voorstel : sloop de meeste tehuizen en vervang ze door kleinschalige woonvoorzieningen .
-jaap roËll presenteert zich als een visionair .
+jaap roëll presenteert zich als een visionair .
 meehuilen met de wolven in het bos dat ' ze ' het gedaan hebben is niets voor hem .
 alles in de verpleeghuiszorg bij het oude laten en steeds maar weer tegen beter weten in proberen aan genoeg personeel te komen , leidt tot niets , vindt hij .
 de arbeidsmarkt voor zorgverleners zal in de regio Amsterdam de komende jaren krap blijven .
@@ -1028,7 +1028,7 @@
 dat is onmenselijk . "
 " ook de mantelzorg - kinderen , kleinkinderen - moet het op hun eigen manier zorgen voor vader of moeder geen strobreed in de weg worden gelegd .
 nu worden ze weggeduwd . "
-roËll vindt het onbegrijpelijk dat de meeste verpleeghuizen wat betreft techniek en ICT jaren achterlopen .
+roëll vindt het onbegrijpelijk dat de meeste verpleeghuizen wat betreft techniek en ICT jaren achterlopen .
 terwijl juist moderne technieken allerlei standaardwerk kunnen overnemen dat nu nog door personeel wordt gedaan .
 geautomatiseerde patiëntendossiers , patiëntenvolgsystemen , een zorgpas met een chip waarop alle noodzakelijke gegevens staan en het gebruik van internet en e-mail .
 " via de telematica kan in de zorg nog zo ontzettend veel worden gedaan .

Ik denk dat de nieuwe versie is zoals het bedoeld is.

B:

De uitvoer met Python 3 is anders dan van het oude script met Python 2. Dat heeft twee redenen.

  1. In het script worden twee integers op elkaar gedeeld. Het tweede getal is altijd groter dan het eerste, daardoor is met Python 2 de uitkomst altijd 0. In Python 3 geeft dit een fractie, zoals duidelijk de bedoeling is, dus het oude script was fout.
  2. Bij het doorlopen van een map is de volgorde van hoe de elementen uit de map worden gehaald verschillend tussen Python 2 en 3.

Dit gaat fout met Python 2:

 252   │         n = sum(cat.categories.values())
 253   │         for cl in cat.categories:
 254   │             cat.categories[cl] /= n

Wanneer de fout uit punt 1 hersteld wordt, en een vaste volgorde wordt afgedwongen voor het opvragen van elementen uit een map, dan is het resultaat voor Python 2 en Python 3 identiek.

C:

Niet kunnen testen: geen testdata beschikbaar

D:

Module cgi vervangen door urllib. Module cgitb verwijderd, geen goed alternatief voor kunnen vinden.

alpino dbxml latex overleaf sql