update readme
This commit is contained in:
108
README.md
108
README.md
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user