spaCy und UDFs
Last updated
Was this helpful?
Last updated
Was this helpful?
In diesem Abschnitt verwenden den TED Talk Datensatz als Beispiel. Falls noch nicht geschehen, importiert euch das Notebook und ladet den Datensatz, sodass ihr auf die Tabelle ted_text
zugreifen könnt.
Zudem müssen wir bevor wir loslegen spaCy in unserem Notebook installieren und ein geeignetes Sprachmodell laden. Wir verwenden hier das kleine englische Modell (en_core_web_sm
).
Wir wollen in diesem Beispiel eine eigene Funktion erstellen, die alle Verben aus einem TED-Talk extrahiert und gleichzeitig in seine Grundform überführt. Wie das geht, haben wir im Abschnitt zum sowie bereits gelernt. Wir verpacken den Code nun in einer Python-Funktion, die wir anschließend als SQL-Funktion mit dem Namen getVerbs
registrieren:
Um möglichst effizient zu sein, deaktivieren wir alle nicht benötigten Pipeline-Komponenten mittels der disable_pipe
Funktion. In diesem Fall benötigen wir keine Named Entity Recognition (ner) oder syntaktische Merkmale (parser).
Wir können jetzt die neue SQL-Funktion getVerbs
wie gewohnt verwenden und als Parameter eine Textspalte übergeben. Für die TED-Talks ist das die Spalte text
aus der Tabelle ted_text
:
Im obigen Beispiel wenden wir die neue Funktion vorsichtshalber nur auf einen einzigen Text an, um schnell ein Ergebnis zu bekommen. Bei Anwendung auf alle > 2000 Texte kann es eine Weile dauern, bis ein Ergebnis vorliegt.
Um die Anwendung auf mehrere Texte zu erweitern, könnt ihr folgende Abfrage verwenden und den Filter entsprechend verändern:
Für die Verarbeitung größerer Mengen an Texten empfiehlt es sich, die Analyse direkt in Python durchzuführen, die Daten mit nlp.pipe()
zu streamen sowie das Ergebnis in einer neuen Tabelle zu persistieren, um damit effizient weiterarbeiten zu können. Auf diese Punkte gehen wir in den folgenden Abschnitten genauer ein.