Sie sind auf Seite 1von 60

Bachelorarbeit

Analyse der Named Entity Recognition des KI-Modells BERT in


einer spezifischen Sprachdomäne

zur Erlangung des akademischen Grades Bachelor of Science (B. Sc.)


In Zusammenarbeit mit der techmatrix consulting GmbH

Andreas Horvat

Studiengang: Informatik
Prüfer: Prof. Dr. Robert Gold
Zweitprüfer: Prof. Dr. Franz Regensburger
Betreuer: Robert Hauser, Markus Singer
Semester: Wintersemester 2020/2021
Anmeldedatum: 05.11.2020
Abgabedatum: 13.01.2021
Matrikel-Nr.: 00076036
Inhaltsverzeichnis

1 Einführung 6
1.1 techmatrix consulting GmbH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Ziel der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Grundlagen 8
2.1 Natural Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Natural Language Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 Natural Language Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Tokenization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3 Stemming and Lemmatization . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.4 Part of Speech Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.5 Chunking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.6 Named Entity Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Künstliche Intelligenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.1 Chancen und Risiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.2 Kategorien der künstlichen Intelligenz . . . . . . . . . . . . . . . . . . . . . . 24
2.4 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4.1 Lernalgorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4.2 Unsupervised Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.3 Supervised Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.4 Fluch der Dimensonalität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5 Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.1 Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.2 Architektur von Deep Neural Networks . . . . . . . . . . . . . . . . . . . . . . 30
2.5.3 Training von neuronalen Netzen . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6 Bidirectional Encoder Representations from Transformers . . . . . . . . . . . . . . . 31
2.6.1 Sequence Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.6.2 Architektur von BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.6.3 Pre Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.4 Fine Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3 Praxis 43
3.1 Vorüberlegungen für die NER Fine Tunings . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.1 Trainingsdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.2 Testdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.3 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2 Versuchsdurchführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.1 Vorbereitung der Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.2 Fine Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.3 Evaluation der Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Inhaltsverzeichnis

4 Zusammenfassung 55

3
Erklärung

gemäß § 18 Abs. 4 Nr. 7 APO THI

Ich erkläre hiermit, dass ich die Arbeit selbständig verfasst, noch nicht anderweitig für Prüfungszwe-
cke vorgelegt, keine anderen als die angegebenen Quellen oder Hilfsmittel benützt sowie wörtliche
und sinngemäße Zitate als solche gekennzeichnet habe.

............................. .............................
Ort, Datum Unterschrift
Abstract

Viele Unternehmen verwalten heutzutage eine große Menge an digitalen Dokumenten. Die Suche
nach einem expliziten Dokument ist oftmals keine triviale Aufgabe. Hierbei unterstützt die Named
Entity Recognition bei der Klassifizierung von Dokumenten und der Suchmaschinenoptimierung. Die
Bachelorarbeit analysiert das Potenzial von domänenspezifischen Trainingsdaten für die Named En-
tity Recognition und prüft die folgende Hypothese. BERT feinabgestimmt mit domänenspezifischen
Trainingsdaten, erzielt einen höheren F-Score in der gleichen Sprachdomäne als mit Trainingsda-
ten aus einer allgemeinen Sprachdomäne. In einem Experiment wurden dafür zwei feinabgestimmte
BERT Modelle mit den gleichen randomisierten Testdaten aus der Sprachdomäne Musik evaluiert.
Für ein vortrainiertes BERT Modell wurden auch die Trainingsdaten im Fine Tuning aus dem
Kontext Musik gewählt. Im Unterschied dazu verwendete das Vergleichsmodell Trainingsdaten aus
Zeitungsartikeln. Die Evaluation beider Modelle mit den Testdaten konnte die Hypothese bestätigen.
BERT feinabgestimmt mit den domänenspezifischen Trainingsdaten erzielte in allen Entitätskate-
gorien einen höheren F-Score. Der größte Vorsprung von 70 % wurde in der Kategorie Lokation
erreicht. Eine genauere Analyse vom gewählten Musikdatensatz zeigte teilweise fehlerhafte Annota-
tionen der Tokens. Demzufolge wären die Ergebnisse weniger unterschiedlich, ohne die verrauschten
Daten aber weiterhin ein besserer F-Score erkennbar.
1 Einführung

1.1 techmatrix consulting GmbH

Die Firma techmatrix consulting GmbH wurde im Jahr 2001 von Robert Hauser gegründet. Seit
2013 leiten Robert Hauser mit Partner Markus Singer gemeinsam die Geschäftsführung. Seinen
Standort hat die techmatrix seit 01.09.2008 in Haar bei München. Von Beginn an zählen Innovati-
on, Flexibilität und Qualität zu den wichtigsten Eigenschaften und werden unter dem Motto „Wir
schaffen digitale Zukunft“ umgesetzt. Als Besonderheit des Unternehmens zählt unter anderem die
100% Unabhängigkeit. Der in Bayern ansässige IT-Dienstleister zählt zu seinem Produktportfolio
die drei Kernbereiche Projektorganisation, Softwareentwicklung und Datenmanagement, welche in
Kombination auch das Alleinstellungsmerkmal von techmatrix ausmachen. Innerhalb dieser Bereiche
sind die Beratung, Konzeption und Entwicklung von Individual- und Standardlösungen ausschlag-
gebend für die erfolgreiche Positionierung auf dem Markt. Mit nationalen und auch internationa-
len Partnerschaften und Kunden konnten bereits mehr als 40 Projekte zielführend abgeschlossen
und eine Preferred Partnerschaft für die Region DACH erreicht werden. Innerhalb der Projekte
übernimmt die techmatrix Teil- sowie auch Komplettprojektverantwortung, ebenso wie begleitende
Aufgaben bei mittelständischen und großen Unternehmen. Mittlerweile ist die techmatrix mit zwei
Standorten, in Haar bei München sowie in Ingolstadt, auf dem deutschen Markt vertreten. Zurzeit
werden insgesamt 32 Mitarbeiter, wovon 22 als fixe Mitarbeiter zählen, an beiden Standorten sowie
remote beschäftigt. Das Zusammenspiel verschiedener Generationen und die Internationalität der
Mitarbeiter spiegelt auch hier die Qualität des Unternehmens wider.

1.2 Problemstellung

Aufgrund der stetig voranschreitenden Digitalisierung innerhalb vergangener Jahrzehnte verwalten


Unternehmen vermehrt ihre Dokumente digital. Die Suche nach einem ganz bestimmten Dokument,
in der gesamtheitlichen Systemlandschaft eines Großunternehmens mit mehreren Zehntausenden
Angestellten, wird daher zunehmend komplexer. Suchmaschinen müssen aus diesem Grund fortlau-
fend optimiert werden, damit die Suchergebnisse den Nutzer, in diesem Fall die Mitarbeiter eines
Unternehmens, zufriedenstellen. Eine Möglichkeit zur Optimierung einer solchen Suchmaschine ist
es, wichtige Informationen zu extrahieren. Im Forschungsfeld Natural Language Processing (NLP)
werden Informationen z.B. mit der Aufgabenstellung Named Entity Recognition (NER) extrahiert.
Zum einen ist es möglich, in der Suchanfrage die benannten Entitäten zu extrahieren. Außerdem
können die gelieferten Dokumente im Suchergebnis zuvor mittels der NER analysiert werden. Die
Extraktion der Entitäten aus der jeweiligen Suchanfrage des Nutzers und den Dokumenten er-
möglicht einen Abgleich der resultierenden Mengen. Der Grad der Übereinstimmung der jeweiligen
Entitäten und deren Entitätsbeziehungen sind maßgebend für die Auswahl der Dokumente im Su-
chergebnis. Ein positives Sucherlebnis kann dadurch erzielt werden, indem die Dokumente aus der
Suchergebnismenge in absteigender Übereinstimmung präsentiert werden. Eine optimierte Extrakti-
on von Entitäten bietet somit eine Grundlage für eine bessere Nutzererfahrung mit Suchmaschinen.
Die Bachelorarbeit wird die Optimierung der NER detaillierter untersuchen.
1 Einführung

1.3 Ziel der Arbeit

„Bidirectional Encoder Representations from Transformers“ [9, S. 1] (BERT) ist ein bereits vortrai-
niertes Deep Learning Modell und wird für verschiedene Problemstellungen aus dem Forschungsfeld
NLP verwendet. Allerdings ist das Modell nur für ein allgemeines Sprachverständnis vortrainiert
worden. Für eine gezielte Aufgabenstellung wie die NER ist eine weitere Trainingsphase notwendig,
das sogenannte Fine Tuning [9]. In der Bachelorarbeit wird BERT einmal anhand von Trainingsda-
ten aus einer spezifischen Sprachdomäne auf die NER feinabgestimmt. Zusätzlich dient ein feinab-
gestimmtes Modell mittels allgemeiner Sprachdomäne für einen qualitativen Vergleich der beiden
Modelle. Die dafür verwendeten Testdaten werden aus dem gleichen spezifischen Kontext wie für
das eine Fine Tuning entnommen. Als Maßstab für den Vergleich sollen die beiden resultierenden
F-Scores aus der Analyse der Testdaten verwendet werden. Aus dieser Grundüberlegung hat sich
folgende Forschungsfrage für die Bachelorarbeit ableiten lassen: Bewirkt ein Fine Tuning für die
NER mit spezifischen Trainingsdaten einen besseren F-Score in den Testdaten von der gleichen
Sprachdomäne, als es mit Trainingsdaten aus einer allgemeinen Sprachdomäne möglich wäre? Ziel
der Bachelorarbeit ist es, anhand von dem Vergleich der F-Scores die nachfolgende Hypothese, das
dass mit spezifischen Trainingsdaten feinabgestimmte Model eine bessere Erkennungsrate in den
Testdaten erzielt, zu beweisen. Im positiven Fall wird damit gezeigt, dass eigens erstellte Trainings-
daten lohnenswert in einer spezifischen Sprachdomäne sein können. Es besteht allerdings das Risiko,
nach dem Fine Tuning mit speziellen Trainingsdaten mehr fehlerhafte Entitäten in den Sätzen zu
erkennen als das Vergleichsmodell. Dementsprechend muss dieses Risiko einkalkuliert werden und
eine Verbesserung kann daher nur optional entstehen. Die Fortschritte im Verlauf der Umsetzung
sollen technisch und schriftlich dokumentiert werden.

7
2 Grundlagen

2.1 Natural Language

Zu den natürlichen Sprachen zählen im Gegensatz zu den formalen alle, die sich ohne formale Kon-
strukte durch das tägliche Schreiben und Sprechen der Menschen entwickelt haben [14]. Die Sprachen
der Pflanzen, Tiere und Insekten entwickeln sich ebenfalls ohne formale Konstrukte. Als Beispiel
dienen Honigbienen, sie kommunizieren mithilfe eines Wackeltanzes mit den anderen Bienen im
Bienenstock über die Lage einer wertvollen Nahrungsquelle in Relation zum aktuellen Sonnenstand.
Linguisten sind sich dennoch nicht einig darüber, ob sie zu den natürlichen Sprachen zählen oder
nicht [30]. Die natürlichen Sprachen sind oftmals nicht eindeutig zu verstehen. Wir Menschen haben
unsere Kommunikation dahingehend optimiert, insbesondere kürzere Wörter mehrfach zu verwen-
den und abhängig vom Kontext, die genaue Bedeutung zu erkennen. Die semantische Analyse eines
Lesers oder eines Zuhörers findet oftmals nicht bewusst statt und bedient sich an den gesammelten
Erfahrungswerten der Person. Aus diesem Grund wird von der gesamten Menge an Wörtern einer
Sprache nur ein kleiner Anteil davon tatsächlich im Alltag zum Sprechen oder Schreiben genutzt.
Anhand der englischen Sprache wird dies besonders deutlich, dort umfasst das Vokabular insgesamt
rund 170 000 Wörter. In der Praxis werden allerdings nur 10 000 Wörter davon im täglichen Leben
verbalisiert. Für uns ist die Verwendung von vielseitigen Wörtern natürlich wesentlich einfacher, als
sich für jede einzelne Bedeutung ein separates Wort zu merken. Anders ist es hingegen bei Com-
putern. Die Extraktion der Bedeutung des Wortes aus dem Kontext ist für Maschinen eine nicht
triviale Aufgabe. Neben teilweise mehrdeutigen Wörtern sind sprachliche Stilmitteln wie z.B. Iro-
nie, Sarkasmus, Humor und Metaphern zusätzlich erschwerend bei dem Versuch, die beabsichtigte
Bedeutung herauszufinden [14]. Im nächsten Abschnitt 2.2 Natural Language Processing werden die
Schritte für einen Umgang mit dieser Problemstellung behandelt.

2.2 Natural Language Processing

Beim Natrual Language Processing werden Verfahren aus der Informatik, Computerlinguistik und
der künstlichen Intelligenz genutzt. Die Verfahren konvertieren unstrukturierte Text- und Sprach-
daten in strukturierten Daten. Bei der Verbreitung dieser maschinell lesbaren Daten wird bspw.
Wissen zur Domäne erlangt oder die Semantik vom Input analysiert. Auf Basis der Informatio-
nen können zum Input passende Antworten in natürlicher Sprache generiert werden. Unter diesem
Aspekt beinhaltet die NLP zwei weitere Teilgebiete, die Natural Language Understanding (NLU)
und die Natural Language Generation (NLG). Bei der Umsetzung der Bereiche kommen häufig
Ansätze aus dem Machine Learning mit den unterschiedlichen Lernmethoden zum Einsatz [18]. Der
Abschnitt 2.4 Machine Learning wird dabei genauer auf die Funktionsweise eingehen.
2 Grundlagen

Anwendung

Conversational Artificial Intelligence ist ein geeignetes Beispiel für NLP und wird häufig als Hilfsmit-
tel für „die Interaktion von Maschine zu Mensch, von Mensch zu Maschine und auf die wechselseitige
Mensch-Maschinen-Kommunikation“ [38, S.1] verwendet. In dieser Technologie wird von weltweit
agierenden IT Unternehmen viel Forschungsarbeit geleistet, und das erfolgreich, denn die wohl am
weit verbreitetsten Produkte wie der Google Assistent, Amazon Alexa und Microsoft Cortana stam-
men von den Big Tech Konzernen. Die erheblichen Fortschritte in der Erkennung und Erstellung von
natürlicher Sprache in den letzten Jahren basieren hauptsächlich auf folgenden zwei Tatsachen. Zum
einen ist die Rechenleistung von den Prozessoren stark gestiegen und zum anderen konnte durch
den Zusammenschluss mehrerer Rechnersysteme die Leistung noch weiter skalieren. Erst dadurch
ist seit geraumer Zeit der große Leistungssprung in der Rechengeschwindigkeit möglich geworden.
Der hohe Rechenaufwand, der beim Trainieren von künstlichen neuronalen Netzen existiert, ist so-
mit kein Problem mehr. Außerdem ist die Datenbasis, durch die über Jahre hinweg gesammelten
Kundendaten der Großkonzerne, extrem angewachsen. Mit der riesigen Datenmenge konnten die
künstlichen neuronalen Netze auf viel mehr verschiedene Eingangssituationen trainiert werden, dar-
unter fallen diverse Schreibstile von Texten, die Betonung sowie die Aussprache von Wörtern, die
bei uns Menschen sehr variieren können. Dank dieser beiden Faktoren erleben Nutzer der oben ge-
nannten Produkte inzwischen gut funktionierende Sprachassistenten aus dem Forschungsgebiet der
NLP. Ab dem Unterabschnitt 2.2.2 werden typische Aufgaben aus dem NLP erklärt. Die dort vor-
gestellten sind die mit am wichtigsten zählenden Aufgaben aus dem NLP, die sich auf die klassische
Herangehensweise bei einer NER beziehen. Ziel hiervon ist es, den Kontrast darzustellen zwischen
der klassischen NER und der NER durch KI System wie BERT.

2.2.1 Natural Language Toolkit

Die in den nachfolgenden Kapiteln vorgestellten NLP Aufgaben werden mit dem Natural Language
Toolkit (NLTK) veranschaulicht. Das NLTK ist eine der führenden Open Source Bibliotheken für
Python und dient der Verarbeitung von menschlicher Sprache. Dafür bietet die Plattform über
einfache Schnittstellen Zugang zu 50 verschiedene Korpora wie beispielsweise WordNet, sowie auch
andere lexikalische Quellen. Neben den im folgenden gezeigten Aufgaben bietet sie auch weitere
Lösungen für andere Aufgaben aus den NLP [33].

Korpus

Ein Korpus im Bereich der Linguistik ist eine Ansammlung an schriftlichen oder gesprochenen
Daten. Die Daten sind meistens digital in einer maschinenlesbaren Form gespeichert. Ein Korpus
besteht somit aus den Text bzw. Audiodaten und optional Metadaten. Diese Metadaten können z.B.
der Autor oder Titel eines Buches sein. Außerdem beinhaltet ein Korpus die zugehörigen linguisti-
schen Annotationen für die Daten. Diese Annotationen beschreiben unter anderem die Wortklasse
zu jedem darin enthaltenen Wort. Mithilfe von Korpora können Sprachwissenschaftler die Elemente
und Struktur der natürlichen Sprache analysieren. Korpora enthalten häufig authentische Texte zu
einer bestimmten Textart. Damit können beispielsweise alle Werke von Shakespeare analysiert und
anschließend darüber Theorien aufgestellt werden [21].

9
2 Grundlagen

2.2.2 Tokenization

Im ersten Schritt des typischen Ablaufs einer NLP-Pipeline wird die sogenannte Tokenization umge-
setzt. Das Ziel ist es, Tokens aus einem gegebenen Text zu extrahieren, welches somit eine lexikalische
Repräsentationsform darstellt. Als Token lassen sich unter anderem ein einzelnes Wort sowie auch
ein vollständiger Satz definieren. Hierfür durchläuft das gesamte Dokument einen Scan und für jede
Zeile wird die Tokenization umgesetzt. Die üblichen Aufgaben für den Tokenizer sind die Erkennung
der Satzgrenzen und die Erfassung der Tokengrenzen [10]. Es gibt grundsätzlich drei verschiedene
Arten von Tokenizer. Die erste Kategorie nutzt dafür einen regelbasierten Ansatz wie z.B. regex
(regular expression). Bei der zweiten und dritten Art sind Modelle aus dem Machine Learning (ML)
im Einsatz, der Unterschied liegt dabei in den verschiedenen Lernmethoden Supervised und Un-
supervised. Diese beiden Lernmethoden werden genauer im Abschnitt 2.4 über Machine Learning
beschrieben.

Problemstellungen

Ein großer Nachteil ist das Debuggen von Modellen aus dem ML bei fehlerhaften Verhalten. Ein
erneutes Anlernen mit besser abgestimmten Testdaten und Parametern, bleibt meist als einzig
sinnvolle Lösung übrig. Unzureichende Ergebnisse der Tokenization sind besonders problematisch in
Hinsicht auf den gesamten Prozessablauf. Schließlich repräsentieren die Tokens direkt oder indirekt
den eigentlichen Informationsgehalt des vorliegenden Textes. Die falsche Erkennung von Tokens
im ersten Prozessabschnitt wirkt sich negativ auf die gelieferten Ergebnisse der späteren Phasen
aus [35]. Unter diesem Aspekt sollte die Tokenization nicht nur als ein einfacher Parser, der nach
Leerzeichen trennt, verstanden werden. Für die meisten natürlichen Sprachen mag dieses Vorgehen,
zum Erhalt der einzelnen Wörter, im größten Teil des Textes funktionieren. In der Sprache Mandarin
jedoch sind Leerzeichen kein sinnvoller Indikator zum separieren von Wörtern und muss dort mit
einem anderen Verfahren gelöst werden. Aber auch bei Sprachen, die ihre Wörter mit Leerzeichen
trennen, ist die Aufgabe aufgrund einiger Sonderfälle durch z.B. die Symbole wie Punkt und Komma
nicht gerade trivial. Der Punkt zeigt in den meisten Fällen das Satzende an, aber bei Abkürzung wie
„z.B.“ gehören die Punkte zum jeweiligen Wort. Ähnlich sieht es beim Komma aus. Normalerweise
symbolisiert das Zeichen den Anfang einer Aufzählung oder eines Nebensatzes. Jedoch bei der
Gleitkommazahl „1,9“ gehört das Komma zu der Zahl und es sollte nicht davor oder danach getrennt
werden [10].

Evaluation einer Klassifizierung

Angesichts dieser Tatsachen ist es wichtig, die Qualität eines Tokenizers ermitteln zu können. Die
gefundenen Tokens eines Tokenizers werden benötigt, um die typischen Metriken aus der Musterer-
kennung zu kalkulieren und somit die Qualität zu bestimmen. Die Abbildung 2.1 zeigt die Einteilung
der gesamten Daten in verschiedene Mengen. Die Einteilung erfolgt abhängig davon, ob ein gegebe-
nes Muster tatsächlich enthalten ist bzw. überhaupt gefunden wurde. Außerdem ist entscheidend,
wenn eine Vorhersage zu einem Datum getroffen wurde, ob sie richtig oder falsch ist. In der Fol-
genden Abbildung 2.2 werden diese Mengen und die daraus berechenbaren Metriken zur Evaluation
einer Mustererkennung gezeigt. Das Berechnen dieser Werte vor und nach einer Optimierungsmaß-
nahme an einem Klassifizierungssystem ermöglicht es, auf eine valide Weise eine Aufwertung bzw.
eine Progression der Fehlerrate nachzuweisen. Die Werte Precision, Recall und der F1 Score sol-
len die Hypothese aus Abschnitt 1.3 entweder Bestätigen oder Entkräften. Die Werte werden nach
Verarbeitung der Testdaten durch die beiden feinabgestimmten BERT auf die NER ermittelt. Eine

10
2 Grundlagen

Optimierung eines Tokenizers wäre z.B. für Texte aus Social Media notwendig aufgrund der diversen
Sonderzeichen. Die Nutzernamen bei Twitter beginnen mit einen „@“ Symbol und Hashtags mit dem
Zeichen „#“, aber auch URL´s sollten trotz der vielen beinhalteten Punkte als ein ganzes Token be-
trachtet werden [10]. Neben den Sonderzeichen enthalten die Texte häufig Fehler in der Grammatik
sowie in der Rechtschreibung. Genauso sind individuelle Abkürzungen oder Schreibweisen schwierig
zu tokenizen. Ein Tokenizer basierend auf Machine Learning, der mit Texten aus Wikipedia oder
Büchern trainiert wurde, ist nicht ausreichend angepasst [10]. Die Folge bei Social Media Texten ist
eine teilweise falsche Erkennung der Tokens. Die Forschungsarbeit von Leon Derczynski et. al zeigte,
dass ohne eine Anpassung eines Tokenizers, der F-score bei ca. 80 % lag. Nach der Optimierung
durch z.B. reguläre Ausdrücke stieg der Score auf solide 96 % [7].

Abbildung 2.1: Confusion metrics in Anlehnung an [32, S. 1]

11
2 Grundlagen

False Negatives (FN): Der Anteil der vorhergesagten Daten, die irrtümlich als negativ erkannt
wurden.

True Negatives (TN): Der Anteil der vorhergesagten Daten, die zu Recht als negativ erkannt
wurden.

True Positives (TP): Der Anteil der vorhergesagten Daten, bei denen das gesuchte Muster
richtigerweise erkannt bzw. vorhergesagt wurde.

False Positives (FP): Der Anteil der vorhergesagten Daten, bei denen das gesuchte Muster
fälschlicherweise erkannt bzw. vorhergesagt wurde.

Relevant Elements: Der Anteil der vorhergesagten Daten, die das gesuchte Muster tatsächlich
aufweisen. Dazu zählen sowohl die erkannten wie auch die nicht erkannten Daten.

Relevant Elements = F N + T P (2.1)

Selected Elements: Die Menge an Daten mit einer positiven Vorhersage auf das gesuchte Muster.
Dazu zählen die Daten, die richtig und falsch in Hinsicht auf das gesuchte Muster bestimmt wurden.

Selected Elements = T P + F P (2.2)

Precision oder Positive Predictive Value:


Verhältnis zu den korrekt als positiv erkannten Muster (true positives) gegenüber der Gesamtmenge als
positiv erkannte Muster (selected elements).

TP
P recision = (2.3)
(T P + F P )

Recall oder True Positive Rate oder Hit Rate oder Sensitivity:
Verhältnis der korrekt als positiv erkannten Muster (TP) gegenüber der gesamten Menge mit dem
gesuchten Muster (Relevant elements).

TP
Recall = (2.4)
(F N + T P )

F1 Score oder F-Score oder F-Measure:


Vereint die gewonnenen Informationen aus den Metriken Precision und Recall, indem er das harmonische
Mittel der beiden Werte bildet.

P recision ∗ Recall
F 1 Score = 2 (2.5)
(P recsion + Recall)

Accuracy (ACC):
Verhältnis der korrekt als positiv und negativ erkannten Muster (TP + TN) gegenüber der gesamten
Menge an untersuchten Daten.

TP + TN
Accuracy = (2.6)
TP + TN + FP + FN

Abbildung 2.2: Confusion metrics im Detail [14]


12
2 Grundlagen

Programmbeispiel Tokenization

Die folgenden Programmzeilen zeigen einen Vergleich von zwei Tokenizer aus dem NLTK. Beide
Tokenizer bekommen als Input den gleichen Satz mit darin enthaltenen Zeichen-Emojis und einem
Hashtag. Dabei ist der Vorgestellte TweetTokenizer spezialisiert für Tweets, im Gegensatz zum
word_tokenize.
from nltk . tokenize import TweetTokenizer , word_tokenize

sentence = " Named Entity Recognition 2.0 <3 # BERT : -) "

def tokenizers_print ( word_tokenized , tweet_tokenized ) :


print ( ’ Output by word_tokenize : ’)
print ( word_tokenized )
print ( ’ Output by TweetTokenizer : ’)
print ( tweet_tokenized )

if __name__ == ’ __main__ ’:
tokenizers_print ( word_tokenize ( sentence ) , TweetTokenizer () .
tokenize ( sentence ) )

In der folgenden Konsolenausgabe werden die Unterschiede zwischen den zwei Tokenizer deutlich.
Der TweetTokenizer erkannte die Symbolemojis und das Hashtag mit dem zugehörigen Wort als
zusammenhängende Tokens. Der word_tokenize hingegen zerteilte die Symbole und das Hashtag
in einzelne Tokens. Für beide Verfahren waren die Gleitkommazahl und die restlichen Wörter keine
Herausforderung.
Output by word_tokenize :
[ ’ Named ’ , ’ Entity ’ , ’ Recognition ’ , ’ 2.0 ’ , ’ < ’ , ’3 ’ , ’# ’ , ’ BERT ’ , ’: ’ ,
’ - ’ , ’) ’]
Output by TweetTokenizer :
[ ’ Named ’ , ’ Entity ’ , ’ Recognition ’ , ’ 2.0 ’ , ’ <3 ’ , ’# BERT ’ , ’: -) ’]

Insofern ist die Aufgabe zur Erkennung von einzelnen Wörtern und Sätzen, aufgrund verschiedener
Textarten und Sonderfälle, komplexer als anfangs angenommen. Die Tokenization ist die Basis für
die nachfolgenden Aufgaben in der NLP-Pipeline und somit ein kritischer Abschnitt im Gesamtpro-
zess.

2.2.3 Stemming and Lemmatization

Nach der Tokenization bieten sich zwei Möglichkeiten zur morphologischen Analyse der repräsen-
tierten Wörter durch Tokens an. Das Stemming sowie auch die Lemmatization verfolgen das gleiche
Ziel, eine Basisform eines abgewandelten Wortes zu finden. Die veränderte Wortform entsteht durch
eine Derivation oder bei einer Flexion am Basiswort [25]. Die Regeln der Grammatik einer Spra-
che müssen bei diesem Vorgehen beachtet werden. Aus diesem Grund existieren sprachabhängige
Algorithmen für beide Verfahren. Bevor die Unterschiede vom Stemming und der Lemmatization
betrachtet werden, ist es notwendig, vorab einige Begrifflichkeiten aus der deutschen linguistischen
Morphologie zu erläutern. Die Morphologie befasst sich in der Linguistik mit der Formlehre von
Wörtern. Das Fachgebiet analysiert unter anderem die elementaren Einheiten eines Wortes, die
Flexionslehre und die Wortbildungslehre [39].

13
2 Grundlagen

Flexion

Die Flexion definiert die Beugung eines Wortes, induziert vom grammatikalischen Einfluss des Nu-
merus, Kasus, Genus, Tempus und der Person [39]. Bei der Wortart Verben wird eine Flexion als
Konjugation bezeichnet. Von der Basisform „spiel“ konjugiert das Verb im Präteritum (Tempus)
und in der ersten Person Singular (grammatische Person, Numerus) zu „spielte“.

Morphem

Das zuvor veranschaulichte Beispiel einer Konjugation eignet sich ebenfalls zur Veranschaulichung
von freien und gebundenen Morphemen. Im konjugierten Fall „spielte“ ist das freie Morphem „spiel“
und „te“ ein gebundenes Morphem. Die beiden Varianten von Morphemen teilen sich die gemeinsame
Eigenschaft, nicht weiter zerlegbar zu sein, ohne dabei ihre semantische Bedeutung zu verlieren.
Morpheme bilden die kleinste Einheit von Wörtern und sind somit die elementaren Bausteine in
einer Sprache [39]. Bei den freien Morphemen verrät bereits das beigefügte Adjektiv, dass diese
Wortteile aufgrund ihrer lexikalischen Bedeutung alleine im Text stehen können. Hingegen sind
gebundene Morpheme aufgrund der einzig grammatikalischen Funktion nicht fähig, getrennt von
einem freien Morphem zustehen.

Affix

Bei der Derivation und der Flexion werden jeweils Affixe an die Wortbasis gehangen. Die Affixe
unterscheiden sich durch die Position am Wort, ein Präfix wird vor dem eigentlichen Wort gesetzt
und ein Suffix an das Wortende. Neben ihrer Position können Affixe noch in ihrer Funktion als
Derivationsaffixe und Flexionsaffixe unterschieden werden.

Derivation

Die Derivation verändert mit der Verwendung von Affixen die ursprüngliche Bedeutung des Wor-
tes oder die Wortart. Eine neue Bedeutung entsteht beispielsweise durch folgende Derivation, das
Adjektiv „schön“ mit dem Präfix „un“. Die vorherige Bedeutung ist mit dem neugebildeten Wort
„unschön“ negiert worden. Ebenfalls kann die Wortart vom Verb „schön“ mit dem zusätzlichen Suffix
„heit“ verändert werden. Dadurch ändert sich die Wortklasse zu dem Nomen „Schönheit“ [44]. Der
Unterschied bei der Flexion ist, dass nur eine neue Wortform des ursprünglichen Wortes entstehen
kann.

Komposition

Die Komposition ist besonders für die deutsche Sprache eine weitere wichtige Möglichkeit, neue
Wörter mit eigener Bedeutung zu bilden. Bei der Komposition werden zwei oder mehr Wortstämme
aneinandergereiht und mithilfe dieser Vereinigung entsteht ein neues Lemma. Ein Beispiel für die
Komposition ist die Zusammensetzung der Wörter „Haus“ und „Tür“. Das neue Wort „Haustür“ ist
das Ergebnis der beiden Lemmata [44].

14
2 Grundlagen

Lemma

Ein Lemma ist ein Wort mit einem eigenen Eintrag im Lexikon und ist dort in seiner Grundform
erfasst. Die Einträge der Verben im Lexikon befinden sich dementsprechend im Infinitiv [39]. Mit
den zwei Arten der Wortschöpfung Derivation und Komposition ist es möglich, über eine endliche
Menge an Morphemen beinahe unendlich viele neue Lemmata für die deutsche Sprache zu bilden [44].
Besonders aufgrund der Tatsache, dass manche Wörter im Laufe der Zeit kaum bis gar nicht mehr
im Alltag benutzt werden, sind die Optionen der neuen Wortbildung für eine stetige Entwicklung
der Sprache nötig. Ein Teil der Wörter werden durch an den Zeitgeist angepasste Wörter ersetzt.
Für den anderen Teil der aussterbenden Wörter findet sich schlichtweg keine Verwendung mehr.
Allerdings wird beim Stemming und der Lemmatization versucht, die Wortformen, die durch das
Anbringen von Affixen entstanden sind, zurück in ihre Grundform zu führen.

Unterschiede Lemmatization und Stemming

Im Folgenden wird mehr auf die Unterschiede zwischen dem Stemming und der Lemmatization
eingegangen. Ein Unterschied ist manchmal nach Anwendung der Verfahren in den resultierenden
Ergebnissen erkennbar. Basierend auf der Tatsache, dass zwei diverse Algorithmen zugrunde liegen,
sind auch die Ergebnisse nicht immer gleich. Außerdem nehmen die verwendeten Algorithmen einen
Einfluss auf die Verarbeitungsgeschwindigkeit der Wörter. Das Stemming zerlegt ein gegebenes
Wort in seine zugehörige Wurzel, dabei muss die Wurzel nicht zwingend ein Wort der Sprache sein.
Im Gegensatz ist das Ergebnis nach der Lemmatization ein Lemma und somit immer ein Wort
der Sprache. Trotzdem sind häufig vor allem bei Verben die Wurzeln und die Lemmata identisch.
Für uns Menschen ist die Normalisierung zum Erkennen der Bedeutung nicht zwingend notwendig.
Hingegen ist für einen Computer die direkte Erfassung ohne diesen Normalisierungsprozess eine
komplexere Aufgabe [14]. Im Folgenden werden die beiden Ergebnisse der Verfahren anhand von
Progammbeispielen analysiert.

Programmbeispiel Stemming

# Input Liste fuer das Stemming


word_list = [ ’ Spieler ’ , ’ spiele ’ , ’ spielte ’ , ’ spielen ’ , ’ Baumer ’ ]

# Input Liste fuer die Lemmatization mit Part of Speech Tags


pos_word_list = [( ’ Spieler ’ , ’N ’) , ( ’ spiele ’ , ’V ’) , ( ’ spielte ’ , ’V ’) ,
( ’ spielen ’ , ’V ’) , ( ’ Baumer ’ , ’N ’) ]

Die beiden ausgewählten Input Listen für die Prozesse beinhalten als Erstes das Nomen ’Spieler’.
In den nächsten drei Einträgen befinden sich die konjugierten Formen des Verbs „spielen“ in den
Zeiten Präsens, Präteritum und Futur I, jeweils in der ersten Person Singular. Das letzte Element der
Liste ist ’Baumer’ und steht repräsentativ für „Baum“ mit einem Rechtschreibfehler. Der fehlerhafte
Eintrag dient zum anschließenden Vergleich der Verfahren im Umgang mit Rechtschreibfehlern. In
einer Eigenschaft unterscheiden sich jedoch die beiden Listen, insofern die Einträge in der Liste
für die Lemmatization Tupel sind. Die ersten Elemente innerhalb von den Tupel sind wieder die
zuvor vorgestellten Wörter, allerdings sind die zweiten Elemente die dazugehörigen Part of Speech
(POS) Tags. In der NLP-Pipeline wird die Zuordnung von einem Wort zu einer Wortart mit einem
Part POS-Tag realisiert, die Tags werden in diesem Fall mit einem entsprechenden Buchstaben
angegeben. Der folgende Unterabschnitt 2.2.4 behandelt diese vorgelagerte Aufgabe zum bestimmen

15
2 Grundlagen

einer Wortart detaillierter. Als Erstes werden die resultierenden Wurzeln nach dem Stemming der
Wörter mit dem SnowballStemmer aus dem NLTK verwendet.
from nltk . stem import SnowballStemmer

def snowball_stemmer ( word_list ) :


stemmer = SnowballStemmer ( ’ german ’)
stemmed_words = [ stemmer . stem ( w ) for w in word_list ]
return stemmed_words

Die Funktion snowball_stemmer(word_list) nimmt eine Liste mit Wörtern als Input entgegen.
Als Erstes wurde das Objekt stemmer, hier für die Inputliste mit der Klasse SnowballStemmer mit-
tels ’german’, auf die deutsche Sprache eingestellt. Abhängig vom Anwendungsfall ist es möglich,
mit dem Parameter der Klasse SnowballStemmer das Objekt für viele weitere natürliche Sprachen
zu konfigurieren. Anschließend durchläuft die Liste word_list eine Schleife, in der für jedes Wort
das Stemming angewendet wird. Die resultierende Wurzel wird jeweils in der Liste stemmed_words
abgespeichert. Nach dem Abschluss der Schleife wird diese Liste als Rückgabewert zurückgegeben.
In der Hauptroutine wurde die Funktion mit einer Hilfsfunktion aufgerufen. Die Hilfsfunktion diente
nur für die Ausgabe der Input liste word_list und der Rückgabeliste stemmed_words auf der Kom-
mandozeile. Der Code für den Aufruf in der Hauptroutine und die Implementation der Hilfsfunktion
wird hier nicht gezeigt.
Input snowball stemmer :
[ ’ Spieler ’ , ’ spiele ’ , ’ spielte ’ , ’ spielen ’ , ’ Baumer ’]

Output snowball stemmer :


[ ’ spiel ’ , ’ spiel ’ , ’ spielt ’ , ’ spiel ’ , ’ baum ’]

Die erste ausgegebene Wurzel ’spiel’ vom ursprünglichen Wort ’Spieler’ veranschaulicht den
Verlust einer semantischen Bedeutung. Das vorherige Nomen für eine spielende Person ist mit dem
Verb ’spiel’ nicht mehr direkt erkennbar. Ein Grund dafür liegt im einfachen Verfahren des Stem-
mings, das zugleich kein Wissen über die Wortklasse benötigt. Trotzdem ist es auch von Vorteil,
keine entsprechende Aufbereitung durch POS-Tags zu benötigen, nach einer Tokenization können
die Tokens direkt für das Stemming verwendet werden. Ein weiterer Vorteil vom Stemming be-
steht darin, die Wurzel trotz vorhandener Rechtschreibfehler häufig richtig zu erkennen. Der letzte
Wert der Ausgabeliste veranschaulicht einen Fall, indem sich das Verfahren robust gegenüber einen
solchen Rechtschreibfehler verhält. Das Verfahren entfernte das Suffix „er“ von ’Baumer’ und korri-
gierte so implizit den Rechtschreibfehler. Das eigentliche Nomen wird mit ’baum’ wieder erkennbar
und ist somit für eine NER förderlich. Neben der teilweisen Robustheit bei Rechtschreibfehlern ist
die schnellere Verarbeitungszeit ein weiterer Vorteil gegenüber der Lemmatization. Ursache sind die
wenig notwendigen Schritte für das Stemming, die Lemmatization hingegen nutzt ein komplexeres
und somit langsameres Verfahren [14].

Programmbeispiel Lemmatization

Als Nächstes schauen wir uns die Verarbeitung eines Lemmatizers mit der Zusatzinformation über
die Wortart an. Das NLTK verfügt standardmäßig leider nicht über einen deutschen Lemmatizer.
Aus diesem Grund wurde für das folgende Beispiel das Modul germalemma verwendet, dieser beinhal-
tet einen Lemmatizer für die deutsche Sprache. Bei der Lemmatization muss immer die Wortklasse
von einem zu normalisierenden Wort bekannt sein. Falls nicht, muss zumindest ein Standardwert

16
2 Grundlagen

angegeben werden. Die Variante mit einem Standardwert führt aber nicht immer zu einem ge-
wünschten Ergebnis, wenn z.B. alle Wörter als Nomen klassifiziert werden. Die Lemmatization gibt
somit abhängig vom Wort und dem POS-Tag das zugehörige Lemma aus.
from germalemma import GermaLemma

def germalemma_lemmatizer ( word_list ) :


lemmatizer = GermaLemma ()
lemmed_words = [ lemmatizer . find_lemma ( w [0] , w [1]) for w in
word_list ]
return lemmed_words

Die Funktion germalemma_lemmatizer(word_list) nimmt diesmal eine Liste von Tupeln entgegen.
Die erste Anweisung der Funktion initialisiert das Objekt lemmatizer mit dem Klassenkonstruktor
GermaLemma(). Im nächsten Schritt durchläuft die Liste von Tupeln eine Schleife, dabei wird für
jedes beinhaltete Tupel das zugehörige Lemma abhängig vom Wort und der Wortklasse gesucht.
Das gefundene Lemma wird in der Liste lemmed_words abgespeichert. Die Liste wird ebenfalls
nach dem Durchlaufen der Schleife als Rückgabewert der Funktion verwendet. Genauso wurde hier
in einer Hauptroutine die Funktion mit einer Hilfsfunktion zur Ausgabe vom Input und Output
aufgerufen.
Input GermaLemma :
[( ’ Spieler ’ , ’N ’) , ( ’ spiele ’ , ’V ’) , ( ’ spielte ’ , ’V ’) ,
( ’ spielen ’ , ’V ’) , ( ’ Baumer ’ , ’N ’) ]

Output GermaLemma :
[ ’ Spieler ’ , ’ spielen ’ , ’ spielen ’ , ’ spielen ’ , ’ Baumer ’]

In diesem Fall zeigt die Ausgabe vom ersten Lemma ’Spieler’, dass die Bedeutung über die spie-
lende Person erhalten blieb, weil das Suffix „er“ hier nicht vom Lemmatizer entfernt wurde. Das
POS-Tag ’N’ steht für die Wortklasse der Nomen und somit konnte im ersten Tupel das Lemma
richtig erkannt werden. Zu diesem Zweck durchsucht ein Lemmatizer zum Abbilden der Wörter aus
dem Input in einem Wörterbuch, nach dem zugehörigen Lemmata. Das verwendete Python Paket
GermaLemma von Markus Konrad, nutzt dazu den Tiger Korpus und Funktionen aus dem Pattern
Paket. Außerdem wird ein Algorithmus zur Aufteilung von Kompositionen verwendet [16]. Auf der
einen Seite ist nach einer Lemmatization das Ergebnis ein Wort einer Sprache im Vergleich zum
Stemming. Auf der anderen Seite benötigt dieser Vorgang mehr Zeit als das zuvor gezeigte Ver-
fahren. Zusätzlich ist die Lemmatization nicht so robust gegenüber Rechtschreibfehlern wie seine
Alternative [14]. Zusammenfassend lässt sich sagen, dass beide Verfahren ihre Legitimation verdie-
nen. Ausschlaggebend für einen der beiden Algorithmen sind die genauen Anforderungen an die
Normalisierung von Wörtern. Der Fokus bei der Entscheidung sollte besonders auf die geforder-
ten Ansprüche an die Geschwindigkeit, Wortform und die Robustheit gegenüber Rechtschreibfehler
liegen [37].

2.2.4 Part of Speech Tagging

Das Part of Speech (POS) Tagging bestimmt die syntaktische Wortart der Wörter im Kontext eines
ganzen Satzes. Folgemuster von Wortarten sind damit erkennbar und bieten eine Basis für syntakti-
sche Analysen. Das Wissen über die Wortart ist auch bei einigen Algorithmen für die Named Entity
Recognition notwendig. Nur Wörter mit einem Nomen Tag werden dabei zusammen ihrem direkten

17
2 Grundlagen

Umfeld analysiert. Problematisch sind sogenannte Out of Vocabulary (OOV) Wörter in ihrer Wort-
art zu klassifizieren. OOV Wörter stehen nicht im Lexikon und bekommen deshalb kein sinnvolles
POS-Tag zugeordnet. Genauso sind Mehrdeutigkeiten in der Auswahl an zugehörigen Wortarten
eines Wortes kritisch zu Betrachten. Das Wort „Sucht“ kann sowohl mit dem Tag eines Substantivs
als auch mit dem eines Adverbs kategorisiert werden. Eindeutig wird die genaue syntaktische Rolle
nur im Kontext des ganzen Satzes. Insofern sind geeignete Lösungsansätze gegen Mehrdeutigkeiten
von POS-Tags, den Wortkontext und für das POS-Tag relevante Worteigenschaften zu betrachten
[34]. Das POS-Tagging ist ebenfalls wie das Stemming und die Lemmatization sprachabhängig und
demzufolge auch das verwendete Tagset.

Tagset

Es existieren viele verschiedene POS-Tagsets, die sich in der Auswahl an bereitgestellten Tags un-
terscheiden. Neben der Sprache ist der gewünschte Grad der Zerlegung von Wortklassen in einzelnen
Tags zur Wahl eines passenden Tagsets entscheidend. Eine Differenzierung beispielsweise zwischen
einem Singular Nomen und einem Plural Nomen, ist abhängig vom Anwendungsfall erforderlich.
Für das Tagging von englischsprachigen Texten wird häufig das Penn TreeBank Tagset eingesetzt.
Das NLTK nutzt das Penn Treebank Tagset ebenfalls in seiner Standardeinstellung. Die Tabelle 2.1
beinhaltet die Abkürzungen und Bedeutung für die einzelnen Tags aus dem PennTreeBank Tagset
[10].

POS-Tagger

Die Algorithmen von POS-Tagger lassen sich in regelbasierte und statistische Methoden einteilen.
Zu Beginn nutzten die ersten POS-Tagger regelbasierte Verfahren, hierzu wurden Lexika bzw. Wör-
terbücher zusammen mit regulären Ausdrücken zur Vorhersage von POS-Tags verwendet. Das Wort
„Sucht“ wurde bereits zuvor als Veranschaulichung von Mehrdeutigkeiten in der Wortart verwendet.
Bei den regelbasierten Verfahren sind einige Sonderregeln notwendig zum Auflösen solcher Pro-
blemstellungen. Regelbasierte POS-Tagger sind dementsprechend nicht besonders robust. Der beste
seiner Art erreichte eine Accuracy von Lediglich 77 %, während die stochastischen POS-Tagger ei-
ne Accuracy bis zu 97 % erzielen können [14]. Am häufigsten werden stochastische Methoden wie
z.B. Hidden Markov Modelle, Conditional Random Fields, Perceptrons und Max Entropy Classifier
eingesetzt [10].

18
2 Grundlagen

Tag Beschreibung
CC Coordination conjunction
CD Cardinal number
DT Determiner
EX Existential there
FW Foreign word
IN Preposition or subordination conjunction
JJ Ajdective
JJR Adjective, comparative
JJS Adjective, superlative
LS List item marker
MD Model
NN Noun, singular or mass
NNS Noun, plural
NNP Proper noun, singular
NNPS Proper noun, plural
PDT Predeterminer
POS Possesive ending
PRP Personal pronoun
PRP$ Possessive pronoun
RB Adverb
RBR Adverb, comparative
RBS Adverb, superlative
RP Particle
SYM Symbol
TO To
UH Interjection
VB Verb, base form
VBD Verb, past tense
VBG Verb, gerund or present participle
VBN Verb, past participle
VBP Verb, non-3rd person singular present
VBZ Verb, 3rd person singular present
WDT Wh-determiner
WP Wh-pronoun
WP$ Possesive wh-pronoun
WRB Wh-adverb

Tabelle 2.1: Penn TreeBank Tagset in Anlehnung an [10, S. 23]

Programmbeispiel POS-Tagging

Für das im Folgenden vorgestellte POS-Tagging wird die Funktion nltk.pos_tag() aus dem NLTK
verwendet. Zuerst wird der Variable sentence einen englischen Satz als String zugewiesen. Danach
werden die Wörter in dieser String Variable extrahiert und in der Liste tokens abgelegt. In der
Hauptroutine versieht die Anweisung nltk.pos_tag(tokens) jedes Token mit einem zugehörigen
POS-Tag.

19
2 Grundlagen

import nltk

sentence = ’ POS Taggers determine the word type by using the context ’
# Tokenization
tokens = nltk . word_tokenize ( sentence )

# Main
if __name__ == ’ __main__ ’:
print ( nltk . pos_tag ( tokens ) )

Am Ende wird mit der print Funktion die Ausgabe der Tupel veranlasst, mit jeweils einem Token
und dem zuvor bestimmten POS-Tag als die beiden Elemente. Die entsprechenden Bedeutungen
der Tags kann aus der Tabelle 2.1 vom PennTreeBank Tagset entnommen werden.
[( ’ POS ’ , ’ NNP ’) , ( ’ taggers ’ , ’ NNS ’) , ( ’ determine ’ , ’ VBP ’) , ( ’ the ’ , ’
DT ’) ,
( ’ word ’ , ’ NN ’) , ( ’ type ’ , ’ NN ’) , ( ’ by ’ , ’ IN ’) , ( ’ using ’ , ’ VBG ’) ,
( ’ the ’ , ’ DT ’) , ( ’ context ’ , ’ NN ’) ]

2.2.5 Chunking

Als letzte syntaktische Analyseform wird das Chunking besprochen. Das Chunking übernimmt die
Aufgabe, einzelne Phrasen eines Satzes zu extrahieren [14]. Neben dem Wort auf der untersten Be-
trachtungsebene und den ganzen Satz auf höchster Ebene ist die Phrase dazwischen einzuordnen.

Satz → P hrase → W ort

Die Elemente einer Phrase sind Wörter mit der Gemeinsamkeit, dass sie funktional zusammen
gehören. Das zentrale Wort innerhalb einer Phrase wird als Kopf bezeichnet, und das zugehörige
POS-Tag bestimmt die Gattung der Phrase [8]. Bei der NER werden benannten Entitäten gesucht,
diese sind zugleich immer vom Typ Nominalphrase (NP), aber nicht alle Nominalphrasen sind be-
nannte Entitäten. Im folgenden Satz sind zwei Nominalphrasen enthalten, jedoch nur die Technische
Hochschule Ingolstadt ist von den beiden auch eine benannte Entität.

[Die Technische Hochschule Ingolstadt]N P hat [viele Studierende]N P

Erstreckt sich eine benannte Entität über mehrere Wörter hinweg, ist sie ausschließlich auf der Wor-
tebene betrachtet nicht vollständig erkennbar. Insofern ist die Extraktion der Phrasen für NER in der
klassischen NLP-Pipeline eine notwendige Maßnahme. Ein Chunker sucht nach den Anfängen und
Enden dieser Phrasen, dafür werden Reguläre Ausdrücke oder maschinelles Lernen verwendet. Zum
einen aufgrund der Notwendigkeit, die Wortart vom Phrasenkopf zu kennen, ist vor dem Chunking
das bereits beschriebene POS-Tagging auf Tokenebene erforderlich. Zum anderen sind die POS-Tags
gefordert, damit überhaupt bestimmte Reihenfolgen von Wortarten erkennbar werden. Der Chunker
erkennt diese Folgemuster und gruppiert sie zusammen auf einer höheren hierarchischen Ebene in
Phrasen. Im Fachjargon wird eine extrahierte Phrase im Endergebnis als ein Chunk bezeichnet.
Jeder Chunk wird abhängig vom Phrasentyp mit einem Chunking Tag klassifiziert. Es existieren je
nach Sprache und gewünschten Grad der Aufschlüsselung verschiedene Chunking Tagsets.

20
2 Grundlagen

2.2.6 Named Entity Recognition

Die bereits gezeigten lexikalischen und syntaktischen Analyseformen untersuchten nicht die Seman-
tik der Wörter, Phrasen oder Sätze. Zum Beispiel wäre beim POS-Tagging das Wort „Washington“
mit einem Tag für Nomen bestückt worden. Eine eindeutige Klassifizierung zwischen den Entitä-
ten amerikanischer Staat, der Hauptstadt von der USA, oder einen Nachnamen, ist nur anhand
des POS-Tags nicht möglich. Bei der semantischen Analyse der NER wird die eindeutige Entität
anhand von dem angrenzenden Kontext einer Nominalphrase bestimmt.

Entitäten

Unter dem Begriff Entität wird eine eindeutig identifizierbare abstrakte oder konkrete Größe ver-
standen [17]. Die Abbildung 3.1 zeigt einige Entitätstypen mit jeweils einem passenden Beispiel.

Person Abraham Lincoln


Organisation United Nations
Ort Garmisch-Partenkirchen
Zeit kurz nach Mitternacht
Datum am ersten Januar
Menge zwanzig Pakete

Abbildung 2.3: Named entities [14]

Für den Fall eine Entität wird durch den Kontext bestimmt, erhalten die Wörter innerhalb der
Nominalphrase ein NER-Tag für z.B. Person, Organisation, Ort, Zeit, Datum oder einer Mengen-
einheit. Genauso wie beim POS-Tagging und Chunking sind auch bei der NER mehrere Tagsets
vertreten. Zwei Arten von Mehrdeutigkeiten können bei der Bestimmung von Entitäten auftreten,
wenn dazu nur ein Wort betrachtet wird. Die erste Möglichkeit sind verschiedene Entitäten vom
selben Typ, bspw. Denzel Washington (Person) und George Washington (Person). Als Zweites exis-
tiert das Wort „Washington“ in Form einer Entität in unterschiedlichen Entitätstypen z.B. Denzel
Washington (Person) und der Staat Washington (Ort) [14].

Überblick NLP-Pipeline

Zur Erkennung von Entitäten ist die Umsetzung im Vorfeld einiger der zuvor gezeigten Aufgaben
in der NLP-Pipeline nötig. Die Abbildung 2.4 dient zur Auffrischung der NLP-Pipeline. Als Input
wird ein Rohtext in Form eines Stringwerts verwendet. Die Zeichenfolge wird im ersten Schritt nach
den Satzgrenzen getrennt und in einer Liste abgespeichert (list of strings). Anschließend werden die
einzelnen Wörter jedes Satzes extrahiert und satzweise in Listen abgelegt (list of lists of strings).
Nach der Tokenization wird die Wortart der Wörter abhängig vom Satzkontext bestimmt, die Infor-
mationen werden paarweise in einer Liste (list of lists of tuples) abgespeichert. Im nächsten Schritt
findet basierend auf den POS-Tags das Chunking statt, dieses Mal werden die dabei extrahierten
Phrasen in der Liste als Baumstruktur abgelegt (list of trees). Auf den Nominalphrasen wird in
diesem Schritt noch zusätzlich die NER angewendet, zum Einordnen in Entitätsklassen. Die letzte
gezeigte Aufgabe in der Abbildung ist die Relation Detection und wird in dieser Bachelorarbeit nicht
näher besprochen. Die NLP-Aufgabe baut auf das Wissen über die Entitäten auf und bestimmt die
Beziehung zwischen Entitäten.

21
2 Grundlagen

Abbildung 2.4: NLP Pipeline [20, S. 1]

Anwendungen

Im Folgenden werden nützliche Anwendungen vorgestellt, die basierend auf der NER realisierbar
sind. Als Erstes zu erwähnen ist das Klassifizieren von Dokumenten. Hierbei legt die Entität mit
der höchsten Häufigkeit im Dokument gleichzeitig die Gattung des zu klassifizierenden Dokuments
fest. Als Nächstes werden einige Verwendungen aus dem Bereich der Suchmaschinenoptimierung
vorgestellt. Früher entschied die Suchmaschine von Google hauptsächlich basierend auf Keywords,
über das Ranking der präsentierten Ergebnisse. Entscheidend war die Übereinstimmung der Key-
words aus der Suchanfrage zusammen mit der Dichte an Keywords in den Dokumenten. Heutzutage
nutzt die Suchmaschine immer noch Keywords als ein Rankingfaktor, allerdings ist der größere
Faktor inzwischen die Semantik. Die Suchmaschine extrahiert inzwischen aus den Suchanfragen
auch die Entitäten. Das Wissen darüber in Kombination mit Entitätsgraphen und entsprechend
klassifizierten Dokumenten, sind äußerst hilfreich für eine Search Engine Optimization (SEO). Die
Beziehungen zwischen den Entitäten in Form eines Entitätsgraphen, auch Knowledge Graph ge-
nannt, ist inzwischen ein wichtiger Bestandteil bei der SEO. In diesem gerichteten und gewichteten
Graphen entspricht ein Knoten jeweils eine Entität. An einem Knoten sind wiederum Attribute
für zusätzliche Informationen z.B. über den Entitätstyp eines Knotens angehängt. Das Gewicht
bestimmt dabei die Stärke der gerichteten Assoziation. Die Pfeile können auch zusätzliche Metain-
formationen besitzen. Der Vorteil des Knowledge Graphens liegt darin, Entitäten miteinander zu
verbinden, sodass mehr Informationen über den Zusammenhang mehrerer Entitäten zur Verfügung
gestellt wird. Zum Beispiel würden die Entitäten Angela Merkel (Person), Bundestag (Organisation)
und Berlin (Ort) im Graphen verbunden werden, die jeweils eigene von Fakten in Form von Attri-
buten aufweisen. Außerdem nutzt die Suchmaschine von Google die Entität aus der Suchanfrage
auch für das sogenannte Knowledge Panel. Hierbei werden oben rechts in der Ergebnisansicht die
gefundene Entität mit zugehörigen Fakten optisch ansprechend dargestellt [13].

2.3 Künstliche Intelligenz

Im Kapitel über die Künstliche Intelligenz werden einige Chancen und Risiken dieser Technologie
abgewägt. Ferner veranschaulicht eine Abgrenzung die einzelnen Kategorien innerhalb des For-

22
2 Grundlagen

schungsfelds. Die verwendeten Beispiele im Kapitel beziehen sich meistens auf Verfahren aus dem
Machine Learning und Deep Learning (DL). Ein Grund für den gewählten Fokus in den Beispie-
len ist, dass ein mittels Deep Learning vortrainiertes Sprachmodell für den praktischen Teil dieser
Arbeit verwendet wird. Im Jahr 1956 am Dartmouth College in der USA wurde zum ersten Mal
auf einer wissenschaftlichen Tagung der Begriff Künstliche Intelligenz geprägt. Der damalige Or-
ganisator John McCarty ist bekannt als einer der Gründerväter von künstlicher Intelligenz. John
McCarty formulierte die Fähigkeiten von künstlicher Intelligenz folgendermaßen „... Vermutung,...
dass jeder Aspekt des Lernens oder irgendeines anderen Merkmals der Intelligenz im Prinzip so ge-
nau beschrieben werden kann, dass eine Maschine gemacht werden kann, um es zu simulieren“ [47,
S.11]. Inzwischen stecken nun mehr als 60 Jahre Forschungsarbeit im Wissenschaftsgebiet der KI.
In der Theorie wurden somit hervorragende Algorithmen und Ansätze für Künstliche Intelligenzen
schon seit geraumer Zeit publiziert. In der Praxis waren die Ideen aufgrund der geringen Rechen-
leistung von Prozessoren vergangener Jahrzehnte teilweise nur für Gedankenexperimente geeignet.
Eine Hoffnung brachte das mooresche Gesetz, dass nur wenige Jahre nach der Konferenz der Intel
Mitgründer Gordon Moore veröffentlichte. Die Quintessenz davon lautet, dass sich alle 12 Monate
die Anzahl an Prozessor Transistoren zum gleichen Kaufpreis verdoppelt. Die enthaltene Vorhersage
vom moorschem Gesetz traf über die Jahre hinweg ziemlich genau zu. Mit der Ausnahme vom ange-
gebenen Intervall in der Realität beträgt die Länge vom Intervall im Durchschnitt eher 18 Monate
[47].

2.3.1 Chancen und Risiken

Chancen

Der deutsche Hersteller von EUV-Lithografie Geräte, die eingesetzt werden für Produktion von
Prozessoren, schreiben auf ihrer offiziellen Webseite: „Dieses als „Moore’s Law“ bekannte Gesetz gilt
noch heute. So konnten bereits Integrationsdichten von bis zu 100 Millionen Transistoren auf einem
Quadratmillimeter erreicht werden. Die Größe von Halbleiterstrukturen nähert sich nach und nach
Atomdimensionen an“ [15, S. 1]. Fortschritte dieser Art ermöglichen eine Leistung von Prozessoren,
die inzwischen performant genug sind für die komplexen Berechnungen der Trainingsphasen von
großen neuronalen Netzen. Mit dem einhergehenden Leistungserfolg der Prozessoren finden die Ver-
fahren aus der künstlichen Intelligenz vermehrt praktische Anwendung in der Industrie. Die große
Chance der KI liegt in ihren Stärken gegenüber der klassischen Softwareentwicklung, damit die Vor-
teile in Kraft treten, benötigen die Aufgabenstellungen speziell für das maschinelle Lernen meistens
zwei Rahmenbedingungen. Schließlich eignet sich die klassische Softwareentwicklung besonders für
einfache Routineaufgaben aus dem Alltag mit verhältnismäßig wenig Abweichungen und Sonder-
fällen. Solche Aufgabenstellung sind dadurch in endlicher Zeit implementierbar, im Folgenden wird
basierend darauf die erste Rahmenbedingung abgeleitet. Bei komplexen Aufgabenstellungen mit
vielen Sonderfällen, wie z.B. der Mustererkennung in Bildern, sind KI Modelle, die eigenständig an-
hand von Daten lernen, im Vorteil. Für die klassische Softwareentwicklung wird keine riesige Menge
an repräsentativen Daten über einen Anwendungsfall benötigt, hingegen benötigt das maschinelle
Lernen viele Daten für seine Trainingsphasen. Eine große Datenmenge stellt somit häufig die zweite
Rahmenbedingung dar, damit die KI bevorzugt eingesetzt werden kann. Es gibt aus wirtschaft-
licher Sicht für deutsche Unternehmen rentable Gründe, ihre Finanzen und Arbeitsleistung in die
Technologie zu investieren. Der Unternehmensberater McKinsey erkennt das Potenzial, die Nutzung
von Anlagen und Maschinen bis zu 20 Prozent mit künstlicher Intelligenz zu optimieren. Für die
zutreffenden deutschen Unternehmen könnte das eine Maximierung von 62 Milliarden US-Dollar
der Umsätze bedeuten [47].

23
2 Grundlagen

Risiken

Widmen wir uns nun den möglichen Risiken der KI, schließlich dringt sie in immer mehr Bereiche
des Privatlebens und der Wirtschaft ein. Herr Professor Dr. Sepp Hochreiter ist einer von den zwei
Erfindern des Long Short-Term Memory (LSTM) Algorithmus, der an der Technischen Universität
München (TUM) entwickelt wurde. Der LSTM war ein Meilenstein in Bereich der NLP und schaffte
die Basis für die bekannten Sprachsteuerungen von Amazon oder Apple. Der Wissenschaftler sieht
vermehrt ein Risiko für Maschinenbauer aus Europa und Deutschland die Chancen der künstlichen
Intelligenz zu verpassen [47]. Seine Meinung wird besonders in einem seiner Beiträge deutlich „Ver-
ehrte Maschinenbauer - vermasselt den Vorsprung im Anlagenbau nicht. Wir sollten uns nicht an
Google oder Baidu orientieren, ... Wir sollten in Europa, in Deutschland und Österreich unseren
Schwerpunkt auf Künstliche Intelligenz im Maschinen- und Anlagenbau legen. Die sprechende Dreh-
maschine muss unser Ziel sein, nicht ein neues Smartphone. ... Der Maschinenbau ist heute blind,
hält nicht wie Facebook oder Apple andauernden Kontakt zum Kunden, analysiert seine Daten
nicht - auch wenn das Kunden nicht immer wollen“ [47, S. 2]. Ein weitaus bedrohlicheres Risiko
für das Wohl der Menschen wird vermehrt in den Medien diskutiert. In diesen Beiträgen über die
Technologische Singularität wird ein Zustand beschrieben, indem eine universelle KI die Intelligenz
der Menschen bereits übertrifft und exponentiell weiter steigert [45]. Die dramatischsten Beiträge
schildern ein Szenario einer weit fortgeschrittenen universellen KI, die uns zu versklaven oder auslö-
schen könnte. Nicht alle Experten sind sich einig über das potenzielle Risiko einer solchen bösartigen
KI, Stephen Hawking sprach folgende warnende Worte auf einer Technologie Konferenz: „KI wird
entweder das Beste sein, was der Menschheit jemals widerfahren ist – oder das Schlimmste“ [5, S. 1].
Heutzutage sind KI Modelle noch auf eine spezielle Problemstellung trainiert und damit nicht direkt
fähig, universal Probleme zu lösen. Ein weiteres Risiko besteht in den unzuverlässigen Ergebnissen.
Die Aussage im Ergebnis eines KI-Modells ergibt sich durch die höchste Wahrscheinlichkeit, somit
existieren auch Wahrscheinlichkeiten für andere Aussagen. Die Konsequenz können falsch getroffe-
ne Aussagen im Ergebnis sein. Im praktischen Teil dieser Bachelorarbeit ist eine Zuordnung einer
falschen Entität zu einem Wort nicht lebensbedrohlich. Klassifiziert eine KI zur Erkennung von
Tumoren fälschlicherweise in einer Röntgenaufnahme einen bösartigen Tumor, könnte eine Chemo-
therapie veranlasst werden. Das verbundene Risiko einer solchen Form der Therapie sind schwere
Schädigungen der Organe und im schlimmsten Fall mit Todesfolge. Im Allgemeinen wurden die
Fehlerquoten im Laufe der Zeit durch neue Algorithmen und Lernverfahren stark reduziert, aber
eine vollständig richtige Erkennung wurde noch nicht erreicht.

2.3.2 Kategorien der künstlichen Intelligenz

Der Forschungsbereich zur künstlichen beinhaltet inzwischen mehrere eigenständige Disziplinen.


Einen Überblick über die Abgrenzung zwischen den einzelnen Teilgebieten liefert die Abbildung 2.5
in Form eines Venn Diagramms. In diesem Schaubild beinhaltet der Bereich Artificial Intelligence
(AI) das Machine Learning und Deep Learning. Die typischen Fähigkeiten der klassischen KI sind
das Lernen, Speichern, Sortieren und das Abrufen von Wissen. Außerdem benötigt sie eine gewisse
Logik für einen sinnvollen Einsatz des zuvor gelernten Wissens. Der Forschungszweig der klassischen
künstlichen Intelligenz umfasst insofern unter anderem [3]:

24
2 Grundlagen

• Mathematische Logik
– Aussagen Logik
– Prädikatenlogik

• Wissensbasierte Systeme
– relationale Algebra
– Graphentheorie

• Such- und Optimierungsverfahren:


– Breitensuche & Tiefensuche
– Gradientenverfahren

Die anderen beiden Kategorien Machine Learning und Deep Learning nutzen mathematische Me-
thoden zur Mustererkennung. In den anschließenden Abschnitten wird auf diese näher eingegangen
[3].

Abbildung 2.5: Abgrenzung Künstliche Intelligenz [3, S. 1]

25
2 Grundlagen

2.4 Machine Learning

BERT nutzt unter anderem das typische Verfahren vom Deep Learning. Insofern ist es notwendig,
ein Verständnis in der grundlegenden Funktionsweise des Machine Learnings zu erlangen. Machi-
ne Learning ist eine Form der angewandten Statistik, hierbei werden Computer zur statistischen
Schätzung von komplexen Funktionen genutzt. Algorithmen des maschinellen Lernens besitzen die
Fähigkeit, von großen Datenmengen zu lernen. Im ML existieren dabei mehrere Arten des Lernens,
im groben kann zwischen dem Supervised Learning und dem Unsupervised Learning unterschie-
den werden [12]. Der Lernalgorithmus soll in diesem Zusammenhang zunächst auf einer abstrakten
Ebene beschrieben werden.

2.4.1 Lernalgorithmus

Mitchell definierte das Lernen im Bereich ML folgendermaßen: „Ein Computerprogramm soll aus der
Erfahrung E in Bezug auf eine Klasse von Aufgaben T und dem Leistungsmaßstab P lernen,
wenn sich seine Leistung bei Aufgaben in T, gemessen an P, mit der Erfahrung E verbessert.“[12,
S. 97].

Aufgabe T

Die Aufgabenklassen in T sind meistens zu komplex, als das sie mit der klassischen Softwareent-
wicklung in endlicher Zeit lösbar wären. Die entsprechende Beschreibung der Aufgabentypen ergibt
sich durch die gewünschte Verarbeitung eines Exemplars. Ein Exemplar ist in diesem Kontext ein
Element aus einem Datensatz, das jeweils eine Menge von Features beinhaltet. Das Exemplar wird
standardmäßig als Vektor x ∈ Rn verkörpert. Für alle Features xi des Vektors gilt, dass sie eine
individuelle messbare Eigenschaft sind. Die Features können zum Beispiel die Farbwerte eines Pixels
im Bild sein [12]. In diesem Zusammenhang sind Tokens Exemplare für die NER und das zugehörige
POS-Tag wäre ein mögliches Feature [41]. Die Aufgaben lassen sich in verschiedene Klassen einteilen
z.B. in Klassifizierung, Regression, maschinelle Übersetzung und Anomalieerkennung [12]. Insofern
ist die NER eine Aufgabe aus der Klasse der Klassifizierung.

Leistungsmaßstab P

Die Qualität eines Lernsystems wird mit dem Leistungsmaßstab P an den Ergebnissen gemessen
[12]. Je nach Aufgabentyp sind bestimmte Metriken mehr oder weniger sinnvoll. Bei einer Klassifi-
zierungsaufgabe wie die NER bietet sich das Berechnen der Accuracy an, wenn die Daten in Bezug
auf die Klassen der Entitäten ausgewogen verteilt sind. Für unausgeglichen verteilte Daten in den
Klassen sind der Recall und Precision aussagekräftigere Werte. Der Gesamterfolg wird in diesem
Fall mit dem F-Score gemessen, dieser kombiniert die beiden zuvor genannten Basismessungen[14].
In Abbildung 2.2 wurde bereits die Berechnung und eine kurze Erläuterung der Werte gezeigt [12].

Erfahrung E

Die Erfahrung E wird abhängig von den Arten des Lernens unterschieden. Die jeweilige Lernvari-
ante legt fest, wie die Erfahrung durch das Lernen erzielt wird. Viele Lernalgorithmen gewinnen

26
2 Grundlagen

ihre Erfahrung indem sie einen großen Datensatz auswerten. In diesem Datensatz sind etliche Ex-
emplare für das Training beinhaltet [12]. Als Nächstes werden die zwei wichtigsten Lernarten für
den Erfahrungsgewinn von Lernalgorithmen geschildert.

2.4.2 Unsupervised Learning

Das zuerst vorgestellte Unsupervised Learning, lässt das System selbstständig anhand des Daten-
satzes lernen. Ziel ist es, die beschreibenden Eigenschaften bzw. die innewohnende Struktur der
Daten ohne Einfluss von außen zu verstehen. Hierfür werden einige Beispiele eines Zufallsvektors x
analysiert. Bei dieser Beobachtung wird nach Clustern gesucht, bei denen vermutet wird, dass sie
zur selben Gruppe oder Ausgabe gehören. Das Unsupervised Learning versucht die Wahrscheinlich-
keitsverteilung p(x) direkt oder indirekt zu erlernen [12]. Die Abbildung 2.6 soll veranschaulichen,
dass der Datensatz an das System ohne zusätzliche Information über das gewünschte Ergebnis der
Vorhersage bereitgestellt wird.

Abbildung 2.6: Blockdiagramm Unsupervised Learning in Anlehnung an [4, S.7]

2.4.3 Supervised Learning

Das Supervised Learning beobachtet ebenfalls mehrere Exemplare eines Trainingsvektors x. Im


Kontrast zum Unsupervised Learning wird zum Vektor x das zugehörige Label hinzugefügt. Ein
Label ist in diesen Kontext der zu x zugehörige Ergebniswert oder Ergebnisvektor y. Das Modell
lernt wie y aus x vorhergesagt werden kann. Dazu wird in den meisten Fällen p(y|x) erst geschätzt
[12]. Der Lernalgorithmus verarbeitet auf diese Weise alle Trainingsvektoren x und vergleicht die
Schätzung mit dem gewünschten Output y. Anschließend berechnet das System die Fehlerdifferenzen
anhand einer gewählten Funktion. Die Kenntnis über die Fehlerwerte dient dazu, die Gewichte
im künstlichen neuronalen Netz schrittweise anzupassen. In der Hoffnung, das iterative Verfahren
optimiert die Gewichte kontinuierlich weiter, sodass die resultierenden Fehlerwerte bis zu einem
gewissen Punkt weiter reduziert werden [4]. In Abbildung 2.7 wird veranschaulicht, wie die Teacher
Komponente dem System das gewünschte Ergebnis y bereitstellt.

Abbildung 2.7: Blockdiagramm supervised learning in Anlehnung an[4, S. 8]

27
2 Grundlagen

2.4.4 Fluch der Dimensonalität

Der Fluch der Dimensionalität beschreibt die Tatsache, dass Problemstellungen existieren, bei den
Algorithmen des klassischen Machine Learnings an ihre Grenzen stoßen. Die Spracherkennung und
das Erkennen von Objekten sind aufgrund ihrer hochdimensionalen Daten zu komplex für das
traditionelle maschinelle Lernen. Mit jedem weiteren relevanten Feature steigt die Dimension der
aussagekräftigen Dateneinheiten, resultierend daraus wächst die Anzahl an verschiedenen Kombi-
nationen in den entscheidenden Stellen exponentiell. Infolgedessen sind zum Unterscheiden von v
(Werten) und d (Dimensionen) zumindest O(v d ) Trainingsdaten notwendig. Bei Daten mit einer
entsprechend hohen Dimensionalität ist es kaum möglich, ausreichend Trainingsdaten zu finden.
Mit der Konsequenz, dass ein Datum nach einer Trainingsphase eine noch völlig unbekannte Struk-
tur in den entscheidenden Stellen aufweisen kann. Einige der klassischen ML Algorithmen agieren
in solchen Fällen mit einer Approximation, indem sie dort ungefähr dieselbe Ausgabe liefern wie
für ein nächstgelegenes Trainingsdatum [12].

2.5 Deep Learning

Die Motivation für das Deep Learning entstand zum einen Teil daraus, den zuvor beschriebenen
Fluch der Dimensionalität von ML Algorithmen zu beheben. Der charakteristische Unterschied
von Deep Learning gegenüber kleineren neuronalen Netzen wie dem Multilayer Perceptron (MLP),
ergibt sich durch die größere Anzahl an verborgenen Schichten. Im Grundprinzip sind Deep Learning
Modelle somit weiterhin eine Form von neuronalen Netzen. Die Folge von diesem strukturellen
Ausbau ist eine bessere hierarchische Abstraktion der Daten aus dem Input. Funktionen höherer
Ordnung werden anhand dem neu gewonnen Abstraktionsgrads einfacher gelöst. Für das Verständnis
vom DL mit seiner Vielzahl an Schichten ist es zunächst relevant, ein darin enthaltenes künstliches
Neuron zu verstehen [12]. Die Funktionsweise eines künstlichen Neurons soll im Folgenden anhand
vom Perceptron demonstriert werden. Anschließend wird die typische Architektur von neuronalen
Netzen aus dem Deep Learning skizziert. Als letztes wird in diesem Kapitel kurz auf die vier Schritte
zum Trainieren von neuronalen Netzen eingegangen.

2.5.1 Perceptron

Das Perceptron bildet den Grundbaustein in Schichten von neuronalen Netzen. Der dafür verwen-
dete Algorithmus ist eine Erweiterung vom Verfahren der linearen Regression und nutzt zusätzlich
eine Aktivierungsfunktion. Die Erweiterung ermöglicht abhängig von der gewählten Aktivierungs-
funktion, auch Aufgaben der Klassifizierung neben der Regression zu lösen. Bei einer binären Klas-
sifizierung wird bspw. entschieden, ob eine Eingabe zu einer bestimmten Klasse gehört oder nicht.
Das künstliche Neuron ist eine bewährte Variante des Supverised Learnings aus den 1950er-Jahren.
Die Abbildung 2.8 zeigt den prinzipiellen Aufbau, in Anlehnung an das biologische Vorbild besitzt
es mehrere Eingangssignale x0 , x1 und x2 , diese werden mit den gelernten Gewichten w0 , w1 und w2
multipliziert. Die Multiplikation ermöglicht, die Eingangssignale zu verstärken oder abzuschwächen.
In der Gleichung 2.7 ist zugehörige Formel zum Berechnen der in Abbildung 2.8 gezeigten Ausgabe
des künstlichen Neurons entnehmbar [14].

Xd
h(x) = f ( wi x i ) (2.7)
i=0

28
2 Grundlagen

Abbildung 2.8: Perceptron (künstliches Neuron) [14, S. 142]

Die äußere Funktion f (x) steht repräsentativ für die verschiedenen Aktivierungsfunktionen. Als
gemeinsamen Parameter nutzen alle Aktivierungsfunktionen die Summe der zuvor beschriebenen
Produkte. Der letzte Summand wird an der Stelle d gebildet, und somit spiegelt d die Dimension
des Inputs x ∈ Rd .

Lineare Trennbarkeit

Das einlagige Perceptron verwendet in seiner ursprünglichen Form eine Stufenfunktion als Akti-
vierungsfunktion. In der Abbildung 2.9 wird gezeigt, dass die Stufenfunktion nur einen der beiden
Werte 0 und 1 annehmen kann, mit der Konsequenz nur linear trennbare Daten separieren zu kön-
nen.

Abbildung 2.9: Stufenfunktion

Der Algorithmus lernt eine Entscheidungsgrenze durch das Anpassen der Gewichte mit dem Ziel, ein
Datensatz in zwei disjunkte Mengen aufzuteilen. Die Mengen A und
P B sind linear trennbar, wenn
ein Schwellwert
P α existiert, der für jedes xi ∈ A die Ungleichung i wi xi ≥ α und jedes yi ∈ B die
Ungleichung i wi yi < α erfüllt.

29
2 Grundlagen

Abbildung 2.10: lineare und nicht lineare Trennbarkeit in Anlehnung an [14][S. 144 ff]

In der Abbildung 2.10 erfüllt das linke Schaubild a) die oben genannte Bedingung und ist somit
linear trennbar mit einer Geraden ausgehend vom Ursprung. Im rechten Diagramm b) wird die
Anforderung an den Datensatz nicht erfüllt. Es existiert keine Möglichkeit, mit einer Geraden durch
den Ursprung, die Datenpunkte abhängig von ihrer Farbe in eine blaue und eine orange Menge
aufzuteilen. Beim Versuch, das Perceptron trotzdem auf den nicht linear trennbaren Datensatz an-
zuwenden, würde bspw. in der nicht akkurat separierten Menge aus Diagramm b) resultieren. Im
einschichtigen Perceptron werden nur die zugehörigen Gewichte vom Input optimiert. Für komple-
xere, nicht lineare Datensätze, die häufig in der NLP existieren, ist diese Möglichkeit der Anpassung
zu wenig [14]. Ein Deep Neural Network wird in solchen Fällen zum Erlernen von nicht linearen
Funktionen eingesetzt. Im Folgenden wird kurz auf die Architektur dieser Netzwerke eingegangen,
schließlich werden sie neben anderen Komponenten innerhalb von BERT verwendet.

2.5.2 Architektur von Deep Neural Networks

Deep Learning ist im Grunde nur eine Ausweitung kleinerer neuronaler Netze wie dem Multilayer
Perceptron (MLP) durch weitere verborgene Schichten zu einem größeren Netzwerk [14]. Einzel-
ne Perceptrons mit gleichen den Eingangssignalen sind zusammen in einer Schicht gruppiert. Die
Abbildung 2.11 veranschaulicht die Drei wesentlichen Schichten in einem Deep Neural Network,
die Eingabeschicht (links), die verborgene Schicht (Mitte) und die Ausgabeschicht (rechts). Zu-
sätzlich wird die Architektur eines Feedforward Neural Network (FNN) illustriert. In einem FNN
fließt die Information in eine Richtung ohne Rückkopplungen. Von der linken Eingabeschicht zu der
rechten Ausgabeschicht. Besitzt ein FNN zusätzlich die Eigenschaft, dass alle Ausgabewerte einer
linken Schicht die Eingabewerte der rechts anliegenden Perceptrons sind, wird es zusätzlich als Fully
Connected bezeichnet [14]. Die Eingabeschicht bezieht als einzige Schicht ihre Eingabewerte direkt
von den Vektoren aus der Eingabe. Es besteht die Option ein FNN um Rückkopplungsschleifen zu
erweitern, diese Arichtekturform bezeichnet sich dann als Recurrent Neural Network (RNN) [12].

2.5.3 Training von neuronalen Netzen

Das Training von neuronalen Netzen optimiert die Gewichte im Netzwerk mit der Absicht, bes-
sere Vorhersagen durch das Modell zu erzielen. In diesem Zusammenhang sind vier Schritte von
entscheidender Bedeutung und werden im Folgenden kurz vorgestellt.

30
2 Grundlagen

Abbildung 2.11: Feedforward Neural Network [14, S. 154]

1. Forward propagation: Berechnen der Ausgabe, die einer Vorhersage auf ein Ein-
gangsbeispiel entspricht.

2. Fehlerberechnung: Berechnen des Fehlers in der Diskrepanz von der berechneten


Ausgabe (Vorhersage) zum tatsächlichen Wert.

3. Backpropagation: Der berechnete Fehler im vorherigen Schritt wird rückwärts über


die Ausgabeschicht in die Eingabeschicht propagiert. Im Zuge dessen werden die Gra-
dienten unter der Berücksichtigung des Eingabewertes und den Gewichten berechnet.

4. Parameteraktualisierung: Die Gewichte der Neuronenverbindungen werden abhän-


gig von ihrem Einfluss auf den Fehler geändert. Ziel ist es, den Fehler für die entspre-
chende Eingabe zu reduzieren [14].

2.6 Bidirectional Encoder Representations from Transformers

Das Sprachmodell wurde von Google im Paper „BERT: Pre-training of Deep Bidirectional Transfor-
mers for Language Understanding“ [9, S. 1] veröffentlicht und erzielte in einigen NLP Benchmarks
neue Bestleistungen [9]. In diesem Kapitel zum BERT wird zunächst auf die Eigenschaften beim
Sequence Modeling eingegangen. Der nächste Abschnitt behandelt die wichtigsten Komponenten
in der Architektur des Modells. Im Folgeabschnitt wird auf das für ein Sprachmodell notwendi-
ge Pre Training eingegangen, in dieser Trainingsphase werden die semantischen Repräsentationen
von Wörtern und die Struktur einer Sprache gelernt. Als letztes wird im Kapitel das Fine Tuning
besprochen, hierbei wird das vortrainierte Sprachmodell für eine spezifische Aufgabenstellung der
NLP trainiert.

31
2 Grundlagen

2.6.1 Sequence Modeling

Das Sequence Modeling adressierte darauf, die limitierenden Eigenschaften von FNN und Convoluti-
on Neural Networks (CNN) für bestimmte Aufgaben zu lösen. Erstens benötigen sie eine feste Größe
im Input und zweitens ist der gelieferte Output unabhängig von vorherigen Inputs [19]. Allerdings
wird die NER auf unterschiedlich lange Sätze angewendet und ist immer abhängig vom Kontext.
Die Wörter eines Satzes werden als Sequenz von Tokens im Input bereitgestellt und anschließend die
zugehörigen Labels als Sequenz im Output geliefert. In der Vergangenheit waren Recurrent Neural
Networks und Long Short-Term Memory vorherrschend im Sequence Modeling [43]. Die Vorhersage
dieser Modelle für einen Input xt ist abhängig von den vorherigen Inputs bis zum Zeitpunkt t.

yt = fˆ(x1 , x2 , x3 , ..., xt ) (2.8)

Die Gleichung 2.8 dient als eine Annäherung einer solchen Vorhersagefunktion mit einer variablen
Größe im Input [19]. Seit der Veröffentlichung der Transformer Architektur sind Modelle dieser Art
aufgrund des Attention Mechanism vorteilhafter im Sequence Modeling. Ein Grund dafür ist, dass
zuvor bei RNN und LSTM eine inhärent sequenzielle Berechnung einer Sequenz notwendig war,
hingegen erhöhte der Attention Mechanism immens die Parallelisierbarkeit. [43].

2.6.2 Architektur von BERT

Die Architektur von BERT verwendet aus der Transformer Architektur die Encoder Blöcke mit
einem einhergehenden Attention Mechanism, insofern werden diese drei Themen im Folgenden zuerst
behandelt. Als letztes betrachtet dieser Abschnitt die verwendeten Anpassungen, in der Architektur
von BERT gegenüber der Transformer Architektur.

Transformer

Einige große Fortschritte im Sequence Modeling, brachte im Jahr 2017 die wissenschaftliche Publi-
kation „Attention Is All You Need“ [43, S. 1] von den Google Mitarbeitern. Einerseits belegten die
Forscher die Fortschritte anhand der erzielten Bestleistungen in zwei Aufgaben der maschinellen
Übersetzung. Die im Paper vorgestellte Tranformerarchitektur verwendet innerhalb seiner Encoder
und Decoder den Attention Mechanismus, dadurch sind keine Wiederholungsschleifen mehr wie bei
RNN und LSTM nötig. Andererseits reduzierte sich die benötigte Trainingszeit der Transformer
immens mit der erhöhten Parallelisierung in der Verarbeitung einer Eingabe [43]. Außerdem ermög-
lichte diese Parallelisierung einen besseren Umgang mit langen Abhängigkeiten, im Gegensatz zu
den LSTM [1]. Die Fortschritte nutze auch ein weiteres Team von Google bei der Entwicklung vom
BERT, die ein Jahr darauf veröffentlicht wurde [9].

32
2 Grundlagen

Abbildung 2.12: Transformer Architektur in Anlehnung an [43, S. 3]

In der Abbildung 2.12 nimmt der Encoder (graue Block links) als Input eine ganze Sequenz x =
(x1 , ..., xn ) simultan entgegen. Nach den parallel zueinander laufenden Verarbeitungsschritten in-
nerhalb des Encoderblocks überreicht er die daraus resultierende Sequenz I = (i1 , ..., in ) als Ganzes
an den Decoder (graue Block rechts). Der Decoder erstellt anschließend sequenziell die Sequenz
y = (y1 , ..., ym ) im Output. Zu Beachten sind dabei die folgende zwei Eigenschaften. Erstens muss
die Länge m der Sequenz im Output nicht gleich der Länge n vom Input sein. Zweitens verarbeitet
der Decoder nur ein yj je Verarbeitungsschritt autoregressive, das heißt unter Berücksichtigung der
bereits zuvor berechneten Ausgaben yi mit der entsprechenden Bedingung yi < yj [43]. Die Not-
wendigkeit dieser Eigenschaften lassen sich z.B. anhand der in der Anwendung der maschinellen
Übersetzung erklären. Der Transformer übersetzt bspw. einen englischen Satz als eine Sequenz in
einen deutschen Satz in Form einer Sequenz. Bei der Übersetzung eines Worts innerhalb des engli-
schen Satzes nehmen die bereits zuvor übersetzten Wörter einen Einfluss auf die Semantik. Darüber
hinaus auch auf die gewählte Übersetzung vom aktuellen Wort. Im Bezug auf die unterschiedliche
Länge vom In- und Output kann es sein, dass der übersetzte Satz im Ergebnis mehr oder sogar
weniger Wörter als der Satz im Input benötigt. Abhängig von den jeweiligen Sprachen und dem
gewählten Input.

33
2 Grundlagen

Encoder

In der ursprünglichen Version vom Transformer besteht der Encoder aus sechs Encoderblöcken,
insofern steht das N in der Abbildung 2.12 für die jeweilige Anzahl an Blöcken. Ein einzelner
Encoderblock besteht aus einer Multi-Head Attention und einer Fully Connected FNN Schicht,
mit jeweils einer nachfolgenden Normalisierungsschicht. Die beiden Normalisierungsschichten bilden
jeweils die Summe aus den vorherigen Output von f (x) einer Schicht und den ursprünglichen Input x
der vorausgehenden Schicht. Die Bereitstellung des unveränderten Inputs ermöglicht eine Residual
Verbindung, die eine Verbindungsart zum Überspringen einer Schicht entspricht. Allgemein lässt
sich somit eine Normalisierungsschicht mit der Formel N orm(x + f (x)) beschreiben, bei der f (x)
repräsentativ für den Attention Mechanism bzw. das FNN steht. Aufgrund der Sprungverbindungen
wählten die Entwickler die gleiche Dimension dmodel = 512 für alle Vektoren im Modell [43].

Self Attention Mechanism

Der Self-Attention Mechnism agiert als der Schlüsselmechanismus im Transformer zum Übertragen
von Sequenzen. Von einer Sequenz mit variabler Länge x = (x1 , ..., xn ), auf eine andere Sequenz
von gleicher Länge I = (i1 , ..., in ) mit der Eigenschaft xi , ii ∈ Rd . Die Forscher zielten mit dem Me-
chanismus auf eine Verbesserung gegenüber den Recurrent und Convolutional Networks. Ein dabei
beobachteter Faktor war die beanspruchte Komplexität in der Berechnung einer Schicht. Neben dem
wurde der Grad an parallelisierbaren Berechnungen in Relation gesetzt, indem sie die minimale An-
zahl an sequenziellen Berechnungen gegenüber stellten. Außerdem analysierten die Wissenschaftler
die maximale Länge eines Pfades von zwei beliebig gewählten Eingangs- und Ausgangspositionen
im Netzwerk. Eine möglichst kurze maximale Pfadlänge ist ideal zum Erlernen von langen Abhän-
gigkeiten [43].

Schichttyp Kompläxität Sequentielle Maximale


pro Schicht Operatinen Pfadlänge
Self-Attention O(n2 · d) O(1) O(1)
Recurrent O(n · d2 ) O(n) O(n)
Convolutional O(k · n · d2 ) O(1) O(logk (n))

Abbildung 2.13: Vergleich der Schichttypen

In der Abbildung 2.13 entspricht die Größe n die Länge einer Sequenz. Die zweite Einflussvariable
d widerspiegelt hingegen die Dimension der Wortvektoren innerhalb einer Sequenz. Der Rechenauf-
wand pro Schicht ist für den Fall n < d bei der Self-Attention geringer. Der genannte Fall tritt
größtenteils bei den Vektorrepräsentationen vom Tokenizer WordPiece ein, der auch später beim
BERT verwendet wird. Der Faktor k ist die Kernelgröße der Convolutional Schicht und erhöht die
Komplexität im Allgemeinen zu den rekurrenten Netzen. [43].

34
2 Grundlagen

Abbildung 2.14: Scaled Dot-Product Attention in Anlehnung an [43, S. 3]

Die Abbildung 2.14 vergrößert im mittleren Schaubild den Multi-Head Attention Mechanism, in
dieser Darstellung werden die mehrfachen Attention Heads erkennbar. Die Größe h steht für die
Anzahl an Attention Heads, die jeweils parallel zueinander das Scaled Dot-Product berechnen. Der
schematische Ablauf vom Scaled Dot-Procduct wird in der Vergrößerung rechts in der Grafik gezeigt
und erhält im Input die Matrizen Q, K und V [43]. In der Folgenden Abbildung 2.15 wird gezeigt,
wie die Matrizen für den Input berechnet werden.

Abbildung 2.15: Self-Attention Matrix Berechnung für die Vektoren Q, K, V [2]

Die Transformer Inputsequenz x = (x1 , ..., xn ) beinhaltet die nummerischen Vektordarstellungen


vom WordPiece Tokenizer [43]. Die Wortvektoren in x repräsentieren weiterhin die syntaktische
und semantische Bedeutung vom ursprünglichen Wort. Demzufolge entspricht die Matrix X aus
der Abbildung 2.15 der Inputsequenz x für den ersten Encoderblock vom gesamten Encoder. Alle
anderen Encoderblöcke nutzen für X jeweils den Output vom vorherigen Encoderblock [46]. Für alle

35
2 Grundlagen

Encoderblöcke gilt jedoch, dass X jeweils mit den gelernten Gewichtungsmatrizen W Q , W K und
W V multipliziert wird. Die Ergebnisse der Matrixmultiplikationen sind die Inputmatrizen Query
(Q), Key (K) und Value (V ) für das Scaled Dot-Product. In der Abbildung 2.15 wird die tatsächliche
Dimension eines Vektors dimXi = 512 mit vier Kästchen dargestellt, die Dimension der Vektoren
dimQi , dimKi , dimVi = 64 entsprechen drei Kästchen [2].

Abbildung 2.16: Scaled Dot-Product [2]

Die Abbildung 2.16 veranschaulicht die im Scaled Dot-Product zugrunde liegende Formel. In der
Formel wird√zunächst die Matrixmultiplikation von Q und K T durchgeführt und anschließend durch
die Wurzel dk geteilt bzw. mit dem Skalar √1d multipliziert. Die Dimension der Zeilenvektoren
k
von K ergeben den Wert für die Variable dk . Die Division dient als Parameter für die äußere
Softmax Funktion. Zuletzt wird die normalisierte Matrix mit der Matrix V multipliziert und liefert
die Ergebnismatrix Z [2]. Dieselbe Formel wird allen in Attention Heads, im ursprünglichen Paper
h = 8, eines Multi-Head Attention Mechanism parallel berechnet [43]. Jeder Attention Head besitzt
initial zufällig gewählte Gewichte.

Abbildung 2.17: Übersicht vom Scaled Dot-Product in allen Attention Heads [2]

36
2 Grundlagen

In der Abbildung 2.17 wird eine Gesamtübersicht der zuvor beschriebenen Matrizen in allen Attenti-
on Heads gezeigt. Nach den Berechnungen der acht Attention Heads werden alle korrespondierenden
Matrizen Z0 bis Z7 konkateniert. Als Nächstes wird die zusammenhängende Matrix, bevor sie an das
FNN übergeben wird, noch mit der Gewichtsmatrix W O multipliziert. Die Zeilenvektoren besitzen
in der darauffolgenden Matrix Z die Dimension dimZi = 512, und können somit an das FNN über-
geben werden [2]. Die zugehörigen Stellen der Matrizen Z, X und R können in der Abbildung 2.12
aus der Architektur vom Transformer der entnommen werden. Zu Beginn des Unterabschnitt 2.6.2
wurde bereits erwähnt, dass der Decoderblock in der Architektur vom BERT nicht enthalten ist, und
bedarf daher keine nähere Beschreibung. Der folgende Abschnitt 2.6.2 behandelt die Veränderungen
in der Architektur von BERT auf Basis von der Transformer Architektur.

Anpassungen bei BERT

In der Architektur von BERT verwendeten die Entwickler nur den Encoder in einem größeren
Maßstab als in der ursprünglichen Version vom Transformer. Die Forscher wählten ebenfalls größere
Dimensionen in den Feedforward Neural Networks und die Attention Heads innerhalb der einzelnen
Encoderschichten [9].

Abbildung 2.18: BERT Modellgrößen [1]

Im Paper zur Veröffentlichung von BERT bezeichnet L die Menge an Encoderschichten, H die
Anzahl an verborgenen Schichten und A den Betrag an Self-Attention Heads. Anhand der Größen
publizierten die Forscher die beiden Varianten BERTBASE (L = 12, H=768, A=12 , trainierbare Pa-
rameter = 110M) und BERTLARGE (L = 24, H=1024, A=16, trainierbare Parameter = 340M) [9].
Für die größere Version wurde doppelt so viele Encoderblöcke verwendete als in der Base Variante.
In der Abbildung 2.18 wird der Unterschied besonders deutlich. Die gewählte Größe der Variante
Base diente den Wissenschaftlern für ein Vergleich mit dem konkurrierenden OpenAI-GPT. Die
Dimensionen vom Large Model ermöglichten beste Ergebnisse in verschiedenen NLP Benchmarks
[1].

Input Darstellung

Für das Pre Training von BERT wurden ausschließlich Satzpaare im Input verwendet. Im Kontrast
dazu wird beim Fine Tuning abhängig von der spezifischen Aufgabe entweder Satzpaare oder nur
einzelne Sätze verwendet. Die Sätze sind in diesem Kontext nicht zwingend als linguistische Sätze
im klassischen Sinne zu verstehen, sondern können Textabschnitte von beliebiger Länge sein [9].

37
2 Grundlagen

Als erstes werden die einzelnen Wörter anhand vom WordPiece Tokenizer auf Token Embeddings
bzw. Wort Embeddings abgebildet. Das Vokabular von WordPiece beinhaltet rund 30.000 verschie-
dene Token Embeddings. Ein englischer Sprachkorpus, mit dem WordPiece trainiert wurde, diente
als Grundlage für die resultierenden Vektordarstellungen. Die größte Menge im Vokabular sind die
zugehörigen Word Embeddings, der häufigsten Wörter und Teilwörter aus dem Korpus. Neben die-
sen, existieren noch Embeddings für die einzelnen Buchstaben der englischen Sprache. Das gesamte
Vokabular kann demzufolge in vier Gruppen eingeteilt werden [27]:

1. Tokens für ganze Wörter


2. Tokens für Teilwörter am Anfang eines Wortes
3. Tokens für Teilwörter am Ende oder in der Mitte eines Wortes (## Präfix)
4. Tokens für alle einzelne Buchstaben

Das englische Wort „embeddings“ würde bspw. in die Tokens aus den Gruppen 2., 3. und 4. wie in
der folgenden Konsolenausgabe dargestellt werden [27].
[ ’ em ’ , ’ ## bed ’ , ’ ## ding ’ , ’ ## s ’]

Im nächsten Schritt transformieren die Tokens, in eine vom WordPiece gelernte Vektordarstellung
mit nummerischen Werten. Die Token Embeddings sind eine von drei notwendigen Embeddings pro
Wort, Teilwort oder Buchstabe und wird in der Abbildung 2.19 veranschaulicht.

Abbildung 2.19: Input Darstellung [9, S. 5]

In der Darstellung werden zwei Sätze in der Inputsequenz verwendet. Zur Aufteilung der beiden
Sätze wird ein spezielles [SEP] Token eingefügt, das [CLS] Token dient für Klassifizierungsaufgaben
der ganzen Inputsequenz. Der erste Summand der Inputsequenz besteht aus den Token Embeddings,
zusammen mit den zwei zusätzlichen Token [SEP] und [CLS]. Als Nächstes wird zu jedem Token
ein Segmenent Embedding, abhängig von der jeweiligen Satzzugehörigkeit hinzugefügt. Neben dem
[SEP] Token ermöglichen die Segment Embeddings eine Zuordnung in die beiden Sätze. Zuletzt
wird noch ein Position Embedding an jedes Token Embedding beigefügt. Ein Position Embedding
gibt Aufschluss über die relative Position, eines Tokens innerhalb der Inputsequenz. Jedes daraus
resultierende Token Ti im Input besitzt dieselbe Dimension, wie die Anzahl an verbogenen Schichten
im Modell Ti ∈ RH . [9].

2.6.3 Pre Training

Die Forschung im Bereich der Bildverarbeitung zeigte uns bereits die Bedeutung vom Transferlernen,
basierend auf einem Pre Training mit dem ImageNet Datensatz [48]. Weiterhin demonstrierte auch

38
2 Grundlagen

das intensive Pre Training von Sprachmodellen in der Sprachverarbeitung verbesserte Ergebnisse
[6], dazu zählt ebenfalls die NER auf Token-Ebene [11]. Das Pre Training von BERT trainierte ein
allgemeines Sprachverständnis in das Sprachmodell, dazu absolvierte es zwei Unsupervised Aufgaben
gleichzeitig. Zum einen das Masked Language Modeling (MLM), mit ihr soll der bidirektionale
Kontext eines Eingangstokens erfasst werden. Auf der Basis vom bidirektionalen Kontext wird
eine hochwertige semantische Repräsentation des Eingangstokens im Pre Training erlernt. Zum
anderen diente Next Sentence Prediction (NSP) zum Erlernen der Beziehung über die Satzgrenzen
hinaus. Die beiden Aufgaben wurden parallel auf jedes Satzpaar vom Trainingskorpus durchgeführt.
Einerseits bestand der Korpus aus englischsprachigen Buchkorpora mit ca. 800 Millionen Wörtern
und anderseits aus Texten von Wikipedia mit ca. 2.500 Millionen Wörtern. Anhand der riesigen
Datenmenge war es möglich, lange Textpassagen für die beiden Sätze in den Inputsequenzen zu
extrahieren. In den nächsten beiden Abschnitten wird näher auf die Aufgaben MLM und NSP
vom Pre Training eingegangen. Nach Abschluss vom Pre Training ist das Modell bereit, für diverse
Feinabstimmungen auf Problemstellungen aus dem NLP [9].

Masked Language Modeling

Die vorherigen Sprachmodelle erfassen in den Embeddings entweder nur den linken oder nur den
rechten Kontext eines Wortes. Zum Beispiel beinhalten die Embeddings vom OpenAI-GPT den
linken Kontext eines Wortes. In der Abbildung 2.20 wird der Vergleich der Modelle veranschaulicht.
Genauso erfasst ELMo nicht vollständig in allen Schichten den bidirektionalen Kontext. Das Modell
nutzt eine Verkettung von einem links nach rechts und einem rechts nach links unabhängig trainier-
ten LSTM. Nur die im Pre Training von BERT gelernten Embeddings repräsentieren sowohl den
linken als auch den rechten Kontext eines Wortes in allen Schichten [9].

Abbildung 2.20: Unterschiede in der Kontexterfassung der Modelle [9, S. 13]

Der Grund dafür ist das Masked Langugage Modeling (MLM). Die Aufgabe trainierte den bidirek-
tionalen Kontext von Wörtern in den Embeddings vom Sprachmodell. Aus der Abbildung 2.21 ist
entnehmbar, dass dafür in der Inputsequenz beide Sätze A und B maskiert wurden.

39
2 Grundlagen

Abbildung 2.21: Pre Training [9, S. 3]

Ein prozentualer Anteil der Tokens wurde nach einem Zufallsprinzip mit einem [Mask] Token er-
setzt. Das Ziel der Maskierung war, im zugehörigen Output Token das ursprüngliche Wort zu be-
stimmen. Das Zufallsprinzip wählte 15 % aller Tokens aus und nur ein prozentualer Anteil wurde
davon tatsächlich maskiert. Würde zum Beispiel im noch nicht gelabelten Satz my cat is great
das Token cat zufällig ausgewählt werden, ergeben sich daraus folgende drei Möglichkeiten [9]:

• Mit einer Warscheinlichkeit von 80 % würde das Token mit einem [Mask] Token ersetzt werden
my cat is great → my [Mask] is great
• Mit einer Warscheinlichkeit von 10 % würde das Token mit einem zufälligen Token ersetzt
werden z.B. my cat is great → my cherry is great
• Mit einer Warscheinlichkeit von 10 % wird das Token garnicht ersetzt
my cat is great → my cat is great

Die Ahnungslosigkeit über die Stellen der maskierten bzw. ausgetauschten Wörter zwingt BERT
eine verteilte und kontextbezogene Darstellung aller Inputtokens zu erhalten. Nur die Outputtokens
der zuvor maskierten Tokens wurden in ein weiteres FNN geleitet und anschließend in eine Softmax
Funktion übergeben. In der Abbildung 2.22 wird das folgend beschriebene Verfahren skizziert. Die
Softmax Funktion besitzt repräsentativ für jedes Wort Embedding im Vokabular (dvoc ), ein künst-
liches Neuron in seiner Ausgabe [9]. Im gezeigten Fall wird das zuvor maskierte Outputtoken T2 in
das FNN geschickt.

40
2 Grundlagen

Abbildung 2.22: Fehlerberechnung mittels Cross Entropy Loss in Anlehnung an [S. 3][9]

Das daraus resultierende Ergebnis der Softmax Funktion konvertiert T2 in eine Wahrscheinlich-
keitsverteilung S über das gesamte Vokabular. Der One Hot Encoded Vektor L weist ebenfalls die
gleiche Dimension vom Vokabular (dvoc ) auf. Allerdings besitzt L die Wertemenge W = {0, 1} und
nur an der zugehörigen Stelle vom tatsächlichen Wort entspricht der Wert 1, ansonsten immer 0. Die
Vektoren S und L sind die Parameter der Cross Entropy Loss, in der Gleichung 2.9 zum Berechnen
des Fehlerwerts [9]. Anhand von dem berechneten Fehlerwert wird das Modell schrittweise in dieser
Trainingsphase optimiert [9].
d
Xvoc

E(L, S) = li log si (2.9)


i=1

Next Sentence Prediction

Im Pre Training zielte die Next Sentence Prediction (NSP) auf das Erlernen der Beziehung zwischen
zwei Sätzen. Aus diesem Grund benötigte das Pre Training immer zwei Sätze A und B in der
Inputsequenz. Für die eine Hälfte der Sequenzen im Training folgte der Satz B auf dem Satz A in
der ursprünglichen Textquelle. Insofern ist die Aufgabe bei der NSP zu bestimmen, ob der Satz
B auf den Satz A im vorliegenden Satzpaar folgt. In der Abbildung 2.21 ist der dafür notwendige
Outputvektor C ∈ RH vom eingehenden [CLS] Token ersichtlich. Die Transferaufgaben Question
Answering (QA) und Natural Language Inference (NLI) profitieren vom Training dieser binären
Entscheidungsaufgabe [9].

41
2 Grundlagen

2.6.4 Fine Tuning

Das Fine Tuning ist ein Supervised Training basierend auf ein bereits vortrainiertes Modell. Die
nachgelagerte kürzere Trainingsphase ermöglicht das Transferlernen im Fall von BERT vieler ver-
schiedener Aufgaben aus dem NLP. Der Self Attention Mechanism vom Transfomer gewährt BERT
diese Flexibilität, in der Auslegung seiner endgültigen Aufgabenstellung. Die Architektur unterschei-
det sich beim Fine Tuning von der im Pre Training kaum. Nur ein neu aufgesetztes FNN mit einer
Softmax Funktion wird in der Output Schicht hinzugefügt. Das neuronale Netz übernimmt dort die
Rolle des Klassifizierer. Die erlernten Parameter während des Pre Trainings in den Encoderschich-
ten werden nur noch feinabgestimmt. Im Gegensatz werden die Parameter des FNN Klassifizierer
von Grund auf trainiert. Das Vorgehen erspart erheblich die notwendige Trainingszeit für das Fine
Tuning im Vergleich zum Pre Training.

Abbildung 2.23: Fine Tuning für Named Entity Recognition [9, S. 3]

Abhängig von der zu erlernenden Aufgabe werden unterschiedlich gelabelte Trainingsdaten in der
Inputsequenz benötigt. In dieser Bachelorarbeit wird BERT auf die Named Entity Recognition
feinabgestimmt. Insofern sind für das Fine Tuning auf die NER nur einzelne Sätze mit wortweise
belabelten Entity Tags notwendig. Die Abbildung 2.23 veranschaulicht den Aufbau der Ein- und
Ausgabe eines Fine Tunings auf die NER. Die kontextuellen Repräsentationen der Eingangstoken
Ti in der Ausgabe werden in das FNN zur Klassifizierung geschickt.

42
3 Praxis

3.1 Vorüberlegungen für die NER Fine Tunings

3.1.1 Trainingsdaten

Im Hinblick auf den Vergleich der beiden BERT-Modelle werden zwei verschiedene Trainingsdaten-
sätze fürs Fine Tuning benötigt. Die verwendeten Datensätze sollen sowohl aus einer allgemeinen,
als auch aus einer spezifischen Sprachdomäne stammen. Aufgrund eines Vergleichs der Mehrklassen-
Klassifizierung müssen die beiden Datensätze mit dem identischen Tagset annotiert sein. Die nächs-
te Anforderung soll für ein ausgewogenes Potenzial in den beiden Fine Tunings sorgen. Zu diesem
Zweck müssen die Datensätze möglichst die gleiche Anzahl an annotierten Sätzen aufweisen.

Allgemeine Sprachdomäne

Das feinabgestimmte Modell mit der allgemeinen Sprachdomäne verwendete den CoNLL-2003 Da-
tensatz, bestehend aus englischen und deutschen Zeitungsartikeln. Allerdings wurde für das Fine
Tuning nur der englische Trainingsdatensatz verwendet. In der Tabelle 3.1 a) wird der englische Da-
tensatz jeweils für die Trainings- und Testdaten in sprachliche Einheiten aufgeteilt. Im Unterschied
dazu separiert Tabelle 3.1 b), die annotierten Tokens in die Kategorien des Tagsets [11].

Artikel Sätze Tokens LOC MISC ORG PER


Training 946 14.987 203.621 Training 7140 3438 6321 6600
Test 231 3.684 46.435 Test 1668 702 1661 1617
(a) Dateneinheiten (b) Entitäten

Tabelle 3.1: Einteilung der Daten in Artikel, Sätze, Tokens und Entitätstypen [11]

Die Abbildung 3.1 veranschaulicht das zugrunde liegende Datenformat anhand von einem Beispiel-
satz, aus dem CoNLL-2003 Datensatz.

U.N. NNP I-NP I-ORG


official NN I-NP O
Ekeus NNP I-NP I-PER
heads VBZ I-VP O
for IN I-PP O
Baghdad NNP I-NP I-LOC
. . O O

Abbildung 3.1: Datenformat im CoNLL-2003 Datensatz [11]


3 Praxis

Für jedes Wort und Satzzeichen aus dem Datensatz wird eine Zeile mit jeweils vier getrennten
Feldern angelegt. Das erste Feld beinhaltet das Wort bzw. den Token, im nächsten Feld befindet
sich zugehörige das POS-Tag. Der Punkt besitzt kein passendes POS-Tag und deshalb wird dafür
in der Spalte ein weiterer Punkt eingetragen. Die letzten beiden Felder sind das damit verbundene
Chunking Tag und Named Entity Tag. Eine Leerzeile dient zum Separieren zwischen den Sätzen.
Für das Fine Tuning auf die Named Entity Recognition sind somit nur die erste und vierte Spalte
von entscheidender Bedeutung. In den Chunking und Entity Tags wird das sogenannte IOB-Schema
eingesetzt. Das Schema markiert die Tags von Wörtern am Anfang einer Entität bzw. Phrase nach
dem Muster B-Tagtyp. Hingegen werden Tags von Wörtern innerhalb oder am Ende einer Entität
bzw. Phrase mit I-Tagtyp gekennzeichnet. Die Unterscheidung gewährleistet, dass zwischen aufein-
anderfolgende Entitäten bzw. Phrasen vom selben Typ differenziert werden kann. Alle Wörter, die
keiner Kategorie zuordenbar sind, werden mit einem O-Tag annotiert. Das verwendete Entitäten
Tagset beinhaltet die vier Kategorien bzw. Typen [11]:

1. LOC Lokation
2. MISC Sonstig
3. ORG Organisation
4. PER Person

Die vier Kategorien und ca. 14.987 Trainingsätze sind insofern die Vorgabe für den zweiten Daten-
satz.

Spezifische Sprachdomäne

Die vorherige Festlegung im Tagset und Umfang der Trainingdaten muss bei der Wahl für die spe-
zifischen Trainingsdaten berücksichtigt werden. In diesem Zusammenhang bietet sich der Datensatz
EWNERTC an. Der gewählte Datensatz ist eine Sammlung englischer Wikipedia Texte aus über
25 verschiedenen Domänen. Die Veröffentlicher stellen mehrere Varianten zur Verfügung, unter ih-
nen befindet sich eine mit dem geforderten Tagset. In dieser Version wurden die zuvor ca. 1000
domänenspezifischen Entitäten Tags jeweils auf einen der vorgegebenen Tag abgebildet. Weitere
Seiteneffekte reduzierten in der Version die ursprüngliche Menge an Sätzen innerhalb der Domänen
und die Domänen insgesamt [36]. Für die geforderte Anzahl an Trainings- und Testsätze sind, in der
gewählten Domäne Musik, weiterhin genügend Sätze enthalten. Infolgedessen werden beide zuvor
gestellte Ansprüche mit dem EWNERTC Datensatz erfüllt. Nur der strukturelle Aufbau benötigt
noch eine Erklärung für den gewählten Datensatz, in der jede Zeile dieses Mal einen ganzen Satz
repräsentiert. Die folgende Zeile ist ein Vertreter aus der EWNERTC Datensammlung und dient
zur Veranschaulichung.
’ music B - MISC I - MISC O O O O Brian Elias is a composer . ’

Am Anfang einer Zeile steht die Domäne, getrennt durch ein Tab folgen die mit Leerzeichen separier-
ten Tags eines Satzes. Ein weiterer Tab trennt die Tags von den mit Leerzeichen isolierten Wörter
und Satzzeichen. Die Entitäten Tags und Wörter bzw. Satzzeichen korrespondieren jeweils an der
relativen Position innerhalb der beiden Blöcke. Außerdem sind in der Zeile die negativen Auswirkun-
gen der Verallgemeinerung im Tagset erkennbar. Zum Beispiel müsste die Entität ’Brian Elias’
richtigerweise als eine Person annotiert sein. Stattdessen wurden die beiden Tokens mit den Fallback-
Tags ’B-MISC I-MISC’ belegt. Der Anteil an unspezifischen Labels ist nach einer manuellen Analyse
einiger Sätze relativ hoch.

44
3 Praxis

3.1.2 Testdaten

Genauso sind die Testdaten aus der Musik Domäne vom EWNERTC Datensatz entnommen. Als
Grundlage für ein Experiment sind die Trainings- und Testdaten zwei disjunkte Mengen mit jeweils
zufällig ausgewählten Elementen. Die Anzahl an Sätzen orientiert sich an dem Umfang im CoNLL-
2003 Trainingssatz siehe Tabelle 3.1. Insofern sind ebenfalls die Labels in den Testdaten teilweise
nicht präzise genug. Das feinabgestimmte Modell mit den Musikdaten wird dort wahrscheinlich
bessere Vorhersagen treffen. Die Diskrepanz muss somit in der Auswertung der Evaluation berück-
sichtigt werden.

3.1.3 Software

Der folgende Abschnitt stellt die meistgenutzte Software in der Versuchsdurchführung vor. Die
Softwareprodukte für Python dienten für das Fine Tuning vom domänenspezifischen Modell, die
anschließende Auswertung und die Visualisierung der Klassifizierungsergebnisse.

Google Colaboratory

Für die praktische Ausarbeitung wird die Entwicklungsumgebung Google Colaboratory verwendet.
Basierend auf dem Jupyter Notebook eignet sich die Webanwendung zum Ausführen von Pythonco-
de im Browser. In der interaktiven Entwicklungsumgebung wird vorab keine Konfiguration benötigt.
Außerdem stellt Google Colaboratory eine kostenfreie Nutzung von GPUs und TPUs zum Trainie-
ren neuronaler Netze zur Verfügung. Bis zu einer maximalen Dauer von 12 Stunden am Stück
anschließend wird die virtuelle Laufzeitumgebung zurückgesetzt. Innerhalb eines geöffneten Skripts
können zwei Arten von Zellen angelegt werden. Als Erstes sind die Codezellen zu erwähnen, hier
wird Python Code in logischen Einheiten zusammengefasst. Die Codzellen sind isoliert von ande-
ren Codezellen im Notebook ausführbar. Im Unterschied dazu sind dort angelegte Variablen nach
der Ausführung global im Notebook verfügbar. Der zweite Zellentyp dient zum Beschreiben der
Vorgänge im inneren der Codezellen. Für eine visuelle Aufbereitung der Beschreibungen sind sie
fähig, z.B. Bilder, Rich Text, HTML oder LaTeX Code darzustellen. Notebooks erstellt mit Goo-
gle Colaboratory können mit anderen Personen zum Kommentieren oder Bearbeiten geteilt werden
[24].

PyTorch

Mit dem Machine Learning Framework PyTorch wird für das Fine Tuning von BERT die benötigte
Datenstruktur erstellt. Die Tensordatenstruktur torch.Tensor ist von essenzieller Bedeutung bei
der Darstellung und Verwendung der Daten. Der Begriff Tensor existiert auch in der Mathematik
und abstrahiert in seiner modernen Bedeutung die Skalare, Vektoren und Matrizen. In Abbildung 3.2
sind die vier Varianten von Tensoren veranschaulicht. Die Dimension bzw. der Rang null entspricht
einem Skalar. Im Gegensatz dazu ist ein Vektor mit einem Tensor von Rang eins gleichzusetzen. Eine
zweidimensionale Matrix korrespondiert mit einem Tensor von Rang zwei. Nur Tensoren höherer
Ränge bzw. Dimensionen verfügen über keine eigene Bezeichnung mehr. Die Schnittstellen der
Tensoren von PyTorch erinnern stark an die Methoden der multidimensionalen Arrays von NumPy.
Insofern sind mit den Tensoren ebenfalls Operation in der linearen Algebra möglich [29].

45
3 Praxis

Abbildung 3.2: Tensoren [29]

Im Folgenden werden die positiven Eigenschaften des Frameworks genannt, die für die Wahl ent-
scheidend sein können. Ähnlich wie bei NumPy sind mit PyTorch die Tensoroperationen auf der
CPU berechenbar. Zusätzlich bietet PyTorch einen erheblichen Vorsprung gegenüber von NumPy,
indem es die Operationen mit der GPU ermöglicht. In Verbindung mit dem CUDA-Toolkit von
Nvidia wird die Performance der Grafikkarte verfügbar. Ein Vorteil speziell gegenüber TensorFlow
besitzt PyTorch, in der Flexibilität mit dem Paket torch.autograd. Im Zuge dessen sind Abfrage-
Bedingungen innerhalb der forward() Methode möglich. Anhand der Bedingung kann in jedem
Durchlauf ein dynamisch gerichteter azyklischer Graph (DAG) erstellt werden. Der Graph ist somit
zur Laufzeit flexibel anpassbar, im Gegensatz zum statischen Graph von TesorFlow [29].

Transformers

Transformers wird für verschiedene NLP Aufgaben in Verbindung mit TensorFlow oder PyTorch
verwendet. Die Bibliothek stellt ausgehend von acht Architekturen 32 vortrainierte Sprachmodel-
le zur Verfügung, darunter auch Varianten von BERT. Einige der vortrainierten Modelle sind in
mehr als 100 unterschiedliche Sprachversionen veröffentlicht. Die Bibliothek von der Firma Hug-
gingFace zeichnet sich durch seine einfache Bedienungsweise aus. Mithilfe von Transformers sind
das Fine Tuning von vortrainierten Modellen und die Evaluation möglich. Zusätzlich können die
feinabgestimmten Modelle über die Bibliothek mit anderen Personen geteilt werden [42].

Seqeval

Das Framework Seqeval ermöglicht die Evaluierung einer Sequenzklassifizierung. Eine entsprechende
Bewertung benötigt nur die vorhergesagten und tatsächlichen Labels im Input. Im Fall der Named
Entity Recognition werden die Metriken Precision, Recall und F1 Score für jede Entitätsklasse
einzeln berechnet [28].

Matplotlib

Matplotlib ist eine umfangreiche Bibliothek zur Visualisierung von Daten in Python. Die Visuali-
sierungen sind in einem zwei- oder dreidimensionalen Koordinatensystem darstellbar. Neben einem
statischen Bild bietet das Modul animierte oder interaktive Darstellungen an. Zahlreiche individuelle
Einstellungen in den Diagrammen wie z.B. verschiedene Linienstile, Schriftarten und Achseneigen-
schaften sind realisierbar. Für die Persistenz der fertigen Illustrationen werden einige Dateiformate
zum Export angeboten [26].

46
3 Praxis

NumPy

Die Open-Source-Bibliothek NumPy beinhaltet Tools für numerische Berechnungen in Python. In


Kombination bieten N-dimensionale Arrays und der auf C optimierte Code eine performante Re-
chenleistung. Zusätzlich wird durch die einfache Syntax der Einstieg in das Modul erleichtert [31].

3.2 Versuchsdurchführung

In diesem Kapitel wird die Durchführung des Experiments beschrieben. Zu diesem Zweck werden
die wichtigsten Programmteile für die Vorbereitung der Daten, das Fine Tuning und die Evaluation
erklärt. Das Fine Tuning wird ausschließlich mit den spezifischen Trainingsdaten in dieser Bachelor-
arbeit demonstriert. Ein geeignetes Modell für den Vergleich der Evaluation wird von der Bibliothek
transformers bereitgestellt. Das Vergleichsmodell wurde mit dem CoNLL-2003 Datensatz ausge-
hend vom Pre Trained BERT-Base-Cased auf die NER feinabgestimmt [22]. Demzufolge nutzte
David S. Lim das gleiche Ausgangsmodell wie im Fine Tuning mit den spezifischen Trainingsda-
ten.

3.2.1 Vorbereitung der Daten

Zuerst wird der EWNERTC Datensatz zeilenweise gelesen und dabei geprüft, ob der Anfang der Zeile
mit der gewählten Domäne Musik beginnt. Im positiven Fall wird die gesamte Zeile als Zeichenfolge
in einer Liste abgelegt.
[ ’ music B - MISC I - MISC O O O O Brian Elias is a composer . ’ , ...]

Im nächsten Schritt wird die Liste auf die ersten 18.705 Elemente reduziert und dient später als
Datengrundlage für den Trainings- und Testdatensatz. Die übrigen Zeilen werden in zwei Listen
aufgeteilt und jeweils in einer übergeordneten Liste gespeichert.
[[ ’B - MISC I - MISC O O O O ’] , ...]
[[ ’ Brian Elias is a composer . ’] , ...]

Für die Listen werden nur die beiden Blöcke mit den Tags und dem Satz entnommen in Form
einer zusammengesetzten Zeichenkette. Innerhalb der beiden Listen wird darauffolgend nach einem
Leerzeichen tokenisiert. Insofern korrespondiert ein Tag an der Stelle Index i mit dem Wort aus der
zugehörigen zweiten Liste an der Stelle Index i.
tags = [[ ’B - MISC ’ , ’I - MISC ’ , ’O ’ , ’O ’ , ’O ’ , ’O ’] , ... ]
words = [[ ’ Brian ’ , ’ Elias ’ , ’ is ’ , ’a ’ , ’ composer ’ , ’. ’] , ... ]

Im EWNERTC Datensatz wurden semantisch die gleichen vier Entitätsklassen wie im CoNLL-2003
Datensatz verwendet. Allerdings unterscheiden sich dort bei manchen Tags die Schreibweise im
Vergleich zum CoNLL-2003 Datensatz. Zum Beispiel wird der Beginn einer Person mit ’B-PERSON’
gelabelt, anstelle von ’B-PER’. Für einen direkten Vergleich in der Evaluation müssen die Tags auf
die CoNLL-2003 Schreibweise abgebildet werden.
tags = [ list ( map ( lambda x :
{ ’B - PERSON ’: ’B - PER ’ , ’I - PERSON ’: ’I - PER ’ , ’B - LOCATION ’: ’B - LOC ’ , ’I -
LOCATION ’: ’I - LOC ’ , ’B - ORGANZIATION ’: ’B - ORG ’ , ’I - ORGANIZATION ’: ’
I - ORG ’ , ’B - MISC ’: ’B - MISC ’ , ’I - MISC ’: ’I - MISC ’ , ’O ’: ’O ’}
. get ( x ) , i ) ) for i in tags ]

47
3 Praxis

Die obige Programmzeile bildet jedes Element innerhalb der Listen von tags auf die entsprechende
CoNLL-2003 Notation ab. Im nächsten Codeausschnitt werden die Listen tags und words anhand
der Methode train_test_split paarweise per Zufallsprinzip aufgeteilt. Insofern korrespondieren
die Elemente in beiden den Listenpaaren z.B. train_texts und train_tags weiterhin. Der Para-
meter test_size bestimmt dabei den prozentualen Anteil an Testdaten [40].
from sklearn . model_selection import train_test_split
# split dataset in a training set and a validation set
train_texts , test_texts , train_tags , test_tags = train_test_split (
words , tags , test_size =.2)

Die Wörter in den Listen train_texts und test_texts benötigen eine weitere Tokenisierung.
Im Abschnitt 2.6.2 wurde bereits der spezielle Input von BERT besprochen. Neben den teilweise
zerlegten Wörtern werden zusätzliche Embeddings für die Tokens benötigt. Zu Beginn wird im
folgenden Programmblock der vortrainierte WordPiece Tokenizer aus der Bibliothek transformers
Initialisiert und dem Objekt tokenizer zugewiesen. Anschließend wird die Hauptmethode vom
tokenizer mit den beiden Wortlisten train_texts und test_texts aufgerufen. Die Tokenization
überspringt mit is_split_into_words=True den Verarbeitungsschritt zur Aufteilung in einzelne
Wörter. Stattdessen beginnt sie direkt mit der Aufteilung in Teilwörter [42].
from transformers import BertTokenizerFast
# download tokenzier
tokenizer = BertTokenizerFast . from_pretrained ( ’ bert - base - cased ’)
# create encodings for the tokens
train_encodings = tokenizer ( train_texts , is_split_into_words = True ,
return_offsets_mapping = True , padding = True , truncation = True )

test_encodings = tokenizer ( test_texts , is_split_into_words = True ,


return_offsets_mapping = True , padding = True , truncation = True )

Anhand der Einstellung return_offsets_mapping=True enthält der Rückgabewert zusätzlich für


jeden Token ein Tupel [42]. Der Tupel beinhaltet die relative Start- und Endposition im Bezug auf
das ganze Wort. Im folgenden Beispiel wird die Funktionsweise deutlicher.
tokens =[ ’[ CLS ] ’ , ’W ’ , ’ ## agon ’ , ’[ SEP ] ’]
offset_mapping =[(0 ,0) ,(0 ,1) ,(1 ,5) ,(0 ,0) ]

Der Parameter padding=True sorgt für eine gleiche Sequenzlänge im Batch. Für dieses Vorhaben
werden kürzere Sequenzen als die längste Sequenz im Batch mit [PAD] Tokens am Ende aufgefüllt.
Hingegen werden Sequenzen mit truncation=True gekürzt, die länger als die maximale Inputlänge
dmodel = 512 vom BERT sind. In der Rückgabe werden die Objekte vom Typ BatchEncoding gelie-
fert. Die Objekte train_encodings und test_encodings beinhalten somit elementweise die Felder
input_ids, token_type_ids, attention_mask und das bereits Beschriebene offset_mapping. Die
folgende Erklärung der restlichen Felder nimmt Bezug auf die Begriffe der Abbildung 2.19. Aus der
Darstellung entspricht das Feld input_ids den Token Embeddings. In der jede Liste die numerische
Darstellung aller Tokens einer Sequenz widerspiegelt [42].
tokens =[ ’[ CLS ] ’ , ’ tech ’ , ’ ## mat ’ , ’ ## rix ’ , ’[ SEP ] ’ , ’[ PAD ] ’]
input_ids =[101 , 13395 , 21943 , 14799 , 102 , 0]

Die nächste Erklärung benötigt das Feld token_type_ids und entspricht den Segment Embeddings.
Die Elemente sind vom Wert null, wenn das zugehörige Token aus dem ersten Satz in der Sequenz

48
3 Praxis

stammt. Für Tokens aus dem zweiten Satz in der Sequenz wird entsprechend der Wert eins einge-
tragen. Die Named Entity Recognition mit BERT ist eine Einzelsatz-Klassifizierung. Folglich sind
alle Inputsequenzen, einzelne linguistische Sätze und die Einträge in dem Feld immer null.
tokens =[ ’[ CLS ] ’ , ’ tech ’ , ’ ## mat ’ , ’ ## rix ’ , ’[ SEP ] ’ , ’[ PAD ] ’]
token_type_ids =[0 , 0 , 0 , 0 , 0 , 0]

Als Letztes wird die Aufgabe der attention_mask geschildert. Zuvor wurde bereits das Auffüllen
der Sequenzen mit [PAD] Tokens beschrieben. Hiernach ist es möglich, später Tensoren von gleicher
Dimension zu Erstellen. Anhand der Elemente in attention_mask signalisiert der Tokenizer für den
Input wichtige Tokens. Zu diesem Zweck wird der Wert eins für wesentliche Tokens vergeben und
der Wert null für vernachlässigbare [PAD] Tokens [42].
tokens =[ ’[ CLS ] ’ , ’ tech ’ , ’ ## mat ’ , ’ ## rix ’ , ’[ SEP ] ’ , ’[ PAD ] ’]
attention_mask =[1 , 1 , 1 , 1 , 1 , 0]

Aufgrund der Zerlegung einiger Wörter sind nun mehr Tokens vorhanden als Tags bzw. Labels in
train_tags und test_tags vorkommen. Genauso existieren noch keine Labels für die hinzugefügten
Tokens [CLS], [SEP] und [PAD] in den Listen. Demnach muss die Diskrepanz in der Länge der
Token- und Taglisten aufgelöst werden. Zusätzlich sind im Input vom Modell Zahlenwerte als Labels
zu verwenden. Die Funktion encode_tags erledigt beide Aufgabenstellung. Als Erstes bildet die
Funktion die Tags auf Integerwerte ab. Die entsprechende Zuordnung wird mithilfe vom Dictionary
label2id ausgeführt. In dem Dictionary sind die gleichen Werte wie in der Konfigurationsdatei vom
Vergleichsmodell enthalten [23]. In der Absicht, beim Fine Tuning mit den spezifischen Daten die
gleiche Assoziation zu trainieren. Hinterher ist es beiden Modellen möglich, in der Evaluation mit
den Testdaten die richtigen Labels zu bestimmen.
label2id = { "B - LOC " : 7 , "B - MISC " : 1 , "B - ORG " : 5 , "B - PER " : 3 ,
"I - LOC " : 8 , "I - MISC " : 2 , "I - ORG " : 6 , "I - PER " : 4 , " O " : 0}

def encode_tags ( tags , encodings ) :


# convert labels to id
labels = [[ label2id [ tag ] for tag in doc ] for doc in tags ]
encoded_labels = []
for doc_labels , doc_offset in zip ( labels , encodings .
offset_mapping ) :
# create an empty array of -100
doc_enc_labels = np . ones ( len ( doc_offset ) , dtype = int ) * -100
arr_offset = np . array ( doc_offset )
# set labels whose first offset position is 0
# and the second is not 0
doc_enc_labels [( arr_offset [: , 0] == 0) &
( arr_offset [: , 1] != 0) ] = doc_labels
encoded_labels . append ( doc_enc_labels . tolist () )
return encoded_labels

train_labels = encode_tags ( train_tags , train_encodings )


test_labels = encode_tags ( test_tags , test_encodings )

Als Nächstes werden die Labellisten aufgefüllt für die zuvor neu hinzugefügten Tokens. Für die
NER soll nur das erste Teilwort als Repräsentant für das ganze Wort bestimmt werden. Alle an-
deren Teilwörter und die speziellen Tokens sind somit irrelevant. An dieser Stelle sei anzuführen,

49
3 Praxis

dass Tokens von der Bibliothek transformers mit einem zugehörigen Label -100 in der Trainings-
und Testphase ignoriert werden. Die Position der irrelevanten Token wird mit dem Tupel vom
offset_mapping ersichtlich. Die Token [CLS], [SEP] und [PAD] erhalten dort in beiden Einträgen
die null. Dementsprechend wird an der gleichen Indexpositionen in den Labellisten eine -100 ein-
getragen. Gleichermaßen wird die Labelliste ergänzt, wenn das Tupel im ersten Eintrag ungleich
null ist. Das ist nur bei Teilwörtern in der Mitte bzw. am Ende eines Wortes der Fall. Am Ende
gibt die Funktion eine in Zahlen konvertierte und aufgefüllte Labelliste zurück [42]. Die Funktion
wird jeweils für die beiden Taglisten aufgerufen und die Rückgaben den Listen train_labels und
text_labels zugewiesen.

Erstellung vom PyTorch Datensatz

Für die Felder offset_mapping findet sich im Folgenden keine Verwendung mehr. Demnach können
sie von den Objekten entfernt werden.
train_encodings . pop ( " offset_mapping " )
test_encodings . pop ( " offset_mapping " )

In der abgeleiteten Klasse EWNERTCDataset werden die beiden Methoden von der abstrakten Klasse
torch.utils.data.Dataset überschrieben. Basierend darauf instanziiert der folgenden Codeab-
schnitt die beiden Datensätze.
import torch

class EWNERTCDataset ( torch . utils . data . Dataset ) :


def __init__ ( self , encodings , labels ) :
self . encodings = encodings
self . labels = labels

def __getitem__ ( self , idx ) :


item = { key : torch . tensor ( val [ idx ]) for key , val in self .
encodings . items () }
item [ ’ labels ’] = torch . tensor ( self . labels [ idx ])
return item

def __len__ ( self ) :


return len ( self . labels )

# create the dataset objects


train_dataset = EWNERTCDataset ( train_encodings , train_labels )
test_dataset = EWNERTCDataset ( test_encodings , test_labels )

Zu diesem Zweck benötigt der Konstruktor ein BatchEncoding Objekt und eine der zuvor erstell-
ten Labellisten [42]. Abschließend sind die Datensätze für das Fine Tuning und die Evaluation in
Verbindung mit PyTorch bereit.

3.2.2 Fine Tuning

Das spezifische Fine Tuning benötigt zunächst das vortrainierte Modell. Im ersten Schritt wird somit
das Modell mit dem später erforderlichen Vergleichsmodell heruntergeladen. Anschließend findet die

50
3 Praxis

Konfiguration für das Fine Tuning statt. Am Ende von dem Abschnitt wird das eigentliche Fine
Tuning vollzogen.

Download der beiden BERT Modelle

Die Klasse BertForTokenClassification dient zum Download der beiden Modelle aus dem Repo-
sitory. Zur Identifikation der Modelle wird die Modell-ID ’bert-base-cased’ und der Namensraum
von David S. Lim ’dslim/bert-base-NER’ übergeben. Der Parameter num_labels im Aufruf vom
spezifischen Modell bestimmt die Anzahl an Labels in der für das Fine Tuning hinzugefügten Klas-
sifizierungsschicht [42].
from transformers import Be r tF or To k en Cl as s if ic a ti on

# downloading the models


model_specific = B er t Fo rT ok e nC la ss i fi ca ti o n . from_pretrained ( ’ bert -
base - cased ’ , num_labels = len ( label2id ) )
model_dslim = Be r tF or To k en Cl as s if ic at i on . from_pretrained ( ’ dslim / bert -
base - NER ’)

Nach dem Download vom Repository benötigt das zugewiesene Modell in model_specific ein
anschließendes Fine Tuning. Der aktuelle Stand entspricht dem Pre Trained BERT-Base-Cased.
Im Gegensatz ist das Modell in model_dslim bereits feinabgestimmt und direkt für die Evaluation
einsatzbereit.

Konfiguration für das Fine Tuning

Für die Konfiguration wird ein Objekt der Klasse TrainingArguments verwendet. Als nächstes
wird das Konfigurationsobjekt an die Klasse Trainier für das Fine Tuning vom model_specific
übergeben. David S. Lim erwähnt auf der offiziellen Seite von seinem Modell, dass für das Fine
Tuning die empfohlenen Hyperparameter aus dem Paper von BERT verwendet wurden [22]. Zum
Vergleich wird im originalen Paper die folgende Auswahl in den Hyperparametern Batch Size,
Learnining Rate und Number of Epochs empfohlen [9]:

• Batch Size: 16, 32


• Learning Rate (Adam): 5e-5, 3e-5, 2e-5
• Number of Epochs: 2, 3, 4

51
3 Praxis

Es existieren somit 18 verschiedene Kombinationen mit den empfohlenen Werten für die drei Hy-
perparameter. Im Folgenden wird die gewählte Kombination in der Instanzierung vom Objekt
TrainingArguments gezeigt.
from transformers import TrainingArguments

# config training arguments


training_args = TrainingArguments (
output_dir = ’ ./ results ’ ,
num_train_epochs =3 ,
per_dev i ce _ tr a i n_ b at c h _s i ze =16 ,
per_dev i ce _e va l _b at ch _ si ze =64 ,
learning_rate =5 e -5 , #
logging_dir = ’ ./ logs ’ , # directory for storing logs
logging_steps =10 ,
)

Instanzierung der Trainer Objekte

Für das Fine Tuning und die anschließende Evaluation wird pro Modell eine Instanz der Klasse
Trainer benötigt. Das Modell model_dslim dient bekanntlich nur zur Evaluation. Aus diesem
Grund sind im Dazugehörigen Trainer Objekt die Parameter training_args und train_dataset
nicht belegt.
from transformers import Trainer

trainer_dslim = Trainer (
model = model_dslim ,
compute_metrics = compute_metrics ,
eval_dataset = test_dataset
)
trainer_specific = Trainer (
model = model_specific ,
args = training_args ,
compute_metrics = compute_metrics ,
train_dataset = train_dataset ,
eval_dataset = test_dataset
)

Im Kontrast dazu bekommen beide Objekte den gleichen Testdatensatz test_dataset für die Eva-
luation zugewiesen. Genauso wird beiden Parametern compute_metrics eine gleichnamige Funktion
übergeben, zum Berechnen und Visualisieren der Klassifizierungsergebnisse.

Beginn des Fine Tunings

Die Methode train beginnt das Training vom Modell model_specific mit den Trainingsdaten
train_dataset [42].

52
3 Praxis

# start training
trainer_specific . train ()

In der Konfiguration wurde die Ausgabe vom berechneten Fehler nach jeweils zehn Trainingsschrit-
ten eingestellt. Die Tabelle 3.2 zeigt ein paar der ersten und letzten Konsolenausgaben von den
insgesamt 2808 Trainingsschritten.

Schritt Fehlerwert
10 1.064193
20 0.530439
30 0.386199
40 0.384266
50 0.341723
... ...
2760 0.070233
2770 0.090039
2780 0.077328
2790 0.072644
2800 0.071451

Tabelle 3.2: Fehlerwerte im Fine Tuning

3.2.3 Evaluation der Modelle

Nachdem Fine Tuning vom Modell model_specific sind beide Modelle bereit für die Evaluation.
Der Aufruf von evaluate auf den Trainer Objekten, führt die Evaluation mit den Testdaten aus
[42].
# start evaluation
print ( trainer_dslim . evaluate () )
trainer_specific . evaluate ()
trainer_dslim . evaluate ()

Die übergebene Funktion compute_metrics in der Instanzierung der Trainer Objekte wird am En-
de der Evaluation eines Modells aufgerufen. Innerhalb von compute_metrics berechnet die Funktion
classification_report(true_labels, true_predictions), aus der Bibliothek seqeval, die Me-
triken [28]. Die errechneten Metriken Precision, Recall und F-Score werden dabei für jede gefundene
Entitätsklasse in einer Tabelle dargestellt.

53
3 Praxis

Precision Recall F-score Support


LOC 0.91 0.95 0.93 258
MISC 0.80 0.79 0.79 8722
PER 0.68 0.69 0.68 1494
(a) Tabelle

(b) Grafik

Abbildung 3.3: Evaluation model_specific (spezifische Sprachdomäne)

In der letzten Spalte Support sind zusätzlich die tatsächlichen Häufigkeiten der Entitäten innerhalb
der Testdaten eingetragen. Die zweite Darstellung der Werte verwendet matplotlib zur Ausga-
be einer Heatmap. In dieser Abbildung befinden sich die Metriken ebenfalls in den Spalten und
zeilenweise die vorhergesagten Entitäten. Aus dem rechten Zahlenstrahl ist mit der zugehörigen
Flächenfarbe der erzielte Wert ablesbar.

Precision Recall F-score Support


LOC 0.14 0.63 0.23 258
MISC 0.23 0.10 0.14 8722
ORG 0.00 0.00 0.00 0
PER 0.21 0.45 0.29 1494
(a) Tabelle

(b) Grafik

Abbildung 3.4: Evaluation model_dslim (allgemeine Sprachdomäne)

Die Ergebnisse der beiden Modelle in Abbildung 3.3 und Abbildung 3.4 werden im Folgeabschnitt
miteinander verglichen. Wichtig ist bei der Bewertung, die zuvor beschriebenen Mängel in den
Testdaten zu berücksichtigen.

54
4 Zusammenfassung

In den Ergebnissen der vorherigen Evaluationen sind signifikante Unterschiede erkennbar. Zur Ver-
anschaulichung der Diskrepanz stellt die Abbildung 4.1 den erzielten F-Score beider BERT-Modelle
in den Entitätsklassen gegenüber. Hierbei erzielte BERT mit einem Fine Tuning auf die spezifische
Sprachdomäne eine wesentlich bessere Prognose als das Vergleichsmodell. Als spezifische Sprachdo-
mäne wurde in den Trainings- und Testdaten die Domäne Musik aus dem EWNERTC Datensatz
ausgewählt. Zwar verwendet die Evaluation vom Vergleichsmodell dieselben spezifischen Testdaten.
Im Kontrast dazu wurde dort im Fine Tuning der CoNLL-2003 Datensatz genutzt. Dieser Datensatz
besteht aus englischen Zeitungsartikeln und repräsentiert somit eine allgemeinere Sprachdomäne.

Abbildung 4.1: Vergleich der Metrik F-Score (siehe Gleichung 2.5)

Am größten ist die Differenz vom F-Score beim Entitätstyp Lokation und beträgt 70 %. Ein Grund
für die generell großen Unterschiede, sind die teilweise verrauschten Daten im EWNERTC Daten-
satz. Das Rauschen in den Daten wurde bereits im Abschnitt 3.1.1 beschrieben. Die verrauschten
Testdaten wirkten sich besonders negativ auf die Prognosen vom allgemeinen Sprachmodell aus.
Schließlich sind die Trainingsdaten für das spezifische Sprachmodell gleichermaßen verrauscht und
das Fine Tuning trainierte somit nebenbei den Umgang mit derartigen Daten. Allerdings sind nicht
alle verrauschten Entitäten zwangsläufig als falsch einzustufen. Abhängig vom gegebenen Kontext
ergeben verschiedene Annotationen einen Sinn. Zum Beispiel würde Alabama im allgemeinen Kon-
text der Klasse Lokation zugeordnet werden. Im Kontext der Musik existiert darüber hinaus eine
gleichnamige Band. Zusätzlich beinhalten einige ihrer Albentitel ebenfalls das Wort Alabama. In
4 Zusammenfassung

diesen Zusammenhang sind die Annotationen der Klassen Organisation oder Sonstig angemesse-
ner. Aus diesem Grund bestätigt der außerordentliche Vorsprung in den gezeigten Ergebnissen die
Hypothese aus Abschnitt 1.3. Abstriche müssen einzig in Hinsicht auf die Größe des Optimierungs-
potenzials mit rauschfreien Trainings- und Testdaten gemacht werden.

56
Literatur

[1] Jay Alammar.


The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning).
http://jalammar.github.io/illustrated-bert/. Abrufdatum: 16.10.2020.
[2] Jay Alammar. The Illustrated Transformer.
http://jalammar.github.io/illustrated-transformer/. Abrufdatum: 16.10.2020.
[3] Benjamin Aunkofer. Machine Learning vs Deep Learning – Wo liegt der Unterschied?
https://data-science-blog.com/blog/2018/05/14/machine-learning-vs-deep-
learning-wo-liegt-der-unterschied/. Abrufdatum: 29.09.2020.
[4] Siddhartha Bhattacharyya, Vaclav Snasel, Aboul Ella Hassanien, Satadal Saha und
B. K. Tripathy. Deep Learning: Research and Applications. De Gruyter, 2020.
[5] Volker Briegleb. Web Summit 2017: KI kann eine Bedrohung der Menschheit sein.
https://www.heise.de/newsticker/meldung/Web-Summit-2017-KI-kann-eine-
Bedrohung-der-Menschheit-sein-3881086.html. Abrufdatum: 19.08.2020.
[6] Andrew M. Dai und Quoc V. Le. „Semi-supervised Sequence Learning“.
In: Advances in neural information processing systems. 2015, S. 3079–3087.
[7] Leon Derczynski, Alan Ritter, Sam Clark und Kalina Bontcheva.
„Twitter Part-of-Speech Tagging for All: Overcoming Sparse and Noisy Data“.
In: Proceedings of the International Conference Recent Advances in Natural Language
Processing RANLP 2013. 2013, S. 198–206.
[8] Leibniz-Institut für Deutsche Sprache (IDS). Phrasen.
https://grammis.ids-mannheim.de/progr@mm/5213. Abrufdatum: 22.09.2020.
[9] Jacob Devlin, Ming-Wei Chang, Kenton Lee und Kristina Toutanova.
„BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding“.
In: Proceedings of the 2019 Conference of the North American Chapter of the Association for
Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short
Papers). 2019, S. 4171–4186.
[10] Atefeh Farzindar, Diana Inkpen und Graeme Hirst.
Natural Language Processing for Social Media: Second Edition. Bd. 2.
Morgan Claypool, 2017.
[11] Erik F. Tjong Kim Sang und Fien De Meulder. „Introduction to the CoNLL-2003 Shared
Task: Language-Independent Named Entity Recognition“. In: Proceedings of CoNLL-2003.
2003, S. 142–147.
[12] Ian Goodfellow, Yoshua Bengio und Aaron Courville. Deep Learning. MIT Press, 2016.
[13] Arun Jagota. Named Entity Recognition in NLP.
https://towardsdatascience.com/named-entity-recognition-in-nlp-be09139fa7b8.
Abrufdatum: 28.09.2020.
[14] Uday Kamath, John Liu und James Whitaker.
Deep Learning for NLP and Speech Recognition. Springer, 2019.
Literatur

[15] TRUMPF GmbH + Co. KG.


Erzeugung von EUV-Strahlung mittels CO2-Hochleistungslasersystem und Zinn.
https://www.trumpf.com/de_DE/anwendungen/euv-lithografie/.
Abrufdatum: 18.08.2020.
[16] Markus Konrad. A lemmatizer for German language text.
https://pypi.org/project/germalemma/. Abrufdatum: 15.09.2020.
[17] Olaf Kopp. Entitäten einfach erklärt: Definition FAQ. https://www.sem-
deutschland.de/inbound-marketing-agentur/online-marketing-glossar/entitaeten/.
Abrufdatum: 25.09.2020.
[18] Olaf Kopp.
Natural Language Processing(NLP) einfach erklärt: Defintion, Bedeutung Prozesse.
https://www.sem-deutschland.de/inbound-marketing-agentur/online-marketing-
glossar/natural-language-processing/. Abrufdatum: 11.08.2020.
[19] Niranjan Kumar. Introduction to Sequence Modeling Problems.
https://towardsdatascience.com/introduction-to-sequence-modeling-problems-
665817b7e583. Abrufdatum: 14.10.2020.
[20] LEARNTEK. Named Entity Recognition with NLTK.
https://www.learntek.org/blog/named-entity-recognition-with-nltk/.
Abrufdatum: 30.09.2020.
[21] Lothar Lemnitzer und Heike Zinsmeister. Korpuslinguistik Eine Einführung. Bd. 3.
Narr Francke Attempto Verlag GmbH + Co. KG, 2015.
[22] David S. Lim. Model: dslim/bert-base-NER.
https://huggingface.co/dslim/bert-base-NER. Abrufdatum: 03.12.2020.
[23] David S. Lim. Model: dslim/bert-base-NER.
https://huggingface.co/dslim/bert-base-NER/blob/main/config.json.
Abrufdatum: 03.12.2020.
[24] Google Ireland Limited. Was ist Colaboratory?
https://colab.research.google.com/notebooks/intro.ipynb. Abrufdatum: 27.11.2020.
[25] Christopher D. Manning, Prabhakar Raghavan und Hinrich Schütze.
Introduction to Information Retrieval. Cambridge University Press, 2008.
[26] Matplotlib: Visualization with Python. https://matplotlib.org/. Abrufdatum: 30.11.2020.
[27] Chris McCormick. BERT Word Embeddings Tutorial.
http://mccormickml.com/2019/05/14/BERT-word-embeddings-tutorial/.
Abrufdatum: 20.10.2020.
[28] Hiroki Nakayama. seqeval: A Python framework for sequence labeling evaluation.
https://github.com/chakki-works/seqeval. Abrufdatum: 30.11.2020.
[29] Chi Nhan Nguyen. Neuronale Netzwerke mit PyTorch entwickeln, trainieren und deployen.
https://entwickler.de/online/machine-learning/neuronale-netzwerke-pytorch-
579898880.html. Abrufdatum: 27.11.2020.
[30] Paul Norris. The Honeybee Waggle Dance – Is it a Language?
https://animalwise.org/2011/08/25/the-honeybee-waggle-dance-–-is-it-a-language/.
Abrufdatum: 07.08.2020.
[31] NumPy. https://numpy.org/. Abrufdatum: 30.11.2020.

58
Literatur

[32] Precision and recall. https:


//en.wikipedia.org/wiki/Precision_and_recall#/media/File:Precisionrecall.svg.
Abrufdatum: 30.09.2020.
[33] NLTK Project. Natural Language Toolkit. http://www.nltk.org/. Abrufdatum: 16.09.2020.
[34] Uwe Reichel. Sprachsynthese: Part-of-Speech-Tagging. https://www.phonetik.uni-
muenchen.de/studium/skripten/P6_Sprachsynthese/3_synthese_pos.pdf.
Abrufdatum: 17.09.2020.
[35] Steffen Remus, Gerold Hintz, Chris Biemann, Christian M. Meyer, Darina Benikova,
Judith Eckle-Kohler, Margot Mieskes und Thomas Arnold.
„EmpiriST: AIPHES - Robust Tokenization and POS-Tagging for Different Genres“.
In: Proceedings of the 10th Web as Corpus Workshop. 2016, S. 106–114.
[36] Bahadir Sahin, Mustafa Tolga Eren, Caglar Tirkaz, Ozan Sonmez und Eray Yildiz.
English/Turkish Wikipedia Named-Entity Recognition and Text Categorization Dataset.
http://dx.doi.org/10.17632/cdcztymf4k.1. Abrufdatum: 20.11.2020.
[37] Prateek Sawhney. Introduction to Stemming and Lemmatization (NLP).
https://towardsdatascience.com/introduction-to-stemming-vs-lemmatization-nlp-
8c69eb43ecfe. Abrufdatum: 09.09.2020.
[38] Ronald Schmelzer. NLU, NLG und NLP: Wie und wofür Sprache verarbeitet wird.
https://www.computerweekly.com/de/feature/NLU-NLG-und-NLP-Wie-und-wofuer-
Sprache-verarbeitet-wird/. Abrufdatum: 11.08.2020.
[39] Hinrich Schütze und Robert Zangenfeind. „Einführung Computerlinguistik Morphologie I“.
Skript.
Centrum für Informations- und Sprachverarbeitung, Ludwig-Maximilians-Universität, 2013.
[40] sklearn.model_selection.train_test_split. https://scikit-learn.org/stable/modules/
generated/sklearn.model_selection.train_test_split.html. Abrufdatum: 01.12.2020.
[41] Maksim Tkachenko und Andrey Simanovsky.
„Named Entity Recognition: Exploring Features“. In: Proceedings of KONVENS 2012. 2012,
S. 118–127.
[42] Transformers. https://huggingface.co/transformers/. Abrufdatum: 30.11.2020.
[43] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones,
Aidan N. Gomez, Łukasz Kaiser und Illia Polosukhin. „Attention is All you Need“.
In: Advances in Neural Information Processing Systems 30 (NIPS 2017). Bd. 30. 2017,
S. 5998–6008.
[44] Dr. Ralf Vogel. „Morphologie und Syntax (BA)“. Skript.
Fakultät für Linguistik und Literaturwissenschaft, Universität Bielefeld, 2009.
[45] Bernd Vowinkel. Kommt die technologische Singularität?
https://hpd.de/artikel/kommt-technologische-singularitaet-13480.
Abrufdatum: 14.09.2020.
[46] Kevin Vu.
A Deep Dive Into the Transformer Architecture – The Development of Transformer Models.
https://www.kdnuggets.com/2020/08/transformer-architecture-development-
transformer-models.html. Abrufdatum: 20.10.2020.
[47] Robert Weber und Peter Seeberg. KI in der Industrie.
Carl Hanser Verlag GmbH Co. KG, 2020.

59
Literatur

[48] Jason Yosinski, Jeff Clune, Yoshua Bengio und Hod Lipson.
„How transferable are features in deep neural networks?“
In: Advances in neural information processing systems. 2014, S. 3320–3328.

60

Das könnte Ihnen auch gefallen