Flair NLP ist ein Framework der Mathematisch-Naturwissenschaftlichen Fakultät der Humboldt-Universität zu Berlin. Als Teil des PyTorch Ökosystems findet das Framework schon lange regelmäßig praktischen Einsatz. Neben der deutschen Sprache kann Flair z.B. auch englische oder japanische Texte analysieren.

In diesem Tutorial möchte ich Euch gerne zeigen, wie Ihr die ersten Schritte mit Flair NLP machen könnt und Euch so beim Einstieg helfen. Erstellt dafür einen Ordner für das Projekt und navigiert über die Shell in den Ordner - stellt sicher, dass Ihr Python3 und conda installiert habt und nun kann es losgehen. Erstellt in der Shell ein neues conda environment und aktiviert es (Achtet darauf, dass Ihr nicht die aktuellste Version von Python für das conda Environment verwendet. Zum Zeitpunkt an dem der Artikel erstellt wurde, gibt es noch Kompatibilitätsprobleme. Daher der Zusatz "python = 3.7") :

conda create --name "name of your envioronment" python = 3.7
conda activate "name of your envioronment"

Nun könnt Ihr Flair NLP installieren:

pip install flair

Nun könnt Ihr eine neue .py Datei in Eurem Ordner erstellen und den folgenden Code in Eure Datei übernehmen:

from flair.models.text_classification_model import TARSClassifier
from flair.data import Sentence

# Laden des englischen Modells
tars = TARSClassifier.load('tars-base')

# Erstellen der Sätze und Klassen. Diese könnt Ihr frei wählen.
sentences = ['I really hate fries.', 'I love Hamburgers.','I am so glad you liked it!']
classes = ['happy', 'sad', 'angry']

# Erstellen der Vorhersagen
for elem in sentences:
    sentence=Sentence(elem)
    tars.predict_zero_shot(sentence, classes)
    print(sentence)

Ihr solltet nun den folgenden Output von Eurem Programm erhalten. Dabei könnt Ihr sehen, dass nicht für jeden der 3 Sätze eine Vorhersage gemacht werden konnte. Probiert am besten ein wenig aus mit welchen Sätzen und Klassen Ihr die besten Ergebnisse bekommt.

Sentence: "I really hate fries ."   [− Tokens: 5  − Sentence-Labels: {'label': [angry (0.8516)]}]
Sentence: "I love Hamburgers ."   [− Tokens: 4]
Sentence: "I am so glad you liked it !"   [− Tokens: 8  − Sentence-Labels: {'label': [happy (0.861)]}]

Nun könnt Ihr den Text-Input frei wählen oder beliebige Datensätze, die Ihr zur Verfügung habt verwenden. Um mit Datensätzen zu arbeiten empfehle ich Euch die Verwendung von Pandas. Um zu sehen, wie Ihr Textdaten mit Pandas laden, bearbeiten und speichern könnt, schaut gerne in meinem letzten Tutorial mit dem Thema "Schnelle und einfache Sentiment-Analyse mit Textblob" vorbei: https://kiel.ai/schnelle-und-einfache-sentiment-analyse-mit-textblob/

Alternativ findet Ihr den kompletten Code auch in folgendem GitHub repository (dieses könnt Ihr clonen und Euch an die Schritte in der README.md halten): https://github.com/jasynho/kielai-tutorials/tree/master/sentiment_flair

Wenn Ihr Fragen zum Artikel habt oder Fragen, die über den Artikel hinaus gehen, könnt Ihr mir gerne eine Mail schreiben an jonas@kiel.ai.