Text+Berg-Korpus

Release_145_v02, 29. Oktober 2011

Übersicht

Im Text+Berg-Projekt digitalisieren und erschliessen wir alpine Texte. Aktuell arbeiten wir an den Jahrbüchern des Schweizer Alpenclub (SAC).

Dieses Release enthält die SAC-Bände der Jahre 1864 bis 2009. Es handelt sich um

  • Das Jahrbuch des SAC (1864-1923)
  • Die ALPEN (1925-2009)
    • Seit 1957 gibt es Die ALPEN in parallelen deutschen und französischen Versionen. Das Release_145 enthält sowohl die deutschen wie auch die französischen Bände von 1957 bis 2009. Die parallelen Bände enthalten grösstenteils übersetzte Artikel, aber (von 1957 bis 1982) auch identische Artikel. Wir haben die Duplikate aus den französischen Bänden entfernt und durch einen Verweis auf den jeweils entsprechenden Artikel im deutschen Band ersetzt. Ausserdem enthalten die übersetzten Artikel je einen Verweis auf den anderssprachigen Artikel im Parallelband, also eine Alignierung der übersetzten Artikel. Wenn die Information verfügbar ist, haben wir die Originalsprache vermerkt (bis 1982).
  • In den Jahren 1870, 1915 und 1924 sind keine Bände erschienen. Deshalb enthält das Release_145 insgesamt 196 Bände (90 Bände von 1864 bis 1956 in je einer Version, plus 53 Bände von 1957 bis 2009 in sowohl deutscher und französischer Version).
  • Insgesamt enthält das Release 36,14 Millionen Wörter (rund 1 Million unterschiedliche Wörter) von gut 87'000 Buchseiten.

OCR-Fehler

Die folgenden Bände wurden manuell kontrolliert und OCR-Fehler (grösstenteils) korrigiert:

  • Vollständig: 1890, 1899, 1901, 1907, 1910, 1911, 1912, 1927, 1928, 1929, 1930, 1933, 1934, 1935, 1945, 1950
  • Teilweise: 1913, 1916, 1923, 1925, 1926

Alle anderen Bände wurden nach dem OCR automatisch korrigiert. Dabei wurden zunächst die Ausgaben von zwei unterschiedlichen OCR-Systemen verglichen und automatisch die "beste" Lösung gewählt. Ausserdem wurden "typische" OCR-Fehler wie 'ii' --> 'ü' korrigiert. Andere OCR-Fehler sind weiterhin enthalten.

Format

Wir verteilen die Bände in einem XML-Format mit Artikelstruktur (Titel, Autor), mit Tokenisierung und Satzendeerkennung, Sprachidentifikation pro Satz, Fussnoten und Bildunterschriften, Part-of-Speech Tags und Lemmas (nach Massgabe des PoS-Taggers).

Hinweise zur Tokenisierung

Bei der Tokenisierung haben wir die folgenden Entscheidungen getroffen.

  1. Bei Zusammenschreibungen mit Apostroph wird aufgetrennt. Im Deutschen wird vor dem Apostroph aufgetrennt (z.B. geht's --> geht + 's), im Französischen und Italienischen wird hinter dem Apostroph aufgetrennt (z.B. l'eau --> l' + eau; jusqu'au --> jusqu' + au). Im Französischen gibt es eine Ausnahmeliste mit wenigen Wörtern, die nicht aufgetrennt werden (z.B. aujourd'hui).
  2. Trennstriche am Zeilenende werden vom OCR-Programm durch einen weichen Trennstrich repräsentiert, wenn das Wort im Lexikon des OCR-Systems enthalten ist. Sonst verbleibt der Trennstrich im Wort. Wir entfernen solche Trennstriche, wenn das Wort ohne Trennstrich häufiger im Korpus enthalten ist als mit.
  3. Akronyme, deren Buchstaben mit Punkt getrennt sind (z.B. S.A.C. oder A.A.C.Z.) werden als ein Token betrachtet. Dies ist für die häufigsten Akronyme implementiert.
  4. Doppelpunkt und Semikolon markieren nur dann ein Satzende, wenn danach ein Satz kommt, der mindestens 10 Wörter und darunter mindestens ein Verb enthält.

Hinweise zur Sprachidentifikation

  1. Die Sprachidentifikation erfolgt automatisch mit dem Programm Lingua-Ident von Michael Piotrowski. Wir ermitteln damit automatisch die Sprache für jeden Satz, der länger ist als 40 Zeichen. Bei kürzeren Sätzen ist das Programm nicht zuverlässig, und es wird deshalb die Sprache des Artikels eingesetzt. Zur Zeit erkennt das Programm Sätze in Deutsch, Französisch, Italienisch, Rätoromanisch und Englisch.
  2. Nach der Erkennung eines Satzes als Deutsch wird geprüft, ob es sich möglicherweise um Schweizer Mundart handelt. Diese Prüfung basiert auf einer Liste von häufig gebrauchten Mundart-Wörter. Wenn ein Satz mehr als 10% Mundart-Wörter enthält, wird er als CH-DE markiert.

Hinweise zum Part-of-Speech Tagging

  • Das PoS-Tagging erfolgte mit dem TreeTagger und den standardmässig verfügbaren Parameter-Dateien für das Deutsche, Italienische und Englische. Informationen über die verwendeten Tagsets finden sich hier.
  • Für das Französische haben wir eine Parameter-Datei für den TreeTagger auf der Basis der Le Monde-Treebank erstellt. Das Tagset findet sich hier.
  • Der Tagger wurde nicht eigens für die Berg-Dokumente trainiert, und es sind deshalb fehlerhafte Annotationen besonders bei den älteren Texten zu erwarten.
  • Sätze in Schweizer Mundart (CH-DE) erhalten PoS-Tags des Deutschen.
  • Sätze in Rätoromanisch erhalten keine PoS-Tags, da wir für diese Sprache keinen PoS-Tagger haben.
  • Wenn eine Wortform als geographischer Name (oder als Teil eines geographischen Namens) erkannt, wird ihr immer das jeweilige PoS-Tag für Eigennamen zugewiesen (Beispiele: DE Matterhorn --> NE, FR Cervin --> N_P). Dieser Automatismus fehlt bisher für die erkannten Personennamen.
  • Der PoS-Tagger kennt nur wenige römische Zahlen (XII, CVI). Deshalb weist der PoS-Tagger römischen Zahlen oft fehlerhafte PoS-Tags zu. Wir setzen deshalb die PoS-Tags für römische Zahlen mit Hilfe eines speziellen Programms.

Hinweise zur Lemmatisierung

  • Die Lemmas (= Grundformen der Wörter) werden prinzipiell durch den PoS-Tagger zugewiesen. Der PoS-Tagger weist nur dann ein Lemma zu, wenn er dieses aus dem Trainingskorpus kennt. Hat der PoS-Tagger zu einer Wortform und einem bestimmten PoS-Tag zwei oder mehr Lemmata im Trainingskorpus gesehen, weist er alle Lemmas zu (Beispiel: Wortform = spurten ==> Lemma=spurten|spuren).
  • Wenn eine Wortform als geographischer Name (oder als Teil eines geographischen Namens) erkannt, wird ihr die jeweilige Wortform als Lemma zugewiesen. Wenn die Wortform auf -s endet und dies eine Genitivform ist, dann wird die Grundform als Lemma zugewiesen (Matterhorns --> Matterhorn, Monte Rosas --> Monte Rosa). Dieser Automatismus fehlt bisher für die erkannten Personennamen.
  • Für das Deutsche werden Wortformen, für die der PoS-Tagger kein Lemma geliefert hat, durch das System Gertwol analysiert. Wenn Gertwol die Wortform kennt und eine Analyse liefert, die zum PoS-Tag passt, wird das von Gertwol berechnete Lemma zugewiesen.
  • Deutsche Verbformen, deren Präfix abgetrennt im Satz vorkommen, erhalten das volle Lemma zugewiesen (Beispiel: fängt ... an --> anfangen).
  • Trotz all dieser Massnahmen erhalten 9% aller Tokens kein Lemma.

Hinweise zum XML-Format:

  • Inhaltsverzeichnisse, Abbildungsverzeichnisse sowie Buchende-Indizes wurden aus dem Korpus eliminiert.
  • Die Seitenumbrüche sind mit der XML-Marke <pb> angegeben. Die Attribute zu <pb> bezeichnen einerseits die Nummer der physikalischen Seite (d.h. der Nummer des Scan-Images im Stapel) und andererseits die gedruckte Seitenzahl. Die Identifikation der Seitenzahl ist nicht trivial, da es Seiten gibt, auf denen die Zahl nicht erscheint (z.B. auf der Startseite eines Kapitels), aber auch Seiten, die nicht gezählt werden (z.B. Seiten mit Vollbildern). Dieses Problem führt auch dazu, dass die Erkennung des ersten Artikels ausserordentlich schwierig sein kann. Falls der erste Artikel nicht erkannt wurde, wird ein Artikel 0 eingefügt, damit der Text dieses Artikels nicht verloren geht.
  • Der Beginn und das Ende eines Artikels werden mit der XML-Marke article markiert. Zusätzlich enthält die Marke tocEntry Angaben zu Titel, Autor und Sprache aus dem Inhaltsverzeichnis.
  • Die Benennungen der XML-Marken sind weitgehend TEI-konform.
XML-Marke Bedeutung Attribute
book Buch id (identifier)
article Artikel n (number), duplicate-of, translation-of, orig-lang (original language)
div Absatz -
caption Bildlegende -
footnote Fussnote -
graphic Abbildung url
pb Seitenumbruch facs (facsimile), n (number)
s Satz n (number), lang (language)
tocEntry Eintrag aus dem Inhaltsverzeichnis title, author, lang (language), category
w Wort pos (Part-of-Speech), lemma, n (number)

Markierung der Namen von Bergen, Gletschern und Hütten

  1. Zur automatischen Erkennung von Bergnamen verwenden wir die Namen aus der SwissTopo-Liste "SwissNames25". Für das aktuelle Release haben wir aus dieser Liste die Namen der Kategorien "Massiv, HGipfel, KGipfel, GGipfel, Grat" extrahiert und mit genauer Übereinstimmung und mit Genitiv-Endung -s im Korpus gesucht. Es werden auch Schreibvarianten mit Bindestrich (z.B. Monte-Rosa) und Zusammenschreibungen (z.B. Monterosa) gefunden. Um falsche Treffer zu vermeiden, wurden die auffälligsten Homographen entfernt. Siehe unten.

    Die Swisstopoliste wurde neu mit Wortformen ergänzt, die im Korpus vorkommen und die die für Bergnamen typischen Suffixe -horn (mit den Pluralformen -hörner, -hörnern), -stock und -grat  enthalten. Um die Präzision hoch zu halten wurde aus canoo.net eine Liste von Gattungsnamen extrahiert, die auf  -horn, -stock, -grat enden. Diese Wortformen wurden aus dem erweiterten Gazetteer entfernt. Beide Listen wurden zusätzlich manuell bereinigt, insbesondere wurden alle Formen des Typs 'Himmelsrichtung + grat', also z.B. Nordgrat, Südsüdostgrat aber auch SEgrat etc. entfernt.

    Weiter wurden zweiteilige Namen hinzugefügt, die mit den folgenden Wortformen beginnen und im Korpus belegt sind: Aiguille, Aiguilles, Cime, Cima, Dent, Dents, Mont, Monte, Piz, Pizzo, Vanil.

    Insgesamt wurde das Gazetteer um über 4200 Namen erweitert. Viele dieser neuen Namen sind eigentlich bekannte Namen, die aber OCR-Fehler enthalten. Beispiele: Diissistock zu Düssistock, Aletsehhorn zu Aletschhorn

    Der Bergnamensliste haben wir zudem die wichtigsten Exonyme hinzugefügt. Diese sind: Cervin frz. zu Matterhorn, Pilate frz. zu Pilatus, Clarides frz. zu Clariden, Sentis und Saentis frz. zu Säntis.

    Die Bergnamenliste umfasst somit mehr als 10'000 Einträge

  2. Zur automatischen Erkennung von Gletschernamen verwenden wir die Namen aus der SwissTopo-Liste "SwissNames25". Die Namensliste umfasst so 367 Einträge.
  3. Zur automatischen Erkennung von Hüttennamen verwenden wir die Namen aus der SwissTopo-Liste "SwissNames25". Die Namensliste umfasst so 519 Einträge.

Die erkannten Toponyme sind je in einer separaten Datei aufgelistet und verweisen auf die Tokenbezeichner im Korpustext.

Beispiel: Zur Jahrbuch-Datei 1890 SAC-Jahrbuch_1890_mul.xml gibt es die Bergnamen-Datei SAC-Jahrbuch_1890_mul-ner.xml Dort finden sich Einträge wie:

<g type="mountain" stid="7307916" span="2-168-14" id="g_33" level="geo"/>

<g type="mountain" stid="0" span="2-268-9" id="g_41" level="geo"/>
<g type="mountain" stid="18300407" span="8-454-20, 8-454-21" id="g_249" level="geo"/>
  1. Der erste Eintrag verweist auf das Token 2-180-7, d.h. Artikel 2, Satz 180, Token 7. In der Jahrbuch-Datei finden wir dort das "Finsteraarhorn". Dieses hat die SwissTopo-Id "7307916". Unter dieser Identifikationsnummer bietet SwissTopo Zusatzinformationen: Höhe des Berges (4273 m), Gemeinde (Fieschertal), Kanton (Wallis).
  2. Der zweite Eintrag verweist auf das Token 2-274-9 "Schafberg". Dieser Eintrag enthält z.Zt. keine SwissTopo-Id, da dieser Bergname mehrfach in der SwissTopo-Liste auftritt und wir gegenwärtig kein Disambiguierungsmodul haben, das zuverlässig entscheiden kann, welcher Berg gemeint ist.
  3. Der dritte Eintrag verweist auf die Tokenfolge 8-501-20 und 8-501-21 "Punta Nera" mit der SwissTopo-Id "18300407". Auf diese Weise beschreiben wir mehrgliedrige Bergnamen.

Die folgenden Homographen wurden manuell aus der Bergnamenliste entfernt.

Achs, Aff, Atlas,
Bire, Blueme, Burg,
Chamm, Chanzel, Chilchli, Chirchli, Chopf, Chrüz, Chulm, Cima,
Egg, Esel,
Fil, First, Freiheit,
Gibel, Grat, Grätli, Gwächte, Gwächten,
Hahnen, Hane, Hanen, Haupt, Hengst, Heustock, Heustöckli, Hora, Horen, Horn, Horst, Hubel, Huet, Höch,
Kamel, Kamm, Krone,
Leist, Luser, Läden, Lückli,
Mittelgrat, Moor, Mörder,
Nase, Nasen, Nüssen,
Ochs, Ochse, Ofen, Ostgrat,
Pfaff, Pfaffe, Pfaffen,
Rad,
Sattel, Schopf, Spital, Spitz, Spitzli, Stand, Stein, Stock, Stollen, Stoss, Stube, Stöckli, Sunnig, Sätteli,
Tschudi, Tuba, Tube, Turm, Turner,
Wart, Wasserscheide
Ziger

Markierung der Personnamen

Attribute für die Erkennung

Die automatische Erkennung von Personennamen basiert auf der Auffindung von Nachnamen. Nachnamen-Kandidaten sind Strings, die mit einem Großbuchstaben beginnen und mindestens drei Zeichen lang sind. Direkt vor einem Nachnamen kann optional eines der folgenden Adelsprädikate stehen: van, de, di, du, von, v., della, da, des, la, d', dell'. Um als Nachname erkannt zu werden, muss ein Kandidat zusätzlich mindestens eine der folgenden Bedingungen erfüllen:
  • Er muss in der aktuellen Jahrbuch-Datei bereits einmal vorgekommen sein. Falls er homonym ist mit einem Wort der Sprache, muss er bereits einmal im aktuellen Artikel vorgekommen sein. Ob ein Kandidat auch ein Wort der Sprache ist, wird über einen Abgleich mit einer Liste von Wörtern, für die nach Gertwol mindestens eine Analyse als Nicht-Eigenname existiert, ermittelt.
  • Er steht nach einem Kategorienblock, d.h. nach einer Berufsbezeichnung, einer Anrede oder einem akademischen Titel bzw. einer Kombination aus diesen drei Kategorien. Beispiele: Herr Prof., Herr Ober-Ingenieur, Fräulein, Dr.
    Die Erkennung von Berufsbezeichnungen erfolgt mittels der Datenbank der Schweizer Berufsnomenklatur 2000. Die Liste wurde folgendermaßen bearbeitet und erweitert:
    • Manuelles Filtern: Es wurden Einträge wie Ausläufer, Faktor oder Abstecher aufgrund der zu erwartenden Ambiguität entfernt.
    • Restringierte Berufsbezeichnungen: Es wurden in der Liste Bezeichnungen markiert, die sich eignen, um Personennamen aufzufinden, die aber nicht im eigentlichen Sinne Berufsbezeichnungen sind, z.B. Meister, Retter, Verfasser, Spezialist.
    • Erweiterung um alte Formen: Es wurden durch Anwendung folgender Regeln künstlich alte Rechtschreibformen generiert: t => th; z => c; k => c; ier => ir. Dies führte zu zusätzlichen Treffern wie Karthograph, Wirthin, Civilingenieur, Bundesrath oder Diacon.
    • Weitere restringierte Berufsbezeichnungen: Es wurden manuell die Wörter Seilschaft und Freund als restringierte Berufsbezeichnungen eingeführt, da im deutschen Korpus oft Wendungen wie Freund Peter Müller oder Seilschaft Peter Müller und Guido Metzger auftauchen.
    Die Liste der Berufsbezeichnungen umfasst ca. 15'000 Einträge.
  • Er steht nach beliebig vielen Vornamen, wobei auch Abkürzungen berücksichtigt werden. Eine Abkürzung besteht aus einem Großbuchstaben gefolgt von einer variablen Anzahl Kleinbuchstaben und einem Abkürzungspunkt. Beispiele: J., Joh., Joach., A., Aeg., Aegid. Es existiert eine Liste mit Abkürzungen, die nicht als Vornamen erkannt werden, etwa St. (Sankt), Gd. (Gemeinde), Nr. (Nummer), Bde. (Bände).
    Zur Erkennung von vollen Vornamen wird auf eine Liste von ca. 58'000 Vornamen zurückgegriffen. Im Rahmen einer manuellen Filterung wurden zuvor potentiell ambige Wortformen wie Tod, Lücke oder Birke entfernt. Die Vornamen-Liste enthält auch Angaben zum Geschlecht des jeweiligen Eintrags. Nur wenn dieses eindeutig ist (dies ist z.B. bei Andrea nicht der Fall), wird es später in der XML-Ausgabe berücksichtigt. Auch Anreden (Herr, Fräulein usw.) vergeben Geschlechtsattribute.
Die Listen der Berufsbezeichnungen und akademischen Titel wurden mit Blick auf die Personennamenerkennung fürs Deutsche zusammengestellt. Die Listen der Vornamen, Adelsprädikate und Anreden umfassen auch Einträge fürs Französische. In einem nächsten Schritt soll die Personennamenerkennung fürs Französische ausgeweitet werden, indem auch für diese Sprache Listen mit Berufsbezeichnungen und akademischen Titeln gesammelt werden.

Ausgabe der erkannten Personennamen

Die Ausgabe der Personennamenerkennung wird mit jener der Bergnamenerkennung in einer separaten XML-Datei zusammengeführt. Erfasst sind für die Personennamenerkennung folgende Attribute: address (Anrede), titles (akademische Titel), firstname, lastname, gender, profession (wobei hier keine restringierten Berufsbezeichnungen berücksichtigt werden) sowie die zugehörigen Indexpositionen.
Die Unterscheidung verschiedener Entitäten innerhalb eines Nachnamens (Koreferenz-Erkennung) geschieht auf Jahrbuch-Ebene mithilfe von Vornamen (falls vorhanden). Dazu werden folgende Schritte geprüft:

  • Falls für einen Nachnamen kein Vorname bekannt ist, werden alle Vorkommen des Nachnamens zu einer Entität (person) in der XML-Ausgabe zusammengefasst.
  • Falls für einen Nachnamen genau ein Vorname bekannt ist, werden allfällige Einzelauftreten dieses Nachnamens dem Vornamen zugeschlagen. Beispiel: Taucht ein Nachname Ferrari sowohl alleine als auch in Verbindung mit dem Vornamen Casimiro auf, wird für alle Vorkommen zusammen eine einzige Entität angelegt.
  • Falls für einen Nachnamen mehrere Vornamen bekannt sind, werden allfällige Einzelauftreten dieses Nachnamens separat aufgeführt. Beispiel: Kommt ein Nachname Fischer alleine, in Verbindung mit dem Vornamen Scott und in Verbindung mit dem Vornamen Miriam vor, werden drei Entitäten angelegt: Fischer, Scott Fischer, Miriam Fischer.
  • Falls für eine Abkürzung genau ein Vorname mit gleichem Anfangsbuchstaben bekannt ist, werden Vorname und Abkürzung zu einer Entität zusammengefasst. Beispiel: A. und Aegidius
Beispiel-Ausgabe:
<person id="90">
	<address>Herr</address>
	<titles></titles>
	<firstname>Ignaz</firstname>
	<lastname>Rieder</lastname>
	<gender>M</gender>
	<profession>Pfarrer</profession>
	<references>
		<reference>
			<positions>
				<position>15-23-4</position>
				<position>15-23-5</position>
				<position>15-23-6</position>
			</positions>
			<positions>
				<position>35-473-16</position>
				<position>35-473-17</position>
			</positions>
		</reference>
	</references>
</person>

<person id="137">
	<address>Herr</address>
	<titles></titles>
	<firstname>P., Peter</firstname>
	<lastname>Merian</lastname>
	<gender>M</gender>
	<profession>Rathsherr</profession>
	<references>
		<reference>
			<positions>
				<position>18-454-5</position>
				<position>18-454-6</position>
			</positions>
			<positions>
				<position>18-30-37</position>
				<position>18-30-38</position>
				<position>18-30-39</position>
				<position>18-30-40</position>
			</positions>
			<positions>
				<position>18-45-37</position>
				<position>18-45-38</position>
			</positions>
		</reference>
	</references>
</person>

Verwendung und Zitierung

Das Korpus darf nur für wissenschaftliche Zwecke und nicht kommerziell verwendet werden. Die Herkunft der Daten (www.textberg.ch) muss immer angegeben werden. Für das Zitieren des Korpus schlagen wir vor:

@MISC{TextBerg_Release_145_v02_2011,
  editor = {Noah Bubenhofer and Martin Volk and Adrian Althaus and Magdalena Jitca and David Klaper and Rico Sennrich},
  year = 2011,
  title = {{Text+Berg}-Korpus (Release 145_v02)},
  note = {Digitale Edition des Jahrbuch des SAC 1864-1923 und Die Alpen 1925-2009},
  howpublished = {XML-Format},
  school = {Institut für Computerlinguistik, Universität Zürich}
}

Danksagungen

Wir danken Hanno Biber und dem Team des Austrian Academy Corpus (AAC) in Wien für das Scannen der ersten 10 Bände (1864 - 1874).

Wir danken Bruno Eugster und der Firma DTI in Wil für Unterstützung beim Scannen der Bände 1996 bis 2000.

Wir danken den Studierenden und Mitarbeitern, die beim Scannen, bei der Korrektur und der Verarbeitung der Jahrbücher mitgewirkt bzw. diese massgeblich durchgeführt haben:

  • Adrian Althaus (Koordination)
  • Sara Bärtschi
  • Maya Bangerter (Programmierung)
  • Adrian Beer
  • Sarah Ebling (Programmierung)
  • Lenz Furrer (Programmierung)
  • Anne Göhring
  • Reto Gubelmann
  • Alexandra Hartmann
  • Stefanie Herzig
  • Silvan Jegen
  • Magdalena Jitca (Programmierung)
  • David Klaper (Programmierung)
  • Stéphanie Lehner
  • Torsten Marek (Programmierung)
  • Nicole Michel
  • Stephanie Odok
  • Beni Ruef (Programmierung)
  • Patricia Scheurer
  • Rico Sennrich (Programmierung)
  • Silvan Tarnutzer
  • Martin Warin (Programmierung)

Wir danken dem Schweizerischen Nationalfond für finanzielle Unterstützung im Rahmen des Projekts "Domain-specific Statistical Machine Translation".

Wir danken dem Schweizer Alpenclub (SAC) für die Unterstützung bei der Beschaffung der Bücher.

Noah Bubenhofer, Martin Volk