Le traitement du langage naturel est amusant Partie 3: Expliquer les prédictions du modèle | par Adam Geitgey

Dans ce diagramme, les mots verts ont fait penser au classificateur que la revue était plus négative tandis que les mots bleus ont rendu la revue plus positive.
Nous pouvons voir que le mot «bon» en soi est un signal positif, mais l’expression «la nourriture n’était pas très bonne» est un signal très négatif. Et le «T» est un signal négatif si fort car il annule le mot «bon». Nous pouvons également voir que le mot «bug» est un signal négatif – ce qui a du sens dans une revue de restaurant!
Sur la base de cette explication, nous avons une bien meilleure idée de la raison pour laquelle le classificateur a donné à cette revue un score faible. Et grâce à la chaux, nous pouvons faire la même chose avec toute autre revue – y compris celles qui sont plus complexes que cet exemple simple.
Voici une vraie critique de restaurant que j’ai écrit que notre modèle FastText prédit correctement comme une revue quatre étoiles:
Du point de vue de la PNL, cette revue est ennuyeusement difficile à analyser. Toutes les phrases ont des qualifications. Mais notre classificateur FastText semblait le comprendre correctement et a correctement prédit quatre étoiles. Voyons pourquoi.
Voici la visualisation de la chaux:
Les paramètres de chaux par défaut utilisent des couleurs aléatoires dans les visualisations, donc dans cette image, le violet est positif. Le classificateur a repris des phrases positives comme «assez grande», «bonne nourriture» et «confortable» comme signale qu’il s’agit d’une revue positive. Il a également repris les mots «cool» et «raisonnable» comme signaux positifs. Tout cela a du sens!
Mais gardez à l’esprit que cette explication ne dit pas que tout ce qui comptait, c’est que les phrases «assez belles» et «bonne nourriture» sont apparues dans le texte. Cela dit que ces mots importaient le plus compte tenu de leur contexte. Il s’agit d’une distinction importante à garder à l’esprit lorsque l’on regarde ces visualisations.
Vous pouvez l’essayer vous-même. Après avoir formé le classificateur FastText à partir de Partie 2vous pouvez utiliser le code ci-dessous pour expliquer une revue de restaurant à l’aide de chaux.
Avant d’exécuter ce code, vous devrez installer Lime:
pip3 install lime
Ensuite, vous pouvez simplement exécuter le code. Une fois en cours d’exécution, une visualisation de la prédiction doit s’ouvrir automatiquement dans votre navigateur Web.
Vous devriez être en mesure d’appliquer le même code exactement à tout classificateur FastText. Mettez simplement à jour le chemin du modèle sur la ligne 22, les noms d’étiquette sur la ligne 34 et le texte pour expliquer sur la ligne 60. Et si votre classificateur a plus de 10 classes possibles, augmentez le nombre sur la ligne 48.