Dieses Repo enthält einen ersten Prototyp einer in Flask geschriebenen interaktiven Anwendung, die die Ergebnisse der feinkörnigen Stimmungsklassifizierung erklärt, die in dieser Medium Series ausführlich beschrieben wird.
Eine Reihe von Klassifikatoren werden implementiert und ihre Ergebnisse mithilfe des LIME-Erklärers erläutert. Die Klassifikatoren wurden anhand des Stanford Sentiment Treebank (SST-5)-Datensatzes trainiert. Die Klassenbezeichnungen lauten [1, 2, 3, 4, 5]
, wobei 1
sehr negativ und 5
sehr positiv ist.
Richten Sie zunächst die virtuelle Umgebung ein und installieren Sie sie über requirements.txt
:
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
Zur Weiterentwicklung aktivieren Sie einfach die bestehende virtuelle Umgebung.
source venv/bin/activate
Führen Sie die Datei app.py
aus und geben Sie dann einen Satz ein, wählen Sie einen Klassifikatortyp und klicken Sie auf die Schaltfläche Explain results!
. Wir können dann die Merkmale (z. B. Wörter oder Token) beobachten, die dazu beigetragen haben, dass der Klassifikator eine bestimmte Klassenbezeichnung vorhergesagt hat.
Die Frontend-App nimmt ein Textbeispiel auf und gibt LIME-Erklärungen für die verschiedenen Methoden aus. Die App wird mit Heroku an diesem Standort bereitgestellt: https://sst5-explainer.herokuapp.com/
Spielen Sie mit Ihren eigenen Textbeispielen, wie unten gezeigt, und sehen Sie sich die feinkörnigen Sentiment-Ergebnisse erklärt an!
HINWEIS: Da die Ausführung der Inferenz mit den PyTorch-basierten Modellen (Flair und der Kausaltransformator) recht teuer ist (sie erfordern eine GPU), werden diese Methoden nicht eingesetzt.