content top

Die Skripte sind in Python implementiert. Zum Ausführen wird eine Version >= Python 2.6 benötigt. Der Code ist stellenweise nicht Python 3.x kompatibel. Hier wird nun die Benutzung der Skripte erläutert. Der Quellcode ist im svn https://ad-svn.informatik.uni-freiburg.de/student-projects/jan-kelch hinterlegt.


Metadaten von zbmed/APS nach Index_APS.xml extrahieren und Fehler ins Error_APS.log schreiben:

python xml_meta_APS.py /nfs/raid1/zbmed/APS Index_APS.xml 2> Error_APS.log

Metadaten von zbmed/InformaHealthcare nach Index_IH.xml extrahieren und Fehler ins Error_IH.log schreiben:

python xml_meta_IH.py /nfs/raid1/zbmed/InformaHealthcare Index_IH.xml 2> Error_IH.log

Metadaten von Index_APS.xml und Index_IH.xml nach zbmed-test.xml mergen:

python merge_xml.py Index_APS.xml Index_IH.xml zbmed-test.xml

Texte von zbmed-test.xml referenzierten PDFs extrahieren und inklusive Metadaten in zbmed-test-text.xml schreiben:

python text4pdf_main.py /nfs/raid1/zbmed/ zbmed-test.xml zbmed-test-text.xml

Um die Listen zu generieren wird ein Wikipedia-Dump benötigt. Aus dem Dump werden die nötigen Informationen mittels grep extrahiert und mit vi formatiert. Zu generierende Listen sind:

wiki-all-categorys: Liste mit allen Kategorien und deren übergeordneten Kategorien
wiki-entity-cat-nored: Liste mit allen kategorisierten Entitäten ohne Weiterleitungen
wiki-redirect: Liste mit allen Weiterleitungen

Genaue Angaben zu den Befehlen sind im (svn)/wikilists/README nachzulesen.

Ausserdem benötigt, ist die Filterliste aus (svn)/wikilists/:

wiki-categorys: Liste mit Kategorien zum filtern der Entitäten

Die Artikeltitel werden anhand der Kategorieliste zusammengestellt. Dazu kommen Weiterleitungen auf diese Artikel. Die Texte werden dann nach Vorkommnissen aus dieser Zusammenstellung mittels regulären Ausdrücken durchsucht. Gefundene Entitäten werden durch einen Wikilink ersetzt. Allgemein beschrieben wird aus Entität der Wikilink [[WikiArtikel|Entität]].

Folgend ein Beispielaufruf:

python sar_main.py wiki-categorys wiki-entity-cat-nored wiki-redirect zbmed-test-text.xml zbmed-test-entitytext.xml

Im Test dauerte die Suche durchschnittlich 1 Sekunde pro Dokument. Die anfängliche Zusammenstellung der Entitätsliste dauert im Moment ca. 5 Minuten bei rund 800 Kategorien. Bei 5000 Dokumenten kann man also mit einer Laufzeit von ca. 1.5 Stunden rechnen.


Für die Ground Truth-Texte werden Textdateien mit Dateinamen äquivalent zu den PDFs erwartet. Wird eine solche Datei für ein PDF gefunden, wird der Text im resultierenden HTML mit 4 Farben kodiert:

Grün: Entität richtig erkannt und richtig verlinkt

Gelb: Entität falsch erkannt

Orange: Entität richtig erkannt aber falsch verlinkt

Rot: Entität nicht erkannt

Ist keine Ground Truth Textdatei zu einem Text vorhanden, so werden erkannte Entitäten blau makiert und verlinkt.

Der URL-Typ kann frei gewählt werden.

Usage: html_main.py INPUT_XML OUTPUT_XML HTML_PATH URL_PART GroundTruthTXT_PATH

Für Lokale file:///...-Verlinkungen z.B.:

python html_main.py zbmed-test-entitytext.xml ~/broccoli/data/zbmed-test-db.xml /nfs/raid1/kelchj/html file:///nfs/raid1/kelchj/html ../gt

Oder für http://...-Verlinkung:

python html_main.py zbmed-test-entitytext.xml ~/broccoli/data/zbmed-test-db.xml /nfs/raid1/kelchj/html http://server/html ../gt

Die style.css-Datei muss anschließend im zuvor angegebenen HTML-Pfad hinterlegt werden.


content top