5.1 Übersicht - mkappus1/DatenmanagementMTHS24 GitHub Wiki
Woche 5 Erstellung von vergleichbaren Korpora
1. Einleitung
Wikipedia kann eine äusserst nützliche Ressource für die Erstellung mehrsprachiger Korpora sein, insbesondere für sprachliche und computerlinguistische Projekte. Hier sind einige Gründe, warum Wikipedia sinnvoll für diesen Zweck ist, sowie einige Überlegungen, die beachtet werden sollten:
Vorteile von Wikipedia für mehrsprachige Korpora
-
Vielfalt an Sprachen: Wikipedia ist in über 300 Sprachen verfügbar und bietet eine breite sprachliche Abdeckung. Dies macht es möglich, vergleichbare Texte in vielen verschiedenen Sprachen zu finden, was für mehrsprachige Korpora entscheidend ist.
-
Thematische Konsistenz: Da Artikel zu denselben Themen oft in mehreren Sprachversionen existieren, lassen sich vergleichbare Texte für verschiedene Sprachen leicht extrahieren. Dies ist besonders nützlich für parallele Korpora, die in Bereichen wie maschineller Übersetzung oder Sprachvergleich verwendet werden.
-
Standardisierte Struktur: Wikipedia-Artikel haben oft eine einheitliche oder zumindest ähnliche Struktur (z. B. Einleitungen, Abschnitte, Infoboxen), was die Bearbeitung und das Parsing erleichtert. Dies macht Wikipedia zu einer semi-strukturierten Datenquelle, die für automatisierte Analysen geeignet ist.
-
Aktualität und Umfang: Wikipedia wird ständig aktualisiert und deckt eine grosse Bandbreite an Themen ab. Die Aktualität der Informationen ist hilfreich für das Training von NLP-Modellen, die aktuelle Sprache und Begriffe verwenden.
-
Verfügbarkeit von Metadaten:Wikipedia bietet Metadaten, wie z. B. Kategorien, Links und Autoreninformationen, die für weiterführende Analysen und Metadaten-Anreicherungen verwendet werden können.
-
Freie Lizenz: Wikipedia ist unter der Creative-Commons-Lizenz verfügbar, was bedeutet, dass die Inhalte kostenlos verwendet, verteilt und modifiziert werden können, solange die Lizenzbedingungen eingehalten werden. Dies ist ein klarer Vorteil gegenüber anderen potenziellen Quellen.
Herausforderungen und Überlegungen
-
Inhaltliche Unterschiede zwischen Sprachen: Die Artikelinhalte unterscheiden sich oft zwischen den Sprachen, selbst bei gleichen Themen. Manchmal ist ein Thema in einer Sprache ausführlicher beschrieben als in einer anderen. Dies kann die direkte Vergleichbarkeit einschränken und muss berücksichtigt werden, wenn parallele Korpora erstellt werden.
-
Qualitätsunterschiede: Die Qualität der Wikipedia-Artikel kann je nach Sprache variieren. Einige Sprachversionen enthalten umfassendere und professionellere Artikel als andere. Bei der Korpuserstellung sollte daher geprüft werden, ob die Qualität und Tiefe der Artikel für die jeweilige Sprachversion ausreichend ist.
-
Vielseitige Sprachregister: Wikipedia-Artikel sind grösstenteils sachlich und informativ, was für die meisten linguistischen Anwendungen vorteilhaft ist. Allerdings fehlen umgangssprachliche Register, Dialekte und informelle Ausdrucksweisen. Für Projekte, die unterschiedliche Sprachstile oder Alltagssprache benötigen, ist Wikipedia daher eher begrenzt.
-
Technische Herausforderungen beim Scraping: Die Wikipedia-API und Dumps sind leicht zugänglich, aber das Extrahieren und Bereinigen von Texten für spezifische Korpora erfordert technische Kenntnisse. Abhängig von den Korpusanforderungen könnten zusätzliche Verarbeitungsschritte nötig sein, um relevante Inhalte aus den Wikipedia-Texten herauszufiltern.
5.2. Empfohlene Lektüre
In dieser Woche empfehle ich Ihnen die Lektüre eines Artikels, der sich mit der Erstellung des Wikimatrix-Korpus befasst, da er einen gewissen Bezug zu dem hat, was wir in dieser Woche tun werden.
Schwenk, H., Chaudhary, V., Sun, S., Gong, H., & Guzmán, F. (2021, April). WikiMatrix: Mining 135M Parallel Sentences in 1620 Sprachpaaren aus Wikipedia. In Proceedings of the 16th Conference of the European Chapter of the Association for Computational Linguistics: Main Volume (S. 1351-1361)
5.3. Wikipedia
Wikipedia ist eine kollaborative Enzyklopädie, die in etwa 300 verschiedenen Sprachen verfügbar ist. Zu Wikipedia ist folgendes anzumerken:
-
Die Wikipedias in den einzelnen Sprachen sind voneinander unabhängig. Selbst wenn zwei Wikipedias einen Artikel zum gleichen Thema haben, bedeutet dies meistnicht, dass es sich um Übersetzungen handelt. Die Artikel werden unabhängig voneinander erstellt, auch wenn sie oft auf der Übersetzung eines Artikels in einer anderen Sprache basieren. Es ist daher nicht zu erwarten, dass Artikel zum gleichen Thema in zwei Sprachen Übersetzungen sind.
-
Wikipedia-Artikel sind sprachübergreifend verlinkt, so dass man von einem Artikel in einer Sprache direkt zum gleichen Artikel in einer anderen Sprache springen kann.
-
Die Artikel sind thematisch nach Kategorien geordnet. Diese Kategorien sind im Prinzip frei wählbar, es gibt jedoch eine Reihe von weit verbreiteten Kategorien, die in der Regel verwendet werden. Diese Kategorien können sich auch auf Wissensgebiete beziehen. (siehe Wikipedia:Contents/Categories auf Englisch)
-
Es gibt Projekte, die den Inhalt von Wikipedia in Datenbanken umwandeln, z.B. dBPediaDBpedia.
-
Der gesamte Inhalt von Wikipedia kann als sogenannter dump heruntergeladen werden. Das sind sehr grosse Dateien. Im fünften Abschnitt Teil dieses Blocks werden wir lernen, wie man mit diesen Dateien arbeitet.
5.4. Erstellen vergleichbarer Korpora mit CCWikipedia
Für diesen Teil der Aktivität werden wir https://github.com/aoliverg/CCWikipedia verwenden. Diese Anwendung wird im dazugehörigen Wiki ausführlich erklärt (auf Englisch). Wie Sie dort sehen, gibt es eine Version mit einer visuellen Schnittstelle. Sie können diese verwenden, aber ich empfehle Ihnen, die Terminal-Version zu benutzen, da Sie diese auch auf Servern ohne grafische Oberfläche verwenden können.
Denken Sie daran, dass Sie, bevor Sie beginnen, die Datenbank CPfromWiki.sqlite besorgen müssen (erstellen Sie sie nicht selbst, auch wenn das möglich wäre). Um sie herunterzuladen, gehen Sie zu
wget http://lpg.uoc.edu/smarterp/CPfromWiki.sqlite
Achtung die Datei ist ziemlich gross (9 GB) und der Download kann lange dauern. Prüfen Sie nach dem Download noch einmal den Namen der heruntergeladenen Dati 8auch im Hinblick auf gross- und Kienbuchstaben).
Jetzt können Sie die Skriptsammlung CCWikipedia herunterladen, indem Sie folgenden Befehl eingeben.
git clone https://github.com/aoliverg/CCWikipedia.git
y
Diese Sammlung sollte die folgenden Dateien enthalten:
Wir werden das Programm createCCWCorpus.py verwenden, das die Option -h bietet, um eine Übersicht über die verfügbaren Optionen zu erhalten:
python3 createCCWCorpus.py -h
Verwendung: createCCWCorpus.py [-h] -d FILENAME -c CATEGORY --level LEVEL --lang LANG -o OUTDIR [-a ARTICLELIST]
Script for the creation of parallel corpora from Wikipedia
Optionen:
-h, --help show this help message and exit
-d FILENAME, --database FILENAME
The CCW sqlite database to use.
-c CATEGORIA, --categories CATEGORIA
The categories to search for (a category or a list of categories separated by ,)
--level LEVEL The category level depth..
--lang LANG The language (two letter ISO code used in Wikipedia).
-o OUTDIR, --output OUTDIR
The name of the sqlite database to be created.
-a ARTICLELIST, --articlelist ARTICLELIST
The name of the text file containing the list of files.
Möglicherweise muss die Bibliothek wikipedia noch mit dem Befehl
pip install wikipedia
nach installiert werden!
Wenn Sie die medizinischen Artikel auf Englisch und bis zu zwei Ebenen darunter herunterladen möchten, können wir z.B. den untenstehenden Befehl verwenden (ACHTUNG: Das Ausgabeverzeichnis muss existieren, wenn der Befehl ausgeführt wird, also müssen wir es vorher mit mkdir medicine-eng
erstellen):
python3 createCCWCorpus.py -d CPfromWiki.sqlite -c Medicine --level 2 --lang en -o medicine-eng -a medicine-eng.txt
Die Liste der Artikel (die auch in der Datei medicine-eng.txt gespeichert wird) und die Gesamtzahl der Artikel werden auf dem Bildschirm angezeigt. Um zu bestätigen, dass Sie die Artikel herunterladen möchten, klicken Sie auf Y.
...
...
Desmethylchlorotrianisene
Alpha-Hydroxyetizolam
Cannabielsoin
Deuterated drug
TOTAL PAGES 13554
Download? (Y/N)
Und nun führen wir den gleichen Prozess für die andere Sprache aus (beachten Sie, dass die Namen der Kategorie(n) in Englisch angegeben werden müssen und auch dieser Zielordner zunächst mit dem Befehl mkdir
erstellt werden muss).
python3 createCCWCorpus.py -d CPfromWiki.sqlite -c Medicine --level 2 --lang de -o medicine-deu -a medicine-deu.txt
TOTAL CATEGORIES 350
TOTAL PAGES 3707
Download? (Y/N)
Oder:
python3 createCCWCorpus.py -d CPfromWiki.sqlite -c Medicine --level 2 --lang it -o medicine-ita -a medicine-ita.txt
TOTAL CATEGORIES 350
TOTAL PAGES 3707
Download? (Y/N)
So sieht das Ganze z.B. für Italienisch aus:
Bitte laden Sie diese Artikel (also die aus der Kategorie Medizin) herunter oder andere Artikel, die den Sprachen und Themen entsprechen, an denen Sie am meisten interessiert sind (dazu müssen Sie natürlich den Befehl entsprechend anpassen).
Nach dem Download werden alle Dateien in den Verzeichnissen für die Ausgangs- und Zielsprachen mit dem Programm MTUOC-segmenterDIR.py segmentiert (das Sie bereits Im letzten Block für die Segmentierung verwendet haben):
python3 MTUOC-segmenterDIR.py -i medicine-eng -o medicine-seg-eng -s segment.srx -l English
python3 MTUOC-segmenterDIR.py -i medicine-deu -o medicine-seg-deu -s segment.srx -l German
python3 MTUOC-segmenterDIR.py -i medicine-ita -o medicine-seg-ita -s segment.srx -l Italian
Anschliessend können Sie mit den bekannten Befehlen cat
, sort
, uniq
und shuf
alle Segmente der einzelnen Sprachen zusammenfügen und die Wiederholungen entfernen :
cat ./medicine-seg-eng/* | sort | uniq | shuf > medicine-uniq-eng.txt
cat ./medicine-seg-deu/* | sort | uniq | shuf > medicine-uniq-deu.txt
cat ./medicine-seg-ita/* | sort | uniq | shuf > medicine-uniq-ita.txt
Dann können Sie die erhaltenen Segmente zählen:
wc -l medizin-uniq-*
742062 medizin-uniq-eng.txt
123456 medizin-uniq-deu.txt
654321 Medizin
Und nun können wir sie Dateiinhalte aus den beiden Sprachen "alignieren", d.h. nach möglichen Segmenten suchen, die Übersetzungsäquivalente sind. Wir können dies tun:
Wenn Sie einen Grafikprozessor in unserem Computer haben können Sie folgendermassen vorgehen:
python3 MTUOC-bitext_mining-GPU.py medicine-uniq-eng.txt medicine-uniq-spa.txt medicine-aligned-brut-eng-spa.txt medicine-aligned-brut-eng-spa.txt
Woher weiss ich ich einen Grafikprozessor habe oder nicht? Eine kurze Übersicht finden Sie hier. Wenn Sie keine GPU haben, können Sie folgenden Befehl ausführen (aber denken Sie daran, dass der Prozess sehr langsam sein kann):
python3 MTUOC-bitext_mining.py medicine-uniq-eng.txt medicine-uniq-spa.txt medicine-aligned-brut-eng-spa.txt medicine-aligned-brut-eng-spa.txt
Sie können die Ergebnisse der Prozesse unter den folgenden Links herunterladen (MUSS NOCH ANGEPASST WERDEN):
-
Artikel auf Englisch:(https://github.com/mkappus1/DatenmanagementMTHS24/blob/main/Woche5/wikipedia_medicine_en.zip
-
Artikel auf Deutsch:(https://github.com/mkappus1/DatenmanagementMTHS24/blob/main/Woche5/wikipedia-medicine-de.zip
-
Artikel auf Italienisch:(https://github.com/mkappus1/DatenmanagementMTHS24/blob/main/Woche5/wikipedia-medicine-it.zip
-
Segmentierte Artikel auf Englisch: http://lpg.uoc.edu/seminarioTAN/semana_5/medicine-seg-eng.zip
-
Segmentierte Artikel auf Deutsch: http://lpg.uoc.edu/seminarioTAN/semana_5/medicine-seg-spa.zip
-
Segmentierte Artikel auf Italienisch: http://lpg.uoc.edu/seminarioTAN/semana_5/medicine-seg-spa.zip
-
Ergebnis des Abgleichs (EN-DE): http://lpg.uoc.edu/seminarioTAN/semana_5/medicine-aligned-brut-eng-spa.txt
-
Ergebnis des Abgleichs (EN-IT): http://lpg.uoc.edu/seminarioTAN/semana_5/medicine-aligned-brut-eng-spa.txt
Wenn Sie sich das Ergebnis des Alignments ansehen, werden Sie feststellen, dass in den ersten Positionen englisch-englische Alignments zu finden sind. Das liegt daran, dass die Alignment-Datei so geordnet ist, dass die Alignments mit den höchsten Konfidenzindizes an den ersten Positionen stehen) dass es in den deutschen/italienischen Artikeln auch Segmente in englischer Sprache gibt und diese dann aligniert werden werden. Dies kann jedoch durch Korpusbereinigungstechniken automatisch herausgefiltert werden, was wir nächste Woche sehen werden.
5.5. Direkte Verwendung von Wikipedia-Dumps
Im vorigen Abschnitt haben wir erklärt, wie man mit Hilfe eines speziellen Programms vergleichbare Korpora aus Wikipedia erstellen kann. Das Programm verwendet eine grosse Datenbank, um zu wissen, welche Artikel heruntergeladen werden sollen, aber die Artikel werden direkt von Wikipedia heruntergeladen. Dies führt zu massiven Abfragen auf der Wikipedia-Website, was letztendlich ein Problem für Wikipedia selbst darstellen kann. Um diese massiven Abfragen zu vermeiden, können Sie direkt mit Wikipedia-Dumps arbeiten. Das sind sehr grosse Dateien, die alle Wikipedia-Artikel in einer bestimmten Sprache enthalten.
Wikipedia-Dumps und alle anderen Wikimedia-Projekte können von https://dumps.wikimedia.org/backup-index.html heruntergeladen werden.
Wenn wir zum Beispiel die englische Wikipedia herunterladen möchten, suchen wir auf dieser S eite nach "enwiki" und folgen dem Link. Dasselbe können wir mit der deutschen oder italienischen Wikipedia tun, indem wir nach "dewiki" bzw "itwiki"suchen. Das Problem ist, dass diese Dateien RIESIG sind und der Download daher sehr lange dauert und viel Speicherplatz verbraucht.
Um diesen Teil agiler zu gestalten, werden wir mit zwei Sprachen üben, die kleinere Wikipedias haben. Konkret schlage ich vor, dass wir jetzt mit den rätoromanischen und okzitanischen Wikipedias arbeiten. Alles, was wir tun, wird genau dasselbe sein wie bei grösseren Wikipedias, z.B. den englischen deutschen und italienischen Wikipedias. Aber das Testen wird bei den kleineren Wikipedias viel agiler sein.
Wir laden die Wikipedias herunter:
wget https://dumps.wikimedia.org/rmwiki/20241101/rmwiki-20241101-pages-articles.xml.bz2
wget https://dumps.wikimedia.org/ocwiki/20240501/ocwiki-20240501-pages-articles.xml.bz2
Die heruntergeladenen Dateien sind im bz2-Format komprimiert. UNKOMPRIMIEREN SIE SIE NICHT! Wir werden direkt mit den komprimierten Dateien arbeiten. Dies ist besonders wichtig, wenn Sie mit grossen Wikipedias arbeiten. Den Inhalt können Sie mit bzmore
oder bzcat
anzeigen lassen, anstatt mit more
und cat
.
Werfen Sie einen Blick auf den Inhalt dieser Dateien. Wie Sie sehen können, handelt es sich bei diesen Dateien um XML-Dateien, die verschiedene Informationen über die Artikel und den Text der Dateien selbst enthalten, der im Wiki-Format vorliegt.
5.5.1 Konvertierung des Dumps in Textdateien
Sobald wir die Dumps haben, sind wir daran interessiert, für jeden der interessierenden Artikel eine Textdatei zu extrahieren. Wir können daran interessiert sein, die Texte aller Artikel zu extrahieren, oder wir können uns auf eine Reihe von Kategorien beschränken.
Im Repository https://github.com/aoliverg/dumpsWikipedia stehen Ihnen eine Reihe von Skripten zur Verfügung, die Ihnen diese Aufgabe erleichtern werden.
Mit dem Skript wikipedia2text.py, das mit der Option -h
die Hilfe anzeigt, können wir einen Wikipedia-Dump in Textdateien umwandeln, eine für jeden Artikel:
python3 wikipedia2text.py -h
usage: wikipedia2text.py [-h] -d DUMP_PATH -l LANGUAGE -o OUTDIR [-c CATEGORIES] [-t TITLESFILE]
Script to convert Wikipedia dumps to text files according to a set of categories
options:
-h, --help show this help message and exit
-d DUMP_PATH, --dump DUMP_PATH
The wikipedia dump.
-l LANGUAGE, --language LANGUAGE
`The language code (en, es, fr ...).
`-o OUTDIR, --outdir OUTDIR`
`The output directory.
-c CATEGORIES, --categories CATEGORIES
`A file with one category per line.
-t TITLESFILE, --titlesfile TITLESFILE
`A file where the converted article titles will be stored. By default titles-list.txt
Wenn wir den gesamten Wikipedia-Dump konvertieren wollen (passen Sie den Namen des Dumps an denjenigen an, den Sie heruntergeladen haben (hier das Beispiel für Rätoromanisch und Okzitanisch):
python3 wikipedia2text.py -d rmwiki-20241101-pages-articles.xml.bz2 -l ast -o wikipedia-rm/
python3 wikipedia2text.py -d ocwiki-20240501-pages-articles.xml.bz2 -l ast -o wikipediaoc/
Das Ausgabeverzeichnis, im Beispiel wikipedia-rm, wird erstellt, wenn es noch nicht existiert, und enthält eine Textdatei für jeden Artikel. In der Datei _titles-list.txt _werden die Titel der heruntergeladenen Dateien gespeichert. Wir können mit der Option -t
einen anderen Namen für diese Datei angeben.
In vielen Fällen werden wir jedoch daran interessiert sein, die in Text konvertierten Artikel auf eine Reihe von Kategorien zu beschränken. Zu diesem Zweck können wir eine Textdatei erstellen, z.B. Kategorien.txt, die eine Kategorie pro Zeile enthält. Der Name der Kategorie muss in der Sprache sein, die dem Dump entspricht, mit dem wir arbeiten. Erstellen Sie zunächst eine Textdatei Kategorien, die z.B. XXXMedizinXXX enthält (wenn Sie den Dump in Rätoromanisch verarbeiten). Im nächsten Abschnitt werden wir sehen, wie wir die Kategorien in einer Sprache untersuchen können. Um die Konvertierung auf Artikel in der Kategorie Medizin (oder was immer Sie in der Datei Kategorien.txt haben) zu beschränken, können Sie Folgendes eingeben:
python3 wikipedia2text.py -d rmwiki-20241101-pages-articles.xml.bz2 -l ast -o wikipedia-medicine-rm/ -c Kategorien.txt
python3 wikipedia2text.py -d ocwiki-20240501-pages-articles.xml.bz2 -l ast -o wikipedia-medicine-oc/ -c Kategorien.txt
5.5.2. Die Kategorien erforschen
Um herauszufinden, welche Kategorien in die "Kategoriedatei" aufgenommen werden sollen und somit die generierten Dateien einzuschränken, haben wir mehrere Möglichkeiten:
- Manuelle Option I. Die englische Wikipedia bietet eine Seite mit Kategorien, die nach akademischen Disziplinen geordnet sind: https://en.wikipedia.org/wiki/Outline_of_academic_disciplines. Wenn Sie oben nachsehen, ist die gleiche Seite auch in anderen Sprachen verfügbar. Wenn die Sprache, für die Sie sich interessieren, zu diesen Sprachen gehört, können Sie dort interessante Informationen über die Kategorien erhalten, die Sie interessieren.
- Manuelle Option II. Sie können nach Artikeln zu den Themen suchen, die Sie interessieren, und unten nachsehen, mit welchen Kategorien diese Seiten in Verbindung stehen. Wenn Sie auf diese Kategorie klicken, öffnet sich eine Kategorieseite, die oft Informationen über Unterkategorien enthält. Indem Sie all dies erkunden, können Sie das Kategoriearchiv aufbauen.
- Automatische Option: Im gleichen Repository finden Sie das Programm exploreCategories.py, mit dem Sie die Kategorien erkunden können, zu denen die Artikel gehören, die eine Reihe von Kategorien enthalten, die Sie erkunden möchten. Dieses Programm verfügt auch über die Option -h, die uns die Hilfe anzeigt:
python3 exploreCategories.py -h
usage: exploreCategories.py [-h] -d DUMP_PATH -l LANGUAGE -c CATEGORY -o OUTFILE [--limit LIMIT]
Script to explore categories from a Wikipedia dump
options:
-h, --help show this help message and exit
-d DUMP_PATH, --dump DUMP_PATH
The wikipedia dump.
-l LANGUAGE, --language LANGUAGE
The language code (en, es, fr ...).
-c CATEGORY, --categories CATEGORY
A category or a list of categories separated by :.
-o OUTFILE, --outfile OUTFILE
The output directory.
--limit LIMIT The limit in number of articles found.
Wenn wir zum Beispiel die Kategorien sehen wollen, die mit Medizin verbunden sind, können wir folgendes eingeben:
python3 exploreCategories.py -d rmwiki-20241101-pages-articles.xml.bz2 -l ast -c Medicine --limit 100 -o categories-medicine-rm.txt
Der Prozess ist recht langsam, daher können Sie die Option --limit verwenden, die den Prozess anhält, wenn es eine bestimmte Anzahl von Seiten mit der angegebenen Kategorie gefunden hat (in diesem Beispiel 100). Wenn kein Limit angegeben wird, durchsucht das Programm den gesamten Speicherauszug. Das Programm erstellt die Datei categories-medicine-rm.txt, die die Liste der verwandten Kategorien in absteigender Reihenfolge der Häufigkeit ihres Auftretens enthält, zum Beispiel:
Medizin
Medizinische Fachgebiete
Biologie
Anatomie
Biographien nach Tätigkeit
Biochemie
Medikamente
Ethik
Biophysik
Chemie
Wikipedia:Artikel in einfacher Sprache
Griechische Mythologie
Linguistik
Nobelpreise
Physiologie
Psychologie
Anthropologie
Soziologie
Die Kategorien und ihre Häufigkeit werden ebenfalls auf dem Bildschirm angezeigt:
Medizin 33
Medizinische Fachgebiete 5
Biologie 3
Anatomie 2
Biographien nach Tätigkeit 1
Biochemie 1
Medikamente 1
Ethik 1
Biophysik 1
Chemie 1
Wikipedia:Artikel in einfacher Sprache 1
Griechische Mythologie 1
Linguistik 1
Nobelpreise 1
Physiologie 1
Psychologie 1
Anthropologie 1
Soziologie 1
Wir können diese Datei bearbeiten, um sie an unsere Bedürfnisse anzupassen und sie mit dem oben erläuterten Programm wikipedia2text.py zu verwenden.
Anstelle einer einzelnen Kategorie können Sie zum Beispiel eine Reihe von Kategorien angeben, die durch ":" getrennt sind:
python3 exploreCategories.py -d astwiki-20240501-pages-articles.xml.bz2 -l ast -c "Medizin:Anatomie:Medizinische Fachgebiete" --limit 100 -o categories-medicine-ast.txt