De presentatie 'Van laboratorium naar praktijk: digitaal zoeken door historische archieven' van Edwin Klijn (NOB) tijdens de Noordelijke Netwerkdag Oorlogsbronnen 'Wisseling van de wacht. De bevrijding van kampen en hun nieuwe bewoners' op 23 mei 2019 bij Groninger Archieven / OVCG.
5. Stand van zaken
• 11% van archieven gedigitaliseerd (Enumerate 2017)
• Kwart van beschrijvingen niet digitaal beschreven (Enumerate
2017)
• Gebruikers worden steeds digitaler
• Collecties niet aan elkaar verbonden
• Collecties wel gescand maar niet nader toegankelijk gemaakt
6. Netwerk Oorlogsbronnen
• Doel: betere toegang tot de “Collectie WO2 Nederland”
• Ca. 80 deelnemers en 23 gelieerd
• Projecten rondom digitale collectieontsluiting
• “Thematisch intellectueel beheer”
• www.oorlogsbronnen.nl
11. TRIADO: van laboratorium naar ‘reality check’
• Partners: Nationaal Archief, NIOD, Huygens ING, Netwerk
Oorlogsbronnen
• 2017-2019
• Steekproef (13 meter) uit Centraal Archief Bijzondere
Rechtspleging
• Pilot: wat kan er nu met digitale technologie?
14. Dataverrijkingstechnologie
• Named Entity Recognition (NER): personen, organisaties, locaties,
producten, gebeurtenissen, overig.
• Datum extractie: 01-02-1943, feb. 43, februari 1943 etc.
• Auto-classificatie: automatisch herkennen van typen documenten
• Koppelen aan bestaande databestanden: Nationale Database
Vervolgings Slachtoffers, CABR-database, Oorlogsgravenstichting
15.
16. Wat kunnen we met nieuwe technologie?
• CABR doorzoekbaar maken op elk woord in de tekst (15% foutmarge)
• CABR doorzoekbaar maken op datum
• CABR doorzoekbaar maken op soort document (20% foutmarge)
• CABR-data koppelen aan bestaande data over locaties, organisaties,
gebeurtenissen en personen (Oorlogslevens, WO2 thesaurus,
Wikidata)
22. Artikel 26 BBS was het ‘verraadartikel’. Hierin was degene
strafbaar gesteld, die een ander blootgesteld had aan
opsporing, vervolging, aanhouding en vrijheidsbeneming
door de Duitse vijand of diens handlangers.
Titelpagina met titel, ondertitel (of datum) en beeld
Standaard slide
Standaard slide
Standaard slide
Standaard slide
Standaard slide
Standaard slide
Standaard slide
Waar draait dit project om: hoe kun je van een een ongestructureerd analoog archief bruikbare digitale data maken? Uitleggen dat veel archieven slechts beschreven zijn op metadataniveau, collectie of deelcollectie (correspondentie 33-39, het dossier van meneer Jansen, etc.) Dit gaat erom om losse documenten machineleesbaar te maken.
NEr
We hebben 65654 woorden aan ground truth. Die bevatten 3264 entity mentions,
verdeeld over de klassen
PER (persoon): 1484
LOC (locatie): 1160
ORG (organisatie): 409
MISC (overig): 202
EVE (gebeurtenis): 2
PRO (product): 7
We voeren de ground truth, zonder labels, aan Frog en meten het resultaat.
We gebruiken standaardinstellingen voor Frog, behalve dat we de tokenizer
vervangen door die van Apache OpenNLP, om technische redenen.
We meten met drie maten, de standaardmaten voor dit probleem:
Precision = (true positives) / (true positives + false positives)
(hoe veel van wat we vinden is correct?)
Recall = (true positives) / (true positives + false negatives)
(hoe veel vinden we van wat er in de ground truth is?)
F1 = (2 * Precision * Recall) / (Precision + Recall)
(harmonisch gemiddelde van bovenstaande.)
Merk op dat alledrie de maten getallen tussen de 1 (perfect) en 0 (alles fout)
opleveren.
Precision = 0,312
Recall = 0,398
F1 = 0,350
Als we de labels (PER, ORG, LOC, etc.) weglaten en alleen kijken naar waar de
entities staan, dan worden de scores beter:
Precision = 0,397
Recall = 0,506
F1 = 0,445
Dat volgt mee, gezien de ruizige data die we aan Frog voeren. Op schone data
(getranscribeerde krantentekst) zou een F1-score van 80% te halen moeten zijn.
Inspectie van het resultaat laat zien:
* Waar hoofdlettergebruik en interpunctie niet zijn wat Frog verwacht, zit
hij er vaak net naast, zodat bijv. een achternaam wordt herkend maar de
voorletters niet. Dat levert een score van 0 op voor de evaluatie, maar zal
in de praktijk niet een groot probleem opleveren.
* Hoofdlettergebruik in kopjes stuurt Frog soms in de war, zoals te
verwachten was. Hiervoor kunnen we wat postcorrectie toevoegen.
Bestanden ter reproductie van dit resultaat zijn
~/triadotest/txt/NL-HaNA_2.09.09/{all,frog}.conll.
Date extraction
Er zijn 696 datums geannoteerd in de ground truth. Met een simpel script dat
zoekt naar de namen van maanden en dan controleert of links en rechts een
dagnummer en een jaartal staan, vinden we 886 datums.
De F1-score van dit script is 63,3%. Bij een maximale precisie van
696/886 = 78,6% is dat extreem hoog; de recall is bijna perfect.
Ter verbetering: er moeten meer datums geannoteerd worden. In de tekst
bevatten zo weinig datums OCR-fouten dat het aanvankelijke plan om fuzzy
regular expressions te gebruiken, waarschijnlijk overkill is.
NEr
We hebben 65654 woorden aan ground truth. Die bevatten 3264 entity mentions,
verdeeld over de klassen
PER (persoon): 1484
LOC (locatie): 1160
ORG (organisatie): 409
MISC (overig): 202
EVE (gebeurtenis): 2
PRO (product): 7
We voeren de ground truth, zonder labels, aan Frog en meten het resultaat.
We gebruiken standaardinstellingen voor Frog, behalve dat we de tokenizer
vervangen door die van Apache OpenNLP, om technische redenen.
We meten met drie maten, de standaardmaten voor dit probleem:
Precision = (true positives) / (true positives + false positives)
(hoe veel van wat we vinden is correct?)
Recall = (true positives) / (true positives + false negatives)
(hoe veel vinden we van wat er in de ground truth is?)
F1 = (2 * Precision * Recall) / (Precision + Recall)
(harmonisch gemiddelde van bovenstaande.)
Merk op dat alledrie de maten getallen tussen de 1 (perfect) en 0 (alles fout)
opleveren.
Precision = 0,312
Recall = 0,398
F1 = 0,350
Als we de labels (PER, ORG, LOC, etc.) weglaten en alleen kijken naar waar de
entities staan, dan worden de scores beter:
Precision = 0,397
Recall = 0,506
F1 = 0,445
Dat volgt mee, gezien de ruizige data die we aan Frog voeren. Op schone data
(getranscribeerde krantentekst) zou een F1-score van 80% te halen moeten zijn.
Inspectie van het resultaat laat zien:
* Waar hoofdlettergebruik en interpunctie niet zijn wat Frog verwacht, zit
hij er vaak net naast, zodat bijv. een achternaam wordt herkend maar de
voorletters niet. Dat levert een score van 0 op voor de evaluatie, maar zal
in de praktijk niet een groot probleem opleveren.
* Hoofdlettergebruik in kopjes stuurt Frog soms in de war, zoals te
verwachten was. Hiervoor kunnen we wat postcorrectie toevoegen.
Bestanden ter reproductie van dit resultaat zijn
~/triadotest/txt/NL-HaNA_2.09.09/{all,frog}.conll.
Date extraction
Er zijn 696 datums geannoteerd in de ground truth. Met een simpel script dat
zoekt naar de namen van maanden en dan controleert of links en rechts een
dagnummer en een jaartal staan, vinden we 886 datums.
De F1-score van dit script is 63,3%. Bij een maximale precisie van
696/886 = 78,6% is dat extreem hoog; de recall is bijna perfect.
Ter verbetering: er moeten meer datums geannoteerd worden. In de tekst
bevatten zo weinig datums OCR-fouten dat het aanvankelijke plan om fuzzy
regular expressions te gebruiken, waarschijnlijk overkill is.
NEr
We hebben 65654 woorden aan ground truth. Die bevatten 3264 entity mentions,
verdeeld over de klassen
PER (persoon): 1484
LOC (locatie): 1160
ORG (organisatie): 409
MISC (overig): 202
EVE (gebeurtenis): 2
PRO (product): 7
We voeren de ground truth, zonder labels, aan Frog en meten het resultaat.
We gebruiken standaardinstellingen voor Frog, behalve dat we de tokenizer
vervangen door die van Apache OpenNLP, om technische redenen.
We meten met drie maten, de standaardmaten voor dit probleem:
Precision = (true positives) / (true positives + false positives)
(hoe veel van wat we vinden is correct?)
Recall = (true positives) / (true positives + false negatives)
(hoe veel vinden we van wat er in de ground truth is?)
F1 = (2 * Precision * Recall) / (Precision + Recall)
(harmonisch gemiddelde van bovenstaande.)
Merk op dat alledrie de maten getallen tussen de 1 (perfect) en 0 (alles fout)
opleveren.
Precision = 0,312
Recall = 0,398
F1 = 0,350
Als we de labels (PER, ORG, LOC, etc.) weglaten en alleen kijken naar waar de
entities staan, dan worden de scores beter:
Precision = 0,397
Recall = 0,506
F1 = 0,445
Dat volgt mee, gezien de ruizige data die we aan Frog voeren. Op schone data
(getranscribeerde krantentekst) zou een F1-score van 80% te halen moeten zijn.
Inspectie van het resultaat laat zien:
* Waar hoofdlettergebruik en interpunctie niet zijn wat Frog verwacht, zit
hij er vaak net naast, zodat bijv. een achternaam wordt herkend maar de
voorletters niet. Dat levert een score van 0 op voor de evaluatie, maar zal
in de praktijk niet een groot probleem opleveren.
* Hoofdlettergebruik in kopjes stuurt Frog soms in de war, zoals te
verwachten was. Hiervoor kunnen we wat postcorrectie toevoegen.
Bestanden ter reproductie van dit resultaat zijn
~/triadotest/txt/NL-HaNA_2.09.09/{all,frog}.conll.
Date extraction
Er zijn 696 datums geannoteerd in de ground truth. Met een simpel script dat
zoekt naar de namen van maanden en dan controleert of links en rechts een
dagnummer en een jaartal staan, vinden we 886 datums.
De F1-score van dit script is 63,3%. Bij een maximale precisie van
696/886 = 78,6% is dat extreem hoog; de recall is bijna perfect.
Ter verbetering: er moeten meer datums geannoteerd worden. In de tekst
bevatten zo weinig datums OCR-fouten dat het aanvankelijke plan om fuzzy
regular expressions te gebruiken, waarschijnlijk overkill is.
NEr
We hebben 65654 woorden aan ground truth. Die bevatten 3264 entity mentions,
verdeeld over de klassen
PER (persoon): 1484
LOC (locatie): 1160
ORG (organisatie): 409
MISC (overig): 202
EVE (gebeurtenis): 2
PRO (product): 7
We voeren de ground truth, zonder labels, aan Frog en meten het resultaat.
We gebruiken standaardinstellingen voor Frog, behalve dat we de tokenizer
vervangen door die van Apache OpenNLP, om technische redenen.
We meten met drie maten, de standaardmaten voor dit probleem:
Precision = (true positives) / (true positives + false positives)
(hoe veel van wat we vinden is correct?)
Recall = (true positives) / (true positives + false negatives)
(hoe veel vinden we van wat er in de ground truth is?)
F1 = (2 * Precision * Recall) / (Precision + Recall)
(harmonisch gemiddelde van bovenstaande.)
Merk op dat alledrie de maten getallen tussen de 1 (perfect) en 0 (alles fout)
opleveren.
Precision = 0,312
Recall = 0,398
F1 = 0,350
Als we de labels (PER, ORG, LOC, etc.) weglaten en alleen kijken naar waar de
entities staan, dan worden de scores beter:
Precision = 0,397
Recall = 0,506
F1 = 0,445
Dat volgt mee, gezien de ruizige data die we aan Frog voeren. Op schone data
(getranscribeerde krantentekst) zou een F1-score van 80% te halen moeten zijn.
Inspectie van het resultaat laat zien:
* Waar hoofdlettergebruik en interpunctie niet zijn wat Frog verwacht, zit
hij er vaak net naast, zodat bijv. een achternaam wordt herkend maar de
voorletters niet. Dat levert een score van 0 op voor de evaluatie, maar zal
in de praktijk niet een groot probleem opleveren.
* Hoofdlettergebruik in kopjes stuurt Frog soms in de war, zoals te
verwachten was. Hiervoor kunnen we wat postcorrectie toevoegen.
Bestanden ter reproductie van dit resultaat zijn
~/triadotest/txt/NL-HaNA_2.09.09/{all,frog}.conll.
Date extraction
Er zijn 696 datums geannoteerd in de ground truth. Met een simpel script dat
zoekt naar de namen van maanden en dan controleert of links en rechts een
dagnummer en een jaartal staan, vinden we 886 datums.
De F1-score van dit script is 63,3%. Bij een maximale precisie van
696/886 = 78,6% is dat extreem hoog; de recall is bijna perfect.
Ter verbetering: er moeten meer datums geannoteerd worden. In de tekst
bevatten zo weinig datums OCR-fouten dat het aanvankelijke plan om fuzzy
regular expressions te gebruiken, waarschijnlijk overkill is.
NEr
We hebben 65654 woorden aan ground truth. Die bevatten 3264 entity mentions,
verdeeld over de klassen
PER (persoon): 1484
LOC (locatie): 1160
ORG (organisatie): 409
MISC (overig): 202
EVE (gebeurtenis): 2
PRO (product): 7
We voeren de ground truth, zonder labels, aan Frog en meten het resultaat.
We gebruiken standaardinstellingen voor Frog, behalve dat we de tokenizer
vervangen door die van Apache OpenNLP, om technische redenen.
We meten met drie maten, de standaardmaten voor dit probleem:
Precision = (true positives) / (true positives + false positives)
(hoe veel van wat we vinden is correct?)
Recall = (true positives) / (true positives + false negatives)
(hoe veel vinden we van wat er in de ground truth is?)
F1 = (2 * Precision * Recall) / (Precision + Recall)
(harmonisch gemiddelde van bovenstaande.)
Merk op dat alledrie de maten getallen tussen de 1 (perfect) en 0 (alles fout)
opleveren.
Precision = 0,312
Recall = 0,398
F1 = 0,350
Als we de labels (PER, ORG, LOC, etc.) weglaten en alleen kijken naar waar de
entities staan, dan worden de scores beter:
Precision = 0,397
Recall = 0,506
F1 = 0,445
Dat volgt mee, gezien de ruizige data die we aan Frog voeren. Op schone data
(getranscribeerde krantentekst) zou een F1-score van 80% te halen moeten zijn.
Inspectie van het resultaat laat zien:
* Waar hoofdlettergebruik en interpunctie niet zijn wat Frog verwacht, zit
hij er vaak net naast, zodat bijv. een achternaam wordt herkend maar de
voorletters niet. Dat levert een score van 0 op voor de evaluatie, maar zal
in de praktijk niet een groot probleem opleveren.
* Hoofdlettergebruik in kopjes stuurt Frog soms in de war, zoals te
verwachten was. Hiervoor kunnen we wat postcorrectie toevoegen.
Bestanden ter reproductie van dit resultaat zijn
~/triadotest/txt/NL-HaNA_2.09.09/{all,frog}.conll.
Date extraction
Er zijn 696 datums geannoteerd in de ground truth. Met een simpel script dat
zoekt naar de namen van maanden en dan controleert of links en rechts een
dagnummer en een jaartal staan, vinden we 886 datums.
De F1-score van dit script is 63,3%. Bij een maximale precisie van
696/886 = 78,6% is dat extreem hoog; de recall is bijna perfect.
Ter verbetering: er moeten meer datums geannoteerd worden. In de tekst
bevatten zo weinig datums OCR-fouten dat het aanvankelijke plan om fuzzy
regular expressions te gebruiken, waarschijnlijk overkill is.
NEr
We hebben 65654 woorden aan ground truth. Die bevatten 3264 entity mentions,
verdeeld over de klassen
PER (persoon): 1484
LOC (locatie): 1160
ORG (organisatie): 409
MISC (overig): 202
EVE (gebeurtenis): 2
PRO (product): 7
We voeren de ground truth, zonder labels, aan Frog en meten het resultaat.
We gebruiken standaardinstellingen voor Frog, behalve dat we de tokenizer
vervangen door die van Apache OpenNLP, om technische redenen.
We meten met drie maten, de standaardmaten voor dit probleem:
Precision = (true positives) / (true positives + false positives)
(hoe veel van wat we vinden is correct?)
Recall = (true positives) / (true positives + false negatives)
(hoe veel vinden we van wat er in de ground truth is?)
F1 = (2 * Precision * Recall) / (Precision + Recall)
(harmonisch gemiddelde van bovenstaande.)
Merk op dat alledrie de maten getallen tussen de 1 (perfect) en 0 (alles fout)
opleveren.
Precision = 0,312
Recall = 0,398
F1 = 0,350
Als we de labels (PER, ORG, LOC, etc.) weglaten en alleen kijken naar waar de
entities staan, dan worden de scores beter:
Precision = 0,397
Recall = 0,506
F1 = 0,445
Dat volgt mee, gezien de ruizige data die we aan Frog voeren. Op schone data
(getranscribeerde krantentekst) zou een F1-score van 80% te halen moeten zijn.
Inspectie van het resultaat laat zien:
* Waar hoofdlettergebruik en interpunctie niet zijn wat Frog verwacht, zit
hij er vaak net naast, zodat bijv. een achternaam wordt herkend maar de
voorletters niet. Dat levert een score van 0 op voor de evaluatie, maar zal
in de praktijk niet een groot probleem opleveren.
* Hoofdlettergebruik in kopjes stuurt Frog soms in de war, zoals te
verwachten was. Hiervoor kunnen we wat postcorrectie toevoegen.
Bestanden ter reproductie van dit resultaat zijn
~/triadotest/txt/NL-HaNA_2.09.09/{all,frog}.conll.
Date extraction
Er zijn 696 datums geannoteerd in de ground truth. Met een simpel script dat
zoekt naar de namen van maanden en dan controleert of links en rechts een
dagnummer en een jaartal staan, vinden we 886 datums.
De F1-score van dit script is 63,3%. Bij een maximale precisie van
696/886 = 78,6% is dat extreem hoog; de recall is bijna perfect.
Ter verbetering: er moeten meer datums geannoteerd worden. In de tekst
bevatten zo weinig datums OCR-fouten dat het aanvankelijke plan om fuzzy
regular expressions te gebruiken, waarschijnlijk overkill is.
NEr
We hebben 65654 woorden aan ground truth. Die bevatten 3264 entity mentions,
verdeeld over de klassen
PER (persoon): 1484
LOC (locatie): 1160
ORG (organisatie): 409
MISC (overig): 202
EVE (gebeurtenis): 2
PRO (product): 7
We voeren de ground truth, zonder labels, aan Frog en meten het resultaat.
We gebruiken standaardinstellingen voor Frog, behalve dat we de tokenizer
vervangen door die van Apache OpenNLP, om technische redenen.
We meten met drie maten, de standaardmaten voor dit probleem:
Precision = (true positives) / (true positives + false positives)
(hoe veel van wat we vinden is correct?)
Recall = (true positives) / (true positives + false negatives)
(hoe veel vinden we van wat er in de ground truth is?)
F1 = (2 * Precision * Recall) / (Precision + Recall)
(harmonisch gemiddelde van bovenstaande.)
Merk op dat alledrie de maten getallen tussen de 1 (perfect) en 0 (alles fout)
opleveren.
Precision = 0,312
Recall = 0,398
F1 = 0,350
Als we de labels (PER, ORG, LOC, etc.) weglaten en alleen kijken naar waar de
entities staan, dan worden de scores beter:
Precision = 0,397
Recall = 0,506
F1 = 0,445
Dat volgt mee, gezien de ruizige data die we aan Frog voeren. Op schone data
(getranscribeerde krantentekst) zou een F1-score van 80% te halen moeten zijn.
Inspectie van het resultaat laat zien:
* Waar hoofdlettergebruik en interpunctie niet zijn wat Frog verwacht, zit
hij er vaak net naast, zodat bijv. een achternaam wordt herkend maar de
voorletters niet. Dat levert een score van 0 op voor de evaluatie, maar zal
in de praktijk niet een groot probleem opleveren.
* Hoofdlettergebruik in kopjes stuurt Frog soms in de war, zoals te
verwachten was. Hiervoor kunnen we wat postcorrectie toevoegen.
Bestanden ter reproductie van dit resultaat zijn
~/triadotest/txt/NL-HaNA_2.09.09/{all,frog}.conll.
Date extraction
Er zijn 696 datums geannoteerd in de ground truth. Met een simpel script dat
zoekt naar de namen van maanden en dan controleert of links en rechts een
dagnummer en een jaartal staan, vinden we 886 datums.
De F1-score van dit script is 63,3%. Bij een maximale precisie van
696/886 = 78,6% is dat extreem hoog; de recall is bijna perfect.
Ter verbetering: er moeten meer datums geannoteerd worden. In de tekst
bevatten zo weinig datums OCR-fouten dat het aanvankelijke plan om fuzzy
regular expressions te gebruiken, waarschijnlijk overkill is.
NEr
We hebben 65654 woorden aan ground truth. Die bevatten 3264 entity mentions,
verdeeld over de klassen
PER (persoon): 1484
LOC (locatie): 1160
ORG (organisatie): 409
MISC (overig): 202
EVE (gebeurtenis): 2
PRO (product): 7
We voeren de ground truth, zonder labels, aan Frog en meten het resultaat.
We gebruiken standaardinstellingen voor Frog, behalve dat we de tokenizer
vervangen door die van Apache OpenNLP, om technische redenen.
We meten met drie maten, de standaardmaten voor dit probleem:
Precision = (true positives) / (true positives + false positives)
(hoe veel van wat we vinden is correct?)
Recall = (true positives) / (true positives + false negatives)
(hoe veel vinden we van wat er in de ground truth is?)
F1 = (2 * Precision * Recall) / (Precision + Recall)
(harmonisch gemiddelde van bovenstaande.)
Merk op dat alledrie de maten getallen tussen de 1 (perfect) en 0 (alles fout)
opleveren.
Precision = 0,312
Recall = 0,398
F1 = 0,350
Als we de labels (PER, ORG, LOC, etc.) weglaten en alleen kijken naar waar de
entities staan, dan worden de scores beter:
Precision = 0,397
Recall = 0,506
F1 = 0,445
Dat volgt mee, gezien de ruizige data die we aan Frog voeren. Op schone data
(getranscribeerde krantentekst) zou een F1-score van 80% te halen moeten zijn.
Inspectie van het resultaat laat zien:
* Waar hoofdlettergebruik en interpunctie niet zijn wat Frog verwacht, zit
hij er vaak net naast, zodat bijv. een achternaam wordt herkend maar de
voorletters niet. Dat levert een score van 0 op voor de evaluatie, maar zal
in de praktijk niet een groot probleem opleveren.
* Hoofdlettergebruik in kopjes stuurt Frog soms in de war, zoals te
verwachten was. Hiervoor kunnen we wat postcorrectie toevoegen.
Bestanden ter reproductie van dit resultaat zijn
~/triadotest/txt/NL-HaNA_2.09.09/{all,frog}.conll.
Date extraction
Er zijn 696 datums geannoteerd in de ground truth. Met een simpel script dat
zoekt naar de namen van maanden en dan controleert of links en rechts een
dagnummer en een jaartal staan, vinden we 886 datums.
De F1-score van dit script is 63,3%. Bij een maximale precisie van
696/886 = 78,6% is dat extreem hoog; de recall is bijna perfect.
Ter verbetering: er moeten meer datums geannoteerd worden. In de tekst
bevatten zo weinig datums OCR-fouten dat het aanvankelijke plan om fuzzy
regular expressions te gebruiken, waarschijnlijk overkill is.
Laatste pagina met wit vlak voor logootjes (hoogte aanpassen naar behoefte)