Aus dem Kurs: Natural Language Processing (NLP) mit Python: Werkzeuge und Methoden
Conditional Random Fields – Tutorial zu Python
Aus dem Kurs: Natural Language Processing (NLP) mit Python: Werkzeuge und Methoden
Conditional Random Fields
Beim maschinellen Lernen ist es wichtig, unsere Algorithmen mit qualitativ hochwertigen Input-Features zu füttern. Features sind Aspekte der Daten, die helfen, diese zu beschreiben. Aus diesen Aspekten kann der Algorithmus lernen, Muster abzuleiten, die nützlich sind, um Vorhersagen über zukünftige, nicht gesehene Ausgaben zu treffen. Ein typisches Beispiel: Wenn Sie den Verkaufspreis eines Hauses mithilfe einer linearen Regression vorhersagen möchten, haben Sie einen Datensatz von Häusern, die jeweils durch Details wie Größe, Anzahl der Schlafzimmer, Vorhandensein einer Garage usw. repräsentiert werden. Sie füttern den lineare-Regression- Algorithmus mit diesen Eingabemerkmalen zusammen mit dem Verkaufspreis des Hauses als Zielmerkmal. Der Algorithmus erstellt ein Modell, das zur Vorhersage von Hauspreisen für Häuser aus neuen bzw. zukünftigen Testsätzen verwendet werden kann, basierend auf dem Wissen über Dinge wie deren Größe, Anzahl der Schlafzimmer und ob sie eine Garage haben oder nicht. Das ist die Rolle der Features beim maschinellen Lernen. In unserem Fall versuchen wir nicht, ein einzelnes Label, z.B. einen Preis, für unsere Eingabesätze vorherzusagen, vielmehr ein Label pro Token. Daher benötigen wir Features, die jedes Token beschreiben. Wenn das Token z.B. viele Großbuchstaben enthält, könnte es sich um ein Unternehmen oder eine Organisation handeln, also eine Entität. Und wenn es das erste Wort im Satz ist, ist es angesichts des Struktur der englischen Grammatik viel wahrscheinlicher, dass es ein Substantiv als ein Verb ist, was bedeutet, dass es auch eine Entität sein könnte. Das Wissen über die Nachbarschaft eines Tokens kann ebenfalls nützlich sein. Wenn z.B. das vorherige Token das erste Token im Satz ist, steigt die Wahrscheinlichkeit, dass das aktuelle Token ein Verb und damit keine benannte Entität ist. Darüber hinaus kann das Modell durch die Einbeziehung von Informationen über die Nachbarschaft der einzelnen Token lernen, dass einige Tagsequenzen unmöglich sind. Zum Beispiel kann ein Label mit I-Präfix niemals einen Satz beginnen oder auf ein Label mit O folgen, da alle Entitäten mit einem Label mit B-Präfix beginnen müssen. Wir müssen einen Algorithmus für maschinelles Lernen wählen, der diese kontextuellen Hinweise berücksichtigt. Ein Conditional Random Field, kurz CRF, ist hierfür geeignet. Ein CRF lernt, die gemeinsam bedingte Wahrscheinlichkeit der gesamten Labelsequenz in Abhängigkeit von der Eingabesequenz zu modellieren. Dazu verwendet es sowohl Merkmale auf Tag-Ebene als auch sogenannte Zustandsübergangs- wahrscheinlichkeiten, das heißt, gelernte Wahrscheinlichkeiten dafür, wie wahrscheinlich es ist, dass ein Tag einem anderen vorausgeht oder folgt. Außerdem verwenden CRFs eine globale Optimierung, um die wahrscheinlichste Labelsequenz zu erzeugen. Im Wesentlichen bedeutet dies, dass CRFs durch eine globale Betrachtung der Trainingssequenzen lernen können, Beziehungen und Abhängigkeiten zwischen Tokens zu codieren. Deshalb sind sie zu einer beliebten Komponente in Sequence Labelling Models geworden und deshalb werden wir heute eines verwenden.
Üben mit Projektdateien
Laden Sie die Dateien herunter, die von den Trainer:innen verwendet werden. So können Sie mitlesen und durch Ansehen, Zuhören und Üben lernen.
Inhalt
-
-
-
-
-
-
-
-
(Gesperrt)
Einführung in das Projekt3 Min. 26 Sek.
-
Conditional Random Fields3 Min. 49 Sek.
-
(Gesperrt)
Features extrahieren5 Min. 24 Sek.
-
(Gesperrt)
Verarbeitung der Eingangsdaten3 Min. 26 Sek.
-
(Gesperrt)
Modell trainieren1 Min. 44 Sek.
-
(Gesperrt)
Präzision, Recall und F1-Score4 Min. 21 Sek.
-
(Gesperrt)
Macro- und Micro-Averaging2 Min. 3 Sek.
-
(Gesperrt)
Die Konfusionsmatrix3 Min. 43 Sek.
-
(Gesperrt)
Das Modell verbessern6 Min. 46 Sek.
-
(Gesperrt)
Generalisierbarkeit des Modells1 Min. 52 Sek.
-
(Gesperrt)
-