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
|
Voor interactief gebruik:
|
||||||
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?
|
|
||||||
|
|
||||||
```
|
```
|
||||||
# m h dom mon dow command
|
query.sh
|
||||||
2 * * * * /net/aistaff/kleiweg/services/nfs/test.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
|
# m h dom mon dow command
|
||||||
@@ -95,9 +39,13 @@ Berichten verzamelen
|
|||||||
19 * * * * /net/corpora/nlnieuws/VRT/vrt
|
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
|
# 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
|
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
|
||||||
|
|
||||||
```
|
Tellingen in `data/`
|
||||||
# m h dom mon dow command
|
|
||||||
50 0 * * * find /net/corpora/nlnieuws -name lock
|
|
||||||
```
|
|
||||||
|
|
||||||
Op woensdag alles verzamelen: queries uitvoeren, data die nodig is voor
|
Gegevens voor webapp in `data/json/`
|
||||||
webapp omzetten naar json
|
|
||||||
|
Op woensdag
|
||||||
|
|
||||||
|
crontab van p209327@colossus
|
||||||
|
|
||||||
```
|
```
|
||||||
# m h dom mon dow command
|
# m h dom mon dow command
|
||||||
0 1 * * 3 /net/corpora/nlnieuws/collect.sh
|
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
|
# 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
|
data2json $ds 4 > json/DATA-$ds-4.json
|
||||||
dates2json > json/index1.json
|
dates2json > json/index1.json
|
||||||
dates2json > json/index4.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