update readme

This commit is contained in:
Peter Kleiweg
2026-05-25 12:37:55 +02:00
parent 9d82f11536
commit e430ff576b
2 changed files with 32 additions and 80 deletions

108
README.md
View File

@@ -1,78 +1,22 @@
# Verzamelen van nieuwsberichten
# Actuele nieuwsberichten
## Bronnen: verzamelen
- voor Alpino: nieuwe namen en nieuwe woorden
- voor *Woord van de maand* ook: toplijsten van personen, plaatsen,
organisaties en andere namen (TODO: url van webapp)
Elke directory waarvan de naam met een hoofdletter begint is voor een
enkele nieuwsbron.
De onverwerkte berichten worden opgeslagen in een subdirectory
jaar/maand/dag voor NieuwsNL en in subdirectory jaar/weeknummer voor de
overige bronnen.
Het formaat van de data verschilt per bron. Soms is er voor elk bericht
alleen een XML-bestand (`*.xml`), een fragment afkomstig uit de
RSS-feed, waar heel de tekst en alle gegevens al in staan. Wanneer de
RSS-feed niet de complete tekst bevat, dan worden de HTML-pagina's van
nieuwe berichten gedownload, en wordt daar de tekst uit gehaald. Dan
krijg je bestanden zoals `*.json` en/of `*.txt`.
Als er fouten bij het verzamelen zijn dan zijn er bestanden op `*.err`
en mogelijk `*.html`.
Gewoonlijk als er iets mis gaat probeert de software een uur later
dezelfde berichten weer te verwerken. Om dat te voorkomen kunnen
bestanden handmatig hernoemd worden van `*.err` naar `*.skip`. Voor
berichten van een type waarvan bekend is dat ze geen tekst bevatten
worden automatisch bestanden op `*.skip` gemaakt.
## Verwerking
Elke dag voor NieuwsNL en alleen op dinsdag voor de overige bronnen
worden de teksten verwerkt. De teksten worden omgezet naar
getokeniseerde zinnen met labels, door Alpino geparst, en voorzien van
metadata.
Dit gebeurt door de scripts `txt2corpus.sh` van elke bron. De scripts
variëren per bron omdat het formaat waarin de teksten aanwezig zijn
verschillen per bron.
De resultaten staan in de subdirectory's `corpus` van elke bron.
## Analyse
Op woensdag worden de geparste zinnen van de afgelopen week geanalyseerd.
(De data voor NieuwsNL worden hierbij samengevoegd in één week.) Er
worden queries uitgevoerd, tellingen gedaan, ranglijsten gemaakt. Voor
sommige queries wordt een top 20 samengesteld van meest voorkomende
items die nog niet eerder in de top 20 stonden.
Voor de analyse worden bronnen samengevoegd in onderdelen: algemeen,
amsterdam, groningen, literatuur, vlaanderen. De resultaten worden
bij elkaar opgeslagen in directory `data`.
Uit de analyse worden de data gehaald die nodig zijn voor de
webapp, en opgeslagen als json, in subdirectory `data/json`.
Dit alles gebeurt door het script `collect.sh`
Je kunt de analyse ook handmatig doen, met het script `query.sh`
## Uitvoering
Alles gebeurt vanuit cron. Foutmeldingen en waarschuwingen worden per
mail verstuurd door cron.
### crontab van p209327@colossus
Is `/net/corpora` schrijfbaar?
Voor interactief gebruik:
```
# m h dom mon dow command
2 * * * * /net/aistaff/kleiweg/services/nfs/test.sh
query.sh
```
Berichten verzamelen
## 1. Verzamelen van berichten
Berichten van NieuwsNL in `NieuwsNL/yyyy/mm/dd/`
Overigen in `[A-Z]*/yyyy/ww/` (weeknummer)
crontab van p209327@colossus
```
# m h dom mon dow command
@@ -95,9 +39,13 @@ Berichten verzamelen
19 * * * * /net/corpora/nlnieuws/VRT/vrt
```
Nieuws verwerken: tekst omzetten naar zinnen, parsen, metadata toevoegen
## 2. Teksten verwerken: omzetten naar zinnen, parsen, metadata toevoegen
NieuwsNL elke dag, overigen alleen op dinsdag
Uitvoer in `[A-Z]*/corpus/`
NieuwsNL elke dag, de rest alleen op dinsdag
crontab van p209327@colossus
```
# m h dom mon dow command
@@ -120,24 +68,24 @@ NieuwsNL elke dag, overigen alleen op dinsdag
0 1 * * 2 /net/corpora/nlnieuws/VRT/txt2corpus.sh
```
Ging alles goed: zo niet, dan kunnen er nog lockfile zijn
## 3. Queries uitvoeren, tellingen doen
```
# m h dom mon dow command
50 0 * * * find /net/corpora/nlnieuws -name lock
```
Tellingen in `data/`
Op woensdag alles verzamelen: queries uitvoeren, data die nodig is voor
webapp omzetten naar json
Gegevens voor webapp in `data/json/`
Op woensdag
crontab van p209327@colossus
```
# m h dom mon dow command
0 1 * * 3 /net/corpora/nlnieuws/collect.sh
```
### crontab van f109308@colossus
## 4. Data in json op webplatform zetten
Json-bestanden voor de webapp overzetten naar het webplatform
crontab van f109308@colossus
```
# m h dom mon dow command

View File

@@ -165,3 +165,7 @@ data2json $ds 1 > json/DATA-$ds-1.json
data2json $ds 4 > json/DATA-$ds-4.json
dates2json > json/index1.json
dates2json > json/index4.json
# rechten bijwerken
chmod -R g+w /net/corpora/nlnieuws
chgrp -R software /net/corpora/nlnieuws